(* ****** ****** *) // #include "share/atspre_staload.hats" // (* ****** ****** *) // fun myfix {a:type} ( f: lazy(a) - a ) : lazy(a) = $delay(f(myfix(f))) // val fact = myfix{int-int} ( lam(ff) => lam(x) => if x > 0 then x * !ff(x-1) else 1 ) (* ****** ****** *) // implement main0 () = println! ("fact(10) = ", !fact(10)) // (* ****** ****** *)