Runtime error with currying constructors
There is something wrong with the curry table of constructors, as can be seen with the following program:
:: List = Cons Int List | Nil foldr :: (.a -> .(.b -> .b)) .b ![.a] -> .b foldr op r l = foldr l where foldr  = r foldr [a:x] = op a (foldr x) Start = foldr Cons Nil [1,2,3]
foldr jumps to
_add_arg1-3. In the real runtime system there is extra code before the
_add_arg entries (of 1 and above) which build the new node.