structure IR = RefFun.Make(struct type t = int val inj = _ end) structure SR = RefFun.Make(struct type t = string val inj = _ end) fun main () = ir <- IR.new 3; ir' <- IR.new 7; sr <- SR.new "hi"; () <- IR.write ir' 10; iv <- IR.read ir; iv' <- IR.read ir'; sv <- SR.read sr; () <- IR.delete ir; () <- IR.delete ir'; () <- SR.delete sr; return {[iv]}, {[iv']}, {[sv]}