让我们说我们有
data D = X Int | Y Int Int | Z String
Run Code Online (Sandbox Code Playgroud)
我希望有一个功能 getDConst
getDConst :: D -> String
Run Code Online (Sandbox Code Playgroud)
根据用于输入的数据构造函数返回"X","Y"或"Z".是否有一种通用的方法来编写它而不必case对每个数据构造函数进行编写?(我可以使用依赖于Data.Typeable类似的解决方案)
我想要类似以下内容:
constrName :: Data a=> a -> String
constrName = showConstr . toConstr
Run Code Online (Sandbox Code Playgroud)
但是对于GHC.Generics. 我看到了这个Constructor类,但在范围内没有看到任何实例。我正在使用base-4.8.1.0.