/* fibonacci with infinite datatypes */ fibnbs X Y := [X| fibnbs Y (X+Y)]. fiblist := fibnbs 1 1. fib X := nth X fiblist. nth X [Y|Ys] := if (X=0) then Y else nth (X-1) Ys. /* goal: fibnbs 20 */