1
寫這樣的實例聲明工作正常:與類型變量
data Either a b = Left a | Right b
instance Functor (Either a) where
fmap _ (Left x) = Left x
fmap f (Right x) = Right (f x)
現在可以說,我想這個反轉,左應用於F到值:
instance Functor (Either a) where
fmap _ (Right x) = Right x
fmap f (Left x) = Left (f x)
這並不編譯,我想我需要像Functor (Either _ b)
這樣的東西,我該怎麼做?
你不能,至少沒有直接。你可以爲'Either'做一個'newtype'包裝器。 – melpomene