# HG changeset patch # User Adam Chlipala # Date 1214942818 14400 # Node ID d3ee072fa6094958ddb49462d261f93221420a0b # Parent 7bab29834cd629d3d584991fa56e06d18a5be069 Tested constraints through functors diff -r 7bab29834cd6 -r d3ee072fa609 src/lacweb.grm --- a/src/lacweb.grm Tue Jul 01 15:58:02 2008 -0400 +++ b/src/lacweb.grm Tue Jul 01 16:06:58 2008 -0400 @@ -242,7 +242,7 @@ | ident COLON cexp COMMA rcone ((ident, cexp) :: rcone) ident : CSYMBOL (CName CSYMBOL, s (CSYMBOLleft, CSYMBOLright)) - | SYMBOL (CVar ([], SYMBOL), s (SYMBOLleft, SYMBOLright)) + | path (CVar path, s (pathleft, pathright)) eapps : eterm (eterm) | eapps eterm (EApp (eapps, eterm), s (eappsleft, etermright)) diff -r 7bab29834cd6 -r d3ee072fa609 tests/constraint.lac --- a/tests/constraint.lac Tue Jul 01 15:58:02 2008 -0400 +++ b/tests/constraint.lac Tue Jul 01 16:06:58 2008 -0400 @@ -27,3 +27,19 @@ con r' = M.r con combo = [nm' = int] ++ r' end + + +signature S' = sig + con r1 :: {Type} + con r2 :: {Type} + + constraint r1 ~ r2 +end + +functor F (M : S) : S' = struct + con r1 = [M.nm = int] + con r2 = M.r + + open constraints M + constraint r1 ~ r2 +end