let IO := requireModule "IO" in let Composition := requireModule "Composition" in let Logic := requireModule "Logic" in let Error := requireModule "Error" in let error? := Error.error? in let if := Logic.if in let else := Logic.else in let (;) := IO.(;) in let ($) := Composition.($) in let rem := Composition.rem in let liftIO! := IO.liftIO! in export let wrap! := (\class \native liftIO! (\key class key native) ) in export let new! := (\super \class \args if (error? class.getType!) super class args $else class.getType! ;\type rem "FIXME actually support the args!"$ objectNewv! type 0 [] ;\native wrap! class native ) in