[Haskell-cafe] Filtering on data constructors with TH

Bulat Ziganshin bulat.ziganshin at gmail.com
Thu Jun 1 01:39:51 EDT 2006

Hello Christophe,

Thursday, June 1, 2006, 6:59:56 AM, you wrote:

> data Plop a b = Foo a | Bar b deriving Show
>   print $ filter isFoo l2

btw, DrIFT already have modules what implements this, along with
many other. it's a list of basic rules included in DrIFT:

standardRules = [("test",dattest, "Utility", "output raw data for testing", Nothing),
                  ("update",updatefn, "Utility","for label 'foo' provides 'foo_u' to update it and foo_s to set it", Nothing ),
                  ("is",isfn, "Utility", "provides isFoo for each constructor", Nothing),
                  ("get",getfn, "Utility", "for label 'foo' provide foo_g to get it", Nothing),
                  ("from",fromfn, "Utility", "provides fromFoo for each constructor", Nothing),
                  ("has",hasfn, "Utility", "hasfoo for record types", Nothing),
                  ("un",unfn, "Utility", "provides unFoo for unary constructors", Nothing),
                  ("NFData",nffn, "General","provides 'rnf' to reduce to normal form (deepSeq)", Nothing ),
                  ("Eq",eqfn, "Prelude","", Nothing),
                  ("Ord",ordfn, "Prelude", "", Nothing),
                  ("Enum",enumfn, "Prelude", "", Nothing),
                  ("Show",showfn, "Prelude", "", Nothing),
                  ("Read",readfn, "Prelude", "", Nothing),
                  ("Bounded",boundedfn, "Prelude", "", Nothing)]

Best regards,
 Bulat                            mailto:Bulat.Ziganshin at gmail.com

More information about the Haskell-Cafe mailing list