@@ -36,6 +36,7 @@ import Language.PureScript.Types
36import Language.PureScript.Names
36import Language.PureScript.Names
37import Language.PureScript.Kinds
37import Language.PureScript.Kinds
38import Language.PureScript.Declarations
38import Language.PureScript.Declarations
39+import Language.PureScript.Sugar.TypeClasses
40addDataType :: ModuleName -> ProperName -> [String] -> [(ProperName, Maybe Type)] -> Kind -> Check ()
41addDataType :: ModuleName -> ProperName -> [String] -> [(ProperName, Maybe Type)] -> Kind -> Check ()
41addDataType moduleName name args dctors ctorKind = do
42addDataType moduleName name args dctors ctorKind = do
@@ -201,8 +202,9 @@ typeCheckAll moduleName (d@(TypeClassDeclaration _ _ _) : rest) = do
201 ds <- typeCheckAll moduleName rest
202 ds <- typeCheckAll moduleName rest
202 return $ d : ds
203 return $ d : ds
203typeCheckAll moduleName (d@(TypeInstanceDeclaration deps className ty _) : rest) = do
204typeCheckAll moduleName (d@(TypeInstanceDeclaration deps className ty _) : rest) = do
205+ dictName <- Check . lift $ mkDictionaryValueName moduleName className ty
204− ds <- withTypeClassDictionaries [(Ident "__TODO", deps, className, ty)] $
206+ ds <- withTypeClassDictionaries [(dictName, deps, className, ty)] $
205− typeCheckAll moduleName rest
207+ typeCheckAll moduleName rest
206 return $ d : ds
208 return $ d : ds
208qualifyAllUnqualifiedNames :: (Data d) => ModuleName -> Environment -> d -> d
210qualifyAllUnqualifiedNames :: (Data d) => ModuleName -> Environment -> d -> d