aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/elaborate.sml
diff options
context:
space:
mode:
authorGravatar Adam Chlipala <adam@chlipala.net>2012-05-02 08:34:50 -0400
committerGravatar Adam Chlipala <adam@chlipala.net>2012-05-02 08:34:50 -0400
commitb314c01095c5cd4617f71f706e43530a57ffb65b (patch)
tree88076906dd1130c5cfd2657d40e8641aac59c0e7 /src/elaborate.sml
parenta612a0c55bed76b4192fb66ffeba43933bcfb6bf (diff)
Better discovery of type class instances from recursive definitions
Diffstat (limited to 'src/elaborate.sml')
-rw-r--r--src/elaborate.sml5
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) =>