view demo/ref.ur @ 2184:1ecef02f67c5

More Elaborate work to avoid instantiating unification variables with out-of-scope regular variables
author Adam Chlipala <adam@chlipala.net>
date Sat, 24 Oct 2015 17:23:07 -0400
parents 5819fb63c93a
children
line wrap: on
line source
structure IR = RefFun.Make(struct
                               type data = int
                           end)

structure SR = RefFun.Make(struct
                               type data = string
                           end)

fun mutate () =
    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 <xml><body>
      {[iv]}, {[iv']}, {[sv]}
    </body></xml>

fun main () = return <xml><body>
  <form><submit action={mutate} value="Do some pointless stuff"/></form>
</body></xml>