The value of the following expression
let ?y = 2 in
let p = ?y in
let ?y = 1 in
p
depends on whether the second binding is generalised.
MonomorphismRestriction makes it not generalise, hence the value is 2.
What surprises me is that MonoLocalBinds doesn't have this effect.
Prelude> :set -XImplicitParams -XNoMonomorphismRestriction -XMonoLocalBinds
Prelude> let ?y = 2 in let p = ?y in let ?y = 1 in p
1
What's going on here?
Roman
_______________________________________________
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users