+ ; mono_pat_binds <- doptM Opt_MonoPatBinds
+ -- With -fmono-pat-binds, we do no generalisation of pattern bindings
+ -- But the signature can still be polymoprhic!
+ -- data T = MkT (forall a. a->a)
+ -- x :: forall a. a->a
+ -- MkT x = <rhs>
+ -- The function get_sig_ty decides whether the pattern-bound variables
+ -- should have exactly the type in the type signature (-fmono-pat-binds),
+ -- or the instantiated version (-fmono-pat-binds)