Currying / memoization / trampolines