[A bit late reply - I've just returned from vacation] On Sun, Jan 08, 2006 at 05:47:19PM -0000, Brian Hulley wrote: > All I'm proposing is that the compiler should do all this painful work for > you, so that you don't need to bother creating a different file that then > needs two import directives to achieve the effect I want. Is there any case > where you would *not* want a type to be declared in its own module?
I can think of such cases - for example consider a set of mutually recursive datatypes used to represent abstract syntax trees in some language. Of course, I imagine that "your modules" could be introduced in such a way that would still allow recursion, but it's simply more natural for me to place all those declarations in one module named Syntax or AST. > It is quite simple to create a new layout rule. My idea with this is that > all lines should start with zero or more tab characters (non-tab leading > whitespace is disallowed), All lines start with at least zero tab characters, trivially. > and all layout blocks should start on a new line. That's a good coding practice (yes, you can write like this in Haskell already), making your code more change-friendly, which is especially important when you use some version control tool. It would be nice if this could be enforced by the compiler, at least as some kind of a warning. I encourage you to add such option to some Haskell compiler, or a coding policy checking tool :-) > Moreover, it is possible to completely dump the ugly let..in > construct, and make "=" one of the tokens that can start a new layout > block, so instead of: > > f x = let a = x+1 > b = x + 2 > in a + b How about f x = let a = x + 1 b = x + 2 in a + b Anyway, I would use "where" here. > one would simply write: > > f x = > a = x+1 > b = x+2 > a + b I don't like it. It's shorter, but less readable too. You could simply write: f x = a + b where a = x+1 b = x+2 which is not that much longer, but much more readable. Best regards Tomasz -- I am searching for programmers who are good at least in (Haskell || ML) && (Linux || FreeBSD || math) for work in Warsaw, Poland _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe