
29 Oct
2003
29 Oct
'03
5:46 p.m.
Okay, I have got my template working, but its extremely unreadable... could anyone tell me how to make this look more like normal Haskell code? stringType :: String -> Q [Dec] stringType s = do x <- gensym "x" return [ Newtype [] s [] (Constr s [(NonStrict,Tcon (TconName "String"))]) [], Proto ("show"++s) (Tapp (Tapp (Tcon Arrow) (Tcon (TconName s))) (Tcon (TconName "ShowS"))), Fun ("show"++s) [Clause [Pcon s [Pvar x]] (Normal (App (Var "showString") (Var x))) []], Instance [] (Tapp (Tcon (TconName "Show")) (Tcon (TconName s))) [ Fun "showsPrec" [Clause [Pwild,Pvar x] (Normal (App (Var ("show"++s)) (Var x))) []]] ]