Here are a few conventions which used when naming the Interlisp system functions:

Convention: Naming a function by prefixing an existing function name with {lisp F} usually indicates that the new function is a {lisp F}ast version of the old, i.e., one which has the same definition but compiles open and runs without any "safety" error checks.
{note give examples of 'safety checks', and give warnings}

Convention: Naming a function by prefixing an existing function with {lisp D} frequently indicates the new function is a {lisp D}estructive{index destructive functions} version of the old one, i.e., it does not make any new structure but cannibalizes its argument(s).

Convention: Functions that end in {lisp P} are usually {index *PRIMARY* predicates}predicates, i.e., they test for some condition.