为什么Data.Map.Map不是Bifunctor?

在 a 中存储数据时Map,我最近在寻找一个Bitraversable实例,因为我想遍历键和值。令我惊讶的是,我发现Map它甚至没有Bifunctor实例,即使first( mapKeys) 和second( map) 的实现都存在。

是否有特定原因,或者这个决定只是为了最大限度地减少依赖性?

谢谢

回答

为实现left(你实际上意味着first我会写的?left而不是first处处)不存在,因为mapKeys有一个限制:

Ord k2 => (k1 -> k2) -> Map k1 a -> Map k2 a

left必须适用于任何类型k1k2.


以上是为什么Data.Map.Map不是Bifunctor?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>