根据我的理解,Foldable基本上代表了具有许多可以迭代的相同类型的元素的结构,即列表,地图,集合等.
是否有类似Appendable或Insertable基本上代表可以添加元素的结构?当然,不能保证检索哪些元素的顺序.
如果已经有一个课,我宁愿不自己创建一个课程.
您应该查看Data.Collections包.它包含Unfoldable带有以下方法的类型类:
class Unfoldable c i | c -> i where
insert :: i -> c -> c
empty :: c
singleton :: i -> c
Run Code Online (Sandbox Code Playgroud)
它还提供了insertMany与insertManySorted方法,以插入所有从一个元件Foldable到Unfoldable.
如果你让你的类型的两个实例Foldable,并Unfoldable然后你既可以插入和检索从它的元素.