diff src/elaborate.sml @ 1742:fca4a6d05ac1

More diagnostic information about some type class resolution failures
author Adam Chlipala <adam@chlipala.net>
date Fri, 04 May 2012 10:33:04 -0400
parents 1a35e75b6967
children 6fcce0592178
line wrap: on
line diff
--- a/src/elaborate.sml	Fri May 04 10:07:27 2012 -0400
+++ b/src/elaborate.sml	Fri May 04 10:33:04 2012 -0400
@@ -4676,7 +4676,13 @@
                                                     (!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