存在多个支持cons
操作的数据结构 - 在此结构的开头添加元素:
所有这些数据结构也有head
和tail
。所以我想创建抽象(使用类型类),覆盖所有这些可能的类型,并使用多态操作,以便对实现此类型的任何数据类型使用head
,(:)
和tail
类。而且,我想要这种类型的一些法律。
我想知道,是否有任何好的现有抽象允许解构为 head 和 tail 并预先添加元素?
真的很接近这个:
-- Foldable is used because I can have and may use
-- head :: Foldable f => f a -> Maybe a
class Foldable f => Prependable f where
(:) :: a -> f a -> f a
tail :: f a -> f a