Dynamic currying: part 1