Hacker News new | past | comments | ask | show | jobs | submit login

What is the point of doing forall T but not forall A and B?



A and B are free to be chosen by a producer of the generic Sum type. However, T can be chosen "late", by a consumer of Sum; a value of type Sum A B must work for any T you decide to use down the line.

If it helps, the equivalent Java signature is:

    interface Sum<A, B> {
      <T> T visit(Function<A, T> onA, Function<B, T> onB);
    }
Hopefully this makes it more clear that A and B are fixed when you receive a value of type Sum A B, but you get to pick a T when consuming that value.


Thanks




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: