| isDigit, readDec, and isAscii are defined in module Char,
| not in the Prelude, at least in Haskell 98
| 
|       http://haskell.systemsz.cs.yale.edu/definition/
| 
| Maybe the version of Hugs you are using is pre-Haskel98.
| Anyway, just say 'import Char'

I'm afraid that this is a problem with Hugs.  The definition of Haskell
requires support for mutually recursive modules, but no version of Hugs
supports this.  Haskell programmers may not use this feature in their
own code, but the Haskell standard Prelude does rely on it in fairly
significant ways.  In particular, the prelude imports functions from
some standard libraries, like Char, each of which depends in turn on
the Prelude, hence the mutual recursion.

To avoid these problems, Hugs includes definitions for the critical
components of such libraries in the Prelude.  The libraries are also
provided, but typically contain nothing more than stubs or blanks.
If you want to use isDigit and friends in a Haskell program, then
you should "import Char" first, as Simon suggests.  Doing that will
result in code that works for both Hugs and GHC.

Lack of support for mutually recursive modules is a documented weakness
of Hugs, but it has never been high enough up the list of priorities
to receive much attention.  (Unfortunately, it would require a lot of
effort to make this work, with arguably little gain.)

All the best,
Mark

Reply via email to