diff options
author | Adam Chlipala <adam@chlipala.net> | 2012-05-02 08:34:50 -0400 |
---|---|---|
committer | Adam Chlipala <adam@chlipala.net> | 2012-05-02 08:34:50 -0400 |
commit | 457b3c776325042c81b0cb5804e7881e0c1d1bf3 (patch) | |
tree | 88076906dd1130c5cfd2657d40e8641aac59c0e7 /src | |
parent | 59ea8e278e94c7ea7989a6ece4bbb1a99110e93f (diff) |
Better discovery of type class instances from recursive definitions
Diffstat (limited to 'src')
-rw-r--r-- | src/elaborate.sml | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/elaborate.sml b/src/elaborate.sml index 852ba2b2..26ec21ec 100644 --- a/src/elaborate.sml +++ b/src/elaborate.sml @@ -3912,8 +3912,11 @@ and elabDecl (dAll as (d, loc), (env, denv, gs)) = expError env (IllegalRec (x, e')); ((x, n, c', e'), gs1 @ gs) end) gs vis + + val vis = map (fn (x, n, t, e) => (x, n, normClassConstraint env t, e)) vis + val d = (L'.DValRec vis, loc) in - ([(L'.DValRec vis, loc)], (env, denv, gs)) + ([d], (E.declBinds env d, denv, gs)) end | L.DSgn (x, sgn) => |