This article is from the FAQ, by with numerous contributions by others.
Let us assume that we has the following source code:
ORIGIN '...'
--- lib: attributes ---
f: (# t: @text; i,j: @integer; r: @real
enter t[]
do (* ... some code implementing f ... *)
#)
ORIGIN '...';
BODY 'fBody'
--- lib: attributes ---
f: (# t: @text; i,j: @integer; r: @real
enter t[]
<<SLOT fBody: dopart>>
#)
ORIGIN 'fSource' --- fBody: dopart --- do (* ... some code implementing f ... *)
 
Continue to: