1 import "JavaBuiltin" as Java
\r
5 data Thunk a = /* forall s. */ Thunk s (s -> a)
\r
10 runThunk :: Thunk a -> a
\r
11 runThunk (Thunk s f) = f s
\r
13 makeThunk :: a -> Thunk a
\r
14 makeThunk x = Thunk x id
\r
16 mapThunk :: (a -> b) -> Thunk a -> Thunk b
\r
17 mapThunk f (Thunk s g) = Thunk s (\x -> f (g x))
\r
19 a = makeThunk (13 :: Integer)
\r
20 b = mapThunk (\x -> x+1) a
\r