diff options
author | Adam Chlipala <adam@chlipala.net> | 2014-05-02 17:16:02 -0400 |
---|---|---|
committer | Adam Chlipala <adam@chlipala.net> | 2014-05-02 17:16:02 -0400 |
commit | 77b4d9b9397aefc41ae0c6465a75874c497d945c (patch) | |
tree | 1249a913f37685611f686a4c5db3475723c93d21 /src/elaborate.sml | |
parent | 1580340ec252e4e399c2c1d2b403974f49c3a084 (diff) |
Monadic bind supports patterns
Diffstat (limited to 'src/elaborate.sml')
-rw-r--r-- | src/elaborate.sml | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/elaborate.sml b/src/elaborate.sml index 5dd86f18..97ac610b 100644 --- a/src/elaborate.sml +++ b/src/elaborate.sml @@ -2183,8 +2183,13 @@ fun elabExp (env, denv) (eAll as (e, loc)) = (e', (#1 (chaseUnifs t'), loc), enD gs2 @ gs1) end - | L.ERecord xes => + | L.ERecord (xes, flex) => let + val () = if flex then + expError env (IllegalFlex eAll) + else + () + val (xes', gs) = ListUtil.foldlMap (fn ((x, e), gs) => let val (x', xk, gs1) = elabCon (env, denv) x |