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