fix bug in ->* contract combinator

that would cause the optional and mandatory keyword arguments
to get mixed up in certain situations