Haskell派生显示错误

问题描述:

我做了一些关于有色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一个新手,帮助那么一点点将不胜感激。

谢谢, 丹尼斯

+0

更多相关问题:[1](https://*.com/q/15823732/791604),[2](https://*.com/q/15015698/791604),[3](https ://*.com/q/10551210/791604)。 –

actionmarking -> [marking]类型的,并且不存在类型类Show为函数的实例。

对于函数,您可以输入Text.Show.Functions为类型实例Show,但我不知道,如果它显示任何函数有用或只有"Function"

+0

right,thanks :-) –

+0

如果域很小,[Data.Universe.Instances.Show](http://hackage.haskell.org/package/universe-reverse-instances-1.0/docs/src/Data- Universe-Instances-Show.html)是另一种选择。 –