All variable/pattern bindings are monomorphic unless a signature is given

(one of the proposals for reforming the MonomorphismRestriction)


  • Simpler than the M-R
  • Polymorphism in local variable bindings is rare (but less rare at the top-level), and can always be recovered with a type signature


  • Against the spirit of Haskell - shouldn't compromise expressiveness for performance by default
  • Already huge potential for ruining your performance without the M-R, why introduce such draconian measures just for this?
  • Monomorphic bindings lead to hard to understand errors when polymorphism was expected
  • Haskell doesn't define an operational semantics so introducing a concept of sharing into the report would be odd.
Last modified 11 years ago Last modified on May 14, 2008 3:08:00 PM