-
Notifications
You must be signed in to change notification settings - Fork 87
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
“Adjust” FunctorT
for directly-recursive types.
#45
Comments
I won't pretend I understand all the dimensions of the problem here, but I understand software well enough to say definitively that nothing good has ever come of allowing an italicized maybe to affect one's design. |
Yeah, that’s what the conclusion says, too 😉 |
Right - but maybe my generalized version will find more applications elsewhere. 😃 |
To be clear (because, upon rereading I think it’s not) my plan is to eliminate the old approach that allows for types that can implement some |
With some (not yet PRed) changes that redefine all of the |
FunctorT
(andTraverseT
) was originally created to support transformations on types that had some way to “map” over the pattern functor, but lacked either aproject
orembed
(i.e., {Co}Free). However, there’s no way to change those type classes to the directly recursive approach and maintain that property. I’m not sure what the right approach is going forward.FunctorT
, so the original use case is already gone (the old implementations relied on incorrect semantics for those types, so it’s just as well)Recursive
andCorecursive
type classes.Ok, so I think I’ve convinced myself that those type classes should go away and we should just implement algebra transformations (e.g.,
AlgebraicTransform => Algebra
) to allow us to continue to write transformations the way we already do.The text was updated successfully, but these errors were encountered: