[Haskell-cafe] Re: do/if/then/else confusion

David Carter dmc at sanger.ac.uk
Thu Nov 1 13:53:06 EDT 2007

David Carter wrote:

> Another newbie question, but I can't seem to find any answers on the 
> web...

Just figured it out myself ... I need a "do" after the "else", of 
course. (But I still think the error message is less than helpful!).

Sorry for the bandwidth


> Can someone tell me what's wrong with this?
> import qualified System.Posix.Directory as PD
> readdirAll :: PD.DirStream -> IO [String]
> readdirAll d =
>   do dir <- PD.readDirStream d
>      if dir == ""
>        then return []
>        else rest <- readdirAll d
>             return (dir:rest)
> Compiling with GHC 6.6.1 gives me the not-very-useful message "Parse 
> error in pattern", pointing to the "i" of "if". I've tried all kinds 
> of alternative indentations (including indenting the "else" more), 
> bracketings etc, but nothing helps.
> Thanks
> David

 The Wellcome Trust Sanger Institute is operated by Genome Research 
 Limited, a charity registered in England with number 1021457 and a 
 company registered in England with number 2742969, whose registered 
 office is 215 Euston Road, London, NW1 2BE. 

More information about the Haskell-Cafe mailing list