Make bindings monomorphic based on use of closed values

  Adopt the definition of closed values defined by this post on the ghc blog:

https://ghc.haskell.org/trac/ghc/blog/LetGeneralisationInGhc7