[Haskell-cafe] emacs haskell-mode indentation

Jeremy Shaw jeremy.shaw at lindows.com
Tue Jun 1 19:59:45 EDT 2004


At Tue, 1 Jun 2004 19:04:56 -0400,
Nathan Weston wrote:
> 
> I am learning haskell from "The Haskell School of Expression", and finding the 
> indentation in the emacs mode rather unhelpful. When I try to type in the 
> following example from the book:
> 
> main = runGraphics (
>        do w <- openWindow "Graphics" (300,300)
>           drawInWindow w (text(100,200) "Hello, world!")
>           k <- getKey w
>           closeWindow w       
> 		   )
> 
> emacs wants to indent it like so:
> 
> main = runGraphics (
>        do w <- openWindow "Graphics" (300,300)
>        drawInWindow w (text(100,200) "Hello, world!")
>        k <- getKey w
>        closeWindow w       
> 		   )
> 
> (For those not using a fixed-width font, in the first example, everything 
> lines up under the 'w <-', in the second, everything lines up under the 'do')
> 
> If I let emacs have its way, I get a syntax error.
> Am I doing something wrong here? Is the emacs mode broken?

The emacs mode definately leaves much to be desired, you could try
formatting the code like this instead:

main = runGraphics $
       do w <- openWindow "Graphics" (300,300)
	  drawInWindow w (text(100,200) "Hello, world!")
	  k <- getKey w
	  closeWindow w

The type signature for $ is:

($) :: forall b a. (a -> b) -> a -> b

I think the ($) operator was invented entirely for rewriting
expressions without parens...

Jeremy Shaw.
--

This message contains information which may be confidential and privileged. Unless you are the 
addressee (or authorized to receive for the addressee), you may not use, copy or disclose to anyone 
the message or any information contained in the message. If you have received the message in error, 
please advise the sender and delete the message.  Thank you.


More information about the Haskell-Cafe mailing list