git.iko.soy/rowtype-yoga/purescript-native
on golang help sign in
Update generic deriving for latest purescript-generics changes
commit759b3c68505535e06078d185593b773de68f1ab5 authorPhil Freeman <paf31@cantab.net> dateSun 15 Nov 2015, 13:37 (11 years ago) parentcf0d9d3
1 file changed+6−4
src/Language/PureScript/Sugar/TypeClasses/Deriving.hs+6−4
src/Language/PureScript/Sugar/TypeClasses/Deriving.hs+6−4
@@ -105,7 +105,7 @@ mkSpineFunction mn (DataDeclaration _ _ _ args) = lamCase "$x" <$> mapM mkCtorCl
105105 return $ CaseAlternative [ConstructorBinder (Qualified (Just mn) ctorName) (map VarBinder idents)] (Right (caseResult idents))
106106 where
107107 caseResult idents =
108− App (prodConstructor (StringLiteral . runProperName $ ctorName))
108+ App (prodConstructor (StringLiteral . showQualified runProperName $ Qualified (Just mn) ctorName))
109109 . ArrayLiteral
110110 $ zipWith toSpineFun (map (Var . Qualified Nothing) idents) tys
111111
@@ -119,10 +119,12 @@ mkSpineFunction mn (PositionedDeclaration _ _ d) = mkSpineFunction mn d
119119mkSpineFunction _ _ = internalError "mkSpineFunction: expected DataDeclaration"
120120
121121mkSignatureFunction :: ModuleName -> Declaration -> Expr
122−mkSignatureFunction _ (DataDeclaration _ _ _ args) = lamNull . mkSigProd $ map mkProdClause args
122+mkSignatureFunction mn (DataDeclaration _ name _ args) = lamNull . mkSigProd $ map mkProdClause args
123123 where
124124 mkSigProd :: [Expr] -> Expr
125− mkSigProd = App (Constructor (Qualified (Just dataGeneric) (ProperName "SigProd"))) . ArrayLiteral
125+ mkSigProd = App (App (Constructor (Qualified (Just dataGeneric) (ProperName "SigProd")))
126+ (StringLiteral (showQualified runProperName (Qualified (Just mn) name)))
127+ ) . ArrayLiteral
126128
127129 mkSigRec :: [Expr] -> Expr
128130 mkSigRec = App (Constructor (Qualified (Just dataGeneric) (ProperName "SigRecord"))) . ArrayLiteral
@@ -131,7 +133,7 @@ mkSignatureFunction _ (DataDeclaration _ _ _ args) = lamNull . mkSigProd $ map m
131133 proxy = TypeApp (TypeConstructor (Qualified (Just dataGeneric) (ProperName "Proxy")))
132134
133135 mkProdClause :: (ProperName, [Type]) -> Expr
134− mkProdClause (ctorName, tys) = ObjectLiteral [ ("sigConstructor", StringLiteral (runProperName ctorName))
136+ mkProdClause (ctorName, tys) = ObjectLiteral [ ("sigConstructor", StringLiteral (showQualified runProperName (Qualified (Just mn) ctorName)))
135137 , ("sigValues", ArrayLiteral . map mkProductSignature $ tys)
136138 ]
137139