@@ -36,6 +36,7 @@ import Language.PureScript.Types
3636import Language.PureScript.Names
3737import Language.PureScript.Kinds
3838import Language.PureScript.Declarations
39+import Language.PureScript.Sugar.TypeClasses
3940
4041addDataType :: ModuleName -> ProperName -> [String] -> [(ProperName, Maybe Type)] -> Kind -> Check ()
4142addDataType moduleName name args dctors ctorKind = do
@@ -201,8 +202,9 @@ typeCheckAll moduleName (d@(TypeClassDeclaration _ _ _) : rest) = do
201202 ds <- typeCheckAll moduleName rest
202203 return $ d : ds
203204typeCheckAll moduleName (d@(TypeInstanceDeclaration deps className ty _) : rest) = do
204− ds <- withTypeClassDictionaries [(Ident "__TODO", deps, className, ty)] $
205− typeCheckAll moduleName rest
205+ dictName <- Check . lift $ mkDictionaryValueName moduleName className ty
206+ ds <- withTypeClassDictionaries [(dictName, deps, className, ty)] $
207+ typeCheckAll moduleName rest
206208 return $ d : ds
207209
208210qualifyAllUnqualifiedNames :: (Data d) => ModuleName -> Environment -> d -> d