[] '__A set : dip swap __A swap 2 compress collapse '__A set execute __A -1 extract nip ; : nip swap drop ; : tuck swap over ; : -rot rot rot ; : 0= 0 == ; : 1+ 1 + ; : 1- 1 - ; : sum '+ reduce ; : bi 'keep dip execute ; : keep over 'execute dip ; : fib dup 1 > if dup 1- fib swap 2 - fib + then ; : fib dup 1 > if "1- fib" "2 - fib" bi + then ;