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

The beginnings of mutually-recursive support. #28

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

sellout
Copy link
Contributor

@sellout sellout commented Jun 12, 2016

This gives us multi-sorted recursion-schemes.

It involves adding a bunch of “higher-order” type classes, etc., which
parallel the ones we already use.

Right now the implementation is pretty minimal – cata/ana, cataM/anaM
are available. These should generalize the same way as the mono-sorted
recursion schemes (para, apo, futu, etc.), but there’s just more stuff
to add before that’s available.

There are a couple minimal tests that show that it does something,
that apparently gets the right answer.

This gives us multi-sorted recursion-schemes.

It involves adding a bunch of “higher-order” type classes, etc., which
parallel the ones we already use.

Right now the implementation is pretty minimal – cata/ana, cataM/anaM
are available. These _should_ generalize the same way as the mono-sorted
recursion schemes (para, apo, futu, etc.), but there’s just more stuff
to add before that’s available.

There are a couple minimal tests that show that it does _something_,
that apparently gets the right answer.
@sellout
Copy link
Contributor Author

sellout commented Feb 28, 2017

Blocked by scala/scala#5744 for Scala 2.12 (and scala/scala#5749 for Scala 2.11).

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

Successfully merging this pull request may close these issues.

1 participant