annotate demo/treeFun.urs @ 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 311ca1ae715d
children
rev   line source
adamc@469 1 functor Make(M : sig
adamc@469 2 type key
adamc@469 3 con id :: Name
adamc@469 4 con parent :: Name
adamc@469 5 con cols :: {Type}
adamc@469 6 constraint [id] ~ [parent]
adamc@469 7 constraint [id, parent] ~ cols
adamc@469 8
adamc@723 9 val key_inj : sql_injectable_prim key
adamc@469 10
adamc@706 11 table tab : ([id = key, parent = option key] ++ cols)
adamc@469 12 end) : sig
adamc@469 13
adamc@469 14 con id = M.id
adamc@469 15 con parent = M.parent
adamc@469 16
adamc@469 17 val tree : ($([id = M.key, parent = option M.key] ++ M.cols) -> xbody)
adamc@469 18 -> option M.key
adamc@469 19 -> transaction xbody
adamc@469 20
adamc@469 21 end