bosatsu
bosatsu copied to clipboard
add type lambdas
we unify type application and curry types left to right, but sometimes we want to name types in a different order.
If we had a direct notion of type lambda, we could change the order for both of those cases.
enum Tree[a, f]: Empty, Branch(item: a, children: f[Tree[a, f]])
# binary tree (has kind +* -> *)
[a] -> Tree[a, [x] -> (x, x)]
# linked list (has kind +* -> *)
[x] -> Tree[x, Option]
first do #936