用单个值替换 Functor 的所有元素

Data.Functor 模块包含两个组合器 <$$>,它们忽略了仿函数中包含的所有值,用一个常量值替换它们。

infixl 4 <$, $>

<$ :: Functor f => a -> f b -> f a
(<$) = fmap . const

$> :: Functor f => f a -> b -> f b
($>) = flip (<$)

void 忽略计算的返回值。

void::Functor f => f a -> f ()
void = (() <$)