We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
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
This are just preliminary thoughts, but Crosswalk (with respect to Align) is not quite like Traversable (wrt Applicative).
Crosswalk
Align
Traversable
Applicative
The laws of Traversable target specific Applicative-instances, namely Identity and Compose f g:
Identity
Compose f g
traverse Identity = Identity
traverse (g <%< f) = traverse g <%< traverse f
given this graded composition operator:
(<%<) :: Functor f => Functor g => (b -> g c) -> (a -> f b) -> (a -> Compose f g c) g <%< f = Compose . fmap g . f
The laws of Crosswalk however just mention crosswalk (const nil) = const nil but maybe it can be written similarly? I'm curious what you think:
crosswalk (const nil) = const nil
crosswalk (const Proxy) = const Proxy
crosswalk (g <%< f) = crosswalk g <%< crosswalk f
The text was updated successfully, but these errors were encountered:
No branches or pull requests
This are just preliminary thoughts, but
Crosswalk
(with respect toAlign
) is not quite likeTraversable
(wrtApplicative
).The laws of
Traversable
target specificApplicative
-instances, namelyIdentity
andCompose f g
:traverse Identity = Identity
traverse (g <%< f) = traverse g <%< traverse f
given this graded composition operator:
The laws of
Crosswalk
however just mentioncrosswalk (const nil) = const nil
but maybe it can be written similarly? I'm curious what you think:crosswalk (const Proxy) = const Proxy
crosswalk (g <%< f) = crosswalk g <%< crosswalk f
The text was updated successfully, but these errors were encountered: