种类 * 的函子实例

maj*_*zak 1 haskell

我有新类型:

newtype Foo = Foo ([Int])
Run Code Online (Sandbox Code Playgroud)

我想简单地Int -> Int在它上面应用函数,就像 fmap 一样。

我认为派生或实现Functor实例就足够了,但它需要* -> *一种类型。

是否有一些内置方法可以使我的类型部分fmap可用?

lef*_*out 9

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 = ...
Run Code Online (Sandbox Code Playgroud)