| > do { a <- getChar | > ; rec { b <- f c | > ; c <- g b } | > ; putChar c | > ; return b }
| This last point notwithstanding, | I find the scoping rules very unintuitive! | (b and c appear to escape their apparently nested scope.) well you are happy with do { z <- getChar ; let { b = f c ; c = g b } ; putChar c ; return b } It's just the same! Perhaps I should mention this in the user manual. (In haskell 'let' means 'letrec' of course.) Simon _______________________________________________ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users