Refactoring arrows
At the moment arrow commands re-use HsExpr
for Proc expressions. But with Dan Winograd-Cort I concluded that the best thing by far would be to separate the data type of HsExpr
from that of arrow commands. I think that would lead to a substantial tidy up.
There is also a nasty lurking bug in the type checking of commands; see line 290 of TcArrows
. Here we call the unifier, but do not do anything with the coercion it returns. This is plainly wrong and will bite eventually. But I don't understand this code well enough to fix it.
In short, I am not confident of the arrows implementation at the moment.
Several tickets are blocked on this
- #5022 (closed) (which is marked as fixed but is a pretty tricky case)
- #5267
- #5777 (closed)
- #5609 (closed)
- #344
-
#4359 (closed) proposal for
proc case
and multi-branch if