It's cool that these challenges are so functional programming oriented, but I'd be a little bit concerned that the terminology might throw off some otherwise-skilled web developers who aren't used to operating at such a theoretical level. That problem would be compounded with definitions like "A thunk is basically a function that you call with just the callback as a parameter," in the challenge instructions (IMO that's a very layman definition for such a technical question).