Haskell派生显示错误

时间:2017-06-14 20:30:06

标签: haskell show deriving

我做了一些关于有色Petri网进行大学评估的研究,我需要在Haskell中实现它们。我使用this文档作为起点。

当我尝试在Haskell中导入此模块时:

module SimpleHCPN where

import Data.List
import System.Random

data Net marking = Net {trans :: [Transition marking]}
                   deriving (Show)
data Transition marking = Transition { name :: String
                                     , action :: marking -> [marking]
                                     }
                          deriving (Show)

我收到以下错误:

SimpleHCPN.hs:11:37: error:
    * No instance for (Show (marking -> [marking]))
        arising from the second field of `Transition'
          (type `marking -> [marking]')
        (maybe you haven't applied a function to enough arguments?)
      Possible fix:
        use a standalone 'deriving instance' declaration,
          so you can specify the instance context yourself
    * When deriving the instance for (Show (Transition marking))

我仍然是Haskell的新手,所以会有一点帮助。

谢谢, 丹尼斯

1 个答案:

答案 0 :(得分:2)

action的类型为marking -> [marking],并且函数没有类型Show的实例。

您可以为Text.Show.Functions的类型类实例导入Show以获取函数,但我不知道,它是否显示有用的内容或仅"Function"用于任何函数。