diff options
author | Adam Chlipala <adam@chlipala.net> | 2012-05-04 10:33:04 -0400 |
---|---|---|
committer | Adam Chlipala <adam@chlipala.net> | 2012-05-04 10:33:04 -0400 |
commit | 802fc606ff18c261eb591d7ae6dbb99fe9c48af9 (patch) | |
tree | e52dfe5be4f5e8033c784ee197b5980006771472 /src/elaborate.sml | |
parent | 75fa1fd2ad8aae9a88dfacd1a85eb80f645a3b74 (diff) |
More diagnostic information about some type class resolution failures
Diffstat (limited to 'src/elaborate.sml')
-rw-r--r-- | src/elaborate.sml | 8 |
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 |