我想为类约束创建同义词,例如以下示例(非常简化)
{-# LANGUAGE ConstraintKinds #-}
type Foo = Functor
data MyFunctor a = MyFunctor
instance Foo MyFunctor where
fmap _ _ = MyFunctor
但是我明白了fmap is not a (visible) method of class Foo
。
似乎我应该能够这样做,因为GHC文档说:“ ...在实例上下文和超类中允许这两种约束的标准约束,元组和类型同义词”。我正在使用GHC 7.6。
GHC文档中的这些陈述未涵盖您的案件。使用的实例上下文Foo
类似于:
instance Foo a => Bar a
一个超类将是这样的:
class Foo a => Bar a
也就是说,您正在定义其他一些类或实例,并且Foo
/Functor
是要求之一。在这里,您实际上是在尝试定义Functor
自己,并且必须使用真实的类名。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句