@@ -213,8 +213,7 @@ instantiatePolyTypeWithUnknowns val (ForAll ident ty _) = do
213 instantiatePolyTypeWithUnknowns val ty'
213 instantiatePolyTypeWithUnknowns val ty'
214instantiatePolyTypeWithUnknowns val (ConstrainedType constraints ty) = do
214instantiatePolyTypeWithUnknowns val (ConstrainedType constraints ty) = do
215 dicts <- getTypeClassDictionaries
215 dicts <- getTypeClassDictionaries
216− (_, ty') <- instantiatePolyTypeWithUnknowns (internalError "Types under a constraint cannot themselves be constrained") ty
217− return (foldl App val (map (flip TypeClassDictionary dicts) constraints), ty')
216+ instantiatePolyTypeWithUnknowns (foldl App val (map (flip TypeClassDictionary dicts) constraints)) ty
218instantiatePolyTypeWithUnknowns val ty = return (val, ty)
217instantiatePolyTypeWithUnknowns val ty = return (val, ty)
220-- | Infer a type for a value, rethrowing any error to provide a more useful error message
219-- | Infer a type for a value, rethrowing any error to provide a more useful error message