summaryrefslogtreecommitdiff
path: root/src/elaborate.sml
diff options
context:
space:
mode:
authorGravatar Adam Chlipala <adam@chlipala.net>2012-05-04 10:33:04 -0400
committerGravatar Adam Chlipala <adam@chlipala.net>2012-05-04 10:33:04 -0400
commit581037b5cf9defbcf1412046e1cd1b8fb02d3d43 (patch)
treee52dfe5be4f5e8033c784ee197b5980006771472 /src/elaborate.sml
parent8b1eaab4e930cb8c23d731c606137e118d9c8d42 (diff)
More diagnostic information about some type class resolution failures
Diffstat (limited to 'src/elaborate.sml')
-rw-r--r--src/elaborate.sml8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/elaborate.sml b/src/elaborate.sml
index f098b580..5799d6bb 100644
--- a/src/elaborate.sml
+++ b/src/elaborate.sml
@@ -4676,7 +4676,13 @@ fun elabFile basis basis_tm topStr topSgn top_tm env file =
(!delayedUnifs);*)
end
| TypeClass (env, c, r, loc) =>
- expError env (Unresolvable (loc, c)))
+ let
+ val c = normClassKey env c
+ in
+ case resolveClass env c of
+ SOME _ => raise Fail "Type class resolution succeeded unexpectedly"
+ | NONE => expError env (Unresolvable (loc, c))
+ end)
gs)
end
in