transduction
memoization