aboutsummaryrefslogtreecommitdiffhomepage
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
commit802fc606ff18c261eb591d7ae6dbb99fe9c48af9 (patch)
treee52dfe5be4f5e8033c784ee197b5980006771472 /src/elaborate.sml
parent75fa1fd2ad8aae9a88dfacd1a85eb80f645a3b74 (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