Generic Monadic Map and Join in F#, using statically resolved type variables | Hacker News Reader