@@ -20,6 +20,7 @@ import Language.PureScript.Declarations
2020import Language.PureScript.Names
2121import Language.PureScript.Types
2222import Language.PureScript.Values
23+import Language.PureScript.CodeGen.JS.AST
2324
2425desugarTypeClasses :: [Module] -> [Module]
2526desugarTypeClasses = map desugarModule
@@ -40,7 +41,10 @@ typeClassDictionaryDeclaration name arg members = TypeSynonymDeclaration name [a
4041 memberToNameAndType _ = error "Invalid declaration in type class definition"
4142
4243typeClassMemberToDictionaryAccessor :: ProperName -> String -> Declaration -> Declaration
43−typeClassMemberToDictionaryAccessor name arg (TypeDeclaration ident ty) = ExternDeclaration ident Nothing (ForAll arg (ConstrainedType [(Qualified Nothing name, TypeVar arg)] ty))
44+typeClassMemberToDictionaryAccessor name arg (TypeDeclaration ident ty) =
45+ ExternDeclaration ident
46+ (Just (JSFunction (Just (Ident arg)) [Ident "dict"] (JSReturn (JSAccessor arg (JSVar (Ident "dict"))))))
47+ (ForAll arg (ConstrainedType [(Qualified Nothing name, TypeVar arg)] ty))
4448typeClassMemberToDictionaryAccessor _ _ _ = error "Invalid declaration in type class definition"
4549
4650{-