Application letters at the Haskell workshop: suggestion

Lennart Augustsson lennart@augustsson.net
Fri, 14 Sep 2001 10:36:40 +0200


Marcin 'Qrczak' Kowalczyk wrote:

> Fri, 14 Sep 2001 01:00:06 +0200, Lennart Augustsson <lennart@augustsson.net> pisze:
>
> > I have been writing substantial Haskell programs and I use *NO*
> > experimental features.
>
> In a 2000-line interpreter I used:
> - FiniteMap (for environments),
> - Dynamic & Exception (for exceptions in the language being implemented
>   and compile errors),
> - MonadReader, MonadError (for convenience, in two places),
> - MVar (could be IORef; for mutable objects in the language being
>   interpreted),
> - unsafePerformIO (for three global variables: unique supply,
>   loaded modules, search paths),
> - Readline (for the interactive toplevel).

I don't think all of these are extensions.  Modules that can be written fully
in Haskell are not extensions, they are just libraries.  If you want to port your
application to another Haskell implementation you can simply use the source.
So I would guess that FiniteMap, MonadReader, MonadError, and Readline
are not extension (Readline probably uses C, but it doesn't have to).

The other extensions you have used sounds like you could do without.

    -- Lennart