Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement Zippers #1156

Open
afiore opened this issue Jun 21, 2016 · 9 comments
Open

Implement Zippers #1156

afiore opened this issue Jun 21, 2016 · 9 comments

Comments

@afiore
Copy link
Contributor

afiore commented Jun 21, 2016

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.

@adelbertc
Copy link
Contributor

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.

@kailuowang
Copy link
Contributor

@adelbertc did you consider using shapeless zipper?

@PanAeon
Copy link

PanAeon commented Jun 12, 2017

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

@milessabin
Copy link
Member

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

@kailuowang
Copy link
Contributor

kailuowang commented Jun 13, 2017

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

@PanAeon
Copy link

PanAeon commented Jun 13, 2017

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)

@kailuowang
Copy link
Contributor

again I vote for a separate lib.

@djspiewak
Copy link
Member

Also voting for a separate library.

@mpilquist
Copy link
Member

+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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants