If we could only figure out a good syntax for (optional) type application, it would deal rather nicely with many of these cases. Trouble is, '<..>' gets confused with comparisons. And when there are multiple foralls, it's not obvious what order to supply the type parameters.
What about mantissa (| Double |) + 4 ? Order: left to right as they appear in the quantifier or else (more heavy-weight) several special brackets (curried foralls) ... sequence (| \ b . ST b MyState |) (| Int |) ... So we can write ... sequence ... all foralls are implicit ... sequence (| \ b . ST b MyState |) ... the second forall is implicit but not ... sequence (| Int |) ... the first forall is implicit Cheers, Ralf