[Haskell-cafe] Getting list of constructors of a Type

Nils Schweinsberg mail at nils.cc
Tue Jun 3 22:01:18 UTC 2014


I'm not sure what exactly you're trying to do, but with Template Haskell 
it's easy:

> test :: Name -> Q [Dec]
> test name = do
>   info <- reify name
>   ...

Then call it from another module with the type name as argument (double 
single quotes):

> data Test = A | B
>
> test ''Test

The `Info` type returned by `reify` is described in:

http://hackage.haskell.org/package/template-haskell-2.9.0.0/docs/Language-Haskell-TH-Syntax.html#t:Info


- Nils

Am 03.06.2014 21:13, schrieb Alejandro Serrano Mena:
> Dear Haskell-Café,
> As part of my Google Summer of Code, I need to get the list of data
> constructors of a certain data type on a specific scenario.
> In my case, I'm getting a value of type Type (by calling exprType). I
> was expecting to be able to call getInfo directly on that value of type
> Type, but it doesn't have a name nor the constructors of Type are
> public. Thus, I'm not able to get that information :(
>
> Thanks in advance,
> Alejandro
>
>
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>


More information about the Haskell-Cafe mailing list