Libraries (was: IO monad and lazy evaluation)

Graham Klyne gk@ninebynine.org
Thu, 22 May 2003 12:27:22 +0100


Thanks for your explanations.

At 12:10 22/05/03 +0100, Alastair Reid wrote:
>If you're writing a non-trivial program, you might be best importing things
>directly from the standard libraries even if it is exported by the Prelude.

Yes, I do that.  My problem was that I was looking at the IO library 
documentation [1] and overlooked the prelude functions.  I think it's just 
a learning-curve problem.

[1] http://www.haskell.org/onlinereport/io.html

>Alternatively, you might consider importing things from the hierarchical
>libraries.  The advantage of the hierarchical libraries is that their
>interfaces are not frozen by the Haskell-98 definition but that is, of
>course, also their chief disadvantage.

I've come to see the Haskell 98 definition as a useful baseline rather than 
an endpoint.

Since I started using the state transformer monad I've migrated my code to 
use the hierarchical libraries (under Hugs, so far), which was a mostly 
painless process.  By way of feedback, a couple of oddities I noticed were:

(a) I couldn't pick up other libraries from the hierarchical tree (Parsec, 
HUnit), and still have to name their directories explicitly in the Hugs 
registry entry.

(b) I had to explicitly import a couple of Data.Char values that were 
previously picked up automatically (isSpace somes to mind).

#g


-------------------
Graham Klyne
<GK@NineByNine.org>
PGP: 0FAA 69FF C083 000B A2E9  A131 01B9 1C7A DBCA CB5E