)abbrev package TESTP TestPackage Z ==> Integer TestPackage : with fib : Z -> Z == add fib x == x <= 0 => error "argument outside of range" f : Reference((Z,Z,Z) -> Z) := ref((n, v1, v2) +-> 0) f() := (n, v1, v2) +-> if n<2 then v2 else f()(n-1,v2,v1+v2) f()(x,1,1)