Cats: Implement Zippers

Created on 21 Jun 2016  路  9Comments  路  Source: typelevel/cats

I have noticed that, while ScalaZ provides an implementation for Zippers, cats doesn't seem to have one yet. Would that be a useful addition to this project?, and if so, should we use the ScalaZ implementation as a reference?

According to the Haskell wiki, the concept was first formulated in a paper by Gerard Huet.

Most helpful comment

I've found the occasional use of zippers in the past. If we include this I would vote to have it in a separate project or a cats-zipper project.

All 9 comments

I've found the occasional use of zippers in the past. If we include this I would vote to have it in a separate project or a cats-zipper project.

@adelbertc did you consider using shapeless zipper?

@kailuowang Isn't shapeless zipper works only with HList like structures?

@PanAeon shapeless's zipper works on arbitrary nested product types.

@PanAeon sorry, it slipped my mind to reply to you. Thank you @milessabin !

thanks, both of you! That's why I'm asking - zipper from ScalaZ works with Streams, which I believe are kind of union types. So it is still makes sense to implement generic zipper / list zipper for cats. (maybe in a separate lib)

again I vote for a separate lib.

Also voting for a separate library.

+1 for this existing in a separate library if the shapeless version isn't sufficient. Another +1 for basing it on a clean implementation instead of starting with the Scalaz version.

Was this page helpful?
0 / 5 - 0 ratings