我有一个组合器C
和一个Functor
instance
定义如下:
data C f1 f2 a = C (f1 a) (f2 a)
instance
( Functor f1
, Functor f2
)
=> Functor (C f1 f2)
where
fmap g (C a b) = C (fmap g a) (fmap g b)
简单地说,我可能将C
描述为fmap
实例所分布的产品类型。
我的实现在这里很适合我的目的,但是我想知道在haskell或类别理论术语中是否有此组合器的适当名称,以便我可以向该库的未来用户预测这样做的作用,甚至使用现有的代码代替。
此组合器已经有名称了吗?
这是functor product。从链接:
data Product f g a = Pair (f a) (g a)
instance (Functor f, Functor g) => Functor (Product f g) where
fmap f (Pair x y) = Pair (fmap f x) (fmap f y)