种类*的函子实例
我有新类型:
newtype Foo = Foo ([Int])
我想简单地Int -> Int在它上面应用函数,就像 fmap 一样。
我认为派生或实现Functor实例就足够了,但它需要* -> *一种类型。
是否有一些内置方法可以使我的类型部分fmap可用?
回答
https://hackage.haskell.org/package/mono-traversable-1.0.15.1/docs/Data-MonoTraversable.html#t:MonoFunctor
{-# LANGUAGE TypeFamilies #-}
type instance Element Foo = Int
instance MonoFunctor Foo where
-- omap :: (Int -> Int) -> Foo -> Foo
omap = ...