staload "lib/SATS/init.sats" #define ATS_DYNLOADFLAG 0 implement {vt:viewt@ype} uninitialized (v) = let in @{initialized = false, obj = v}: initializable vt end implement{vt} init_exec (x) = if x.initialized then let prval () = opt_unsome x.obj val () = init_exec$fwork (x.obj) prval () = opt_some x.obj in end implement{vt} init_exec$fwork (v) = ()