[Haskell-beginners] How to call constructor from Template Haskell

Baa aquagnu at gmail.com
Mon Dec 11 11:04:33 UTC 2017

Hello All!

I have function which constructs some data type. It has signature `Name -> Q [Dec]`.
Somewhere in its body I'm extracting constructors of some type with pattern-matching:

  case tyCons of
    DataD ctx nm tyVars mbKind cs derivs -> ...
 Type of those constructors `cs` instantiates some class like this:
   class MyClass a where
     specialValue :: a
 So, I'm iterating over those `cs` but I want to skip one of them which is
 equal to `specialValue`. Something like this:
   [c | c <- cs, c /= specialValue]
 How to do this with Template Haskell's `Con` type (`c`::Con) - I can't call
 it to compare created value with a `specialValue` ?
 Best regards, Paul

More information about the Beginners mailing list