鉴于:
newtype MyVec = MyVec { unVec :: Data.Vector }
deriving (Functor, etc)
这将创建(类似)这样的:
instance Functor MyVec where
fmap f = MyVec . Data.Vector.fmap f . unVec
Vectors 融合规则会触发并改写fmap f . fmap g $ myVec
成fmap (f . g) myVec
?
有什么我应该注意的陷阱吗?Afaik 为容器中的新类型“付费”的问题在 GHC 7.8 中得到了解决,是吗?