import "Prelude" importJava "org.simantics.scl.runtime.lazy.Lazy" where data Lazy e a @JavaName "" lazy :: ( a) -> Lazy e a force :: Lazy e a -> a /* type LazyList e a = Lazy e (LazyListStr e a) data LazyListStr e a = LLNil | LLCons a (LazyList e a) headLL :: LazyList e a -> Maybe a headLL ll = match force ll with LLNil -> Nothing LLCons h _ -> Just h tailLL :: LazyList e a -> Maybe (LazyList e a) tailLL ll = match force ll with LLNil -> Nothing LLCons _ t -> Just t */ // data StaticFunction a e b // data Closure a e b = Closure a (StaticFunction a e b) // closure :: ( a) -> Closure ? e b // staticFunction :: StaticFunction a e b -> a -> b