GHCi ignores -XMonomorphismRestriction and -XNoExtendedDefaultRules
Because of the way the GHCi defaults are applied, specifying -XMonomorphismRestriction
or -XNoExtendedDefaultRules
on the GHCi command line doesn't actually make those take effect at the interactive prompt. They get reset to their interactive defaults afterwards. This is rather surprising, and I think it should be fixed.
dfeuer@squirrel> ghci -XMonomorphismRestriction
Prelude> x = 3
Prelude> :t x
x :: Num t => t -- What? I said I wanted the restriction!
Prelude> :set -XMonomorphismRestriction
Prelude> y = 3
Prelude> :t y
y :: Integer
One option is to dig through the parsed flags after setting the defaults to try to find these, but that sounds unpleasant. We're slowly accumulating hacks in this area, and it would be nice to find a better approach.