summaryrefslogtreecommitdiff
path: root/src/elaborate.sml
diff options
context:
space:
mode:
Diffstat (limited to 'src/elaborate.sml')
-rw-r--r--src/elaborate.sml10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/elaborate.sml b/src/elaborate.sml
index 05e08c81..c18cfb49 100644
--- a/src/elaborate.sml
+++ b/src/elaborate.sml
@@ -3548,7 +3548,15 @@ fun elabFile basis topStr topSgn env file =
("c1", p_con env c1),
("c2", p_con env c2)];
raise Fail "Unresolved constraint in top.ur"))
- | TypeClass _ => raise Fail "Unresolved type class constraint in top.ur") gs
+ | TypeClass (env, c, r, loc) =>
+ let
+ val c = normClassKey env c
+ in
+ case E.resolveClass env c of
+ SOME e => r := SOME e
+ | NONE => expError env (Unresolvable (loc, c))
+ end) gs
+
val () = subSgn (env', D.empty) topSgn' topSgn
val (env', top_n) = E.pushStrNamed env' "Top" topSgn