Open treeowl opened 9 years ago
We used to have it internally so that we could properly implement indexed traversals for free monads.
I have no idea what that means, sadly. Is it still necessary to have it implemented internally?
well, i confess to having some code that uses it from outside lens, since it knows it is in there, but we aren't currently using it in any instances any more, so it is something we could consider removing.
on the other hand, the instances like
instance FoldableWithIndex i f => FoldableWithIndex [i] (Free f)
would be for example asymptotically more efficient if it used
instance FoldableWithIndex i f => FoldableWithIndex (Deque i) (Free f)
but for that we'd probably want to consider promoting it to a non-internal module.
It seems a bit odd to implement deques in
lens
. Thedequeue
package needs its length annotations strictified, but that shouldn't be hard to accomplish.