>> So it *looks* like there's only one list created in 'lvl1', but I >> can't see where it's turning into a tuple, and I don't understand the >> ' = : ' stuff, > > You're reading it wrong. : is a name. > It's lvl5 = (:) @ Char a2 ([] @ Char) where @ is type application > (instantiation). Triming that, it's > lvl5 = (:) a2 [] or just lvl5 = a2:[]
Ooohhhh, much clearer, thanks! The lack of ()s threw me. I'm still confused about the apparently undefined 'a2' though. However, it looks like there's only one [1], defined in lvl1, so I guess this means ghc has merged the two conses into one variable, and hence they really do have the same identity? _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe