Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Here is a POC for a slightly different take on hkts. Here are the main ideas
$
. This avoids the uncanny valley of having bothFn<...>
and sometimes with$<Fn, ...>
.$
can take many arguments and supports partial application:$<Add, 1>
,$<Add, 1, 2>
,$<$<Add, _, 2>, 2>
and$<$<$<Add, _, 2>, _>, 3>
all work.$<Fn>
on any function if you want the result, even if it's already fully applied.Fn<[arg0, arg1, ...]>
$
is type safe. You can't provide a type that isn't assignable to the constraint.Here is what using it feels like: