made map() and zip() functions determine the arity of the result type where possible