[Hugs-users] WinHugs extremely basic newbie question

Thorkil Naur naur at post11.tele.dk
Thu Sep 6 14:01:47 EDT 2007

Hello Risto,

I don't have a Windows system myself, and therefore no winhugs, but your 
problems seem unrelated to winhugs as such, so I will try to indicate how you 
might proceed, using my Linux Hugs for illustration.

On Thursday 06 September 2007 14:13, Risto Rangel Kuoppa wrote:
> Hello everyone,
> I am having troubles to start using WinHugs.  I downloaded it, installed,
> and run it.  Yet I am unable to run something else than just evaluating
> expressions.  For example, I am trying to define my first data type with:
> Hugs> data Tipo = Cruz | Circulo deriving Eq

Quoting from the "The Hugs 98 User's Guide": "The Hugs prompt accepts 
expressions, but not Haskell definitions." (See 
http://cvs.haskell.org/Hugs/pages/users_guide/module-commands.html) So if you 
wish to work with definitions, you have to put them in a file and either list 
the file on the hugs command line (this is not winhugs) or load the file from 
the hugs promt. Here is what it would look like on a Linux system:

> tn at linux:~/tn/tmp/hugs> cat Risto1.hs
> data Tipo = Cruz | Circulo deriving Eq

("cat" is the Linux "type" command.)

> tn at linux:~/tn/tmp/hugs> hugs
> __   __ __  __  ____   ___      _________________________________________
> ||   || ||  || ||  || ||__      Hugs 98: Based on the Haskell 98 standard
> ||___|| ||__|| ||__||  __||     Copyright (c) 1994-2003
> ||---||         ___||           World Wide Web: http://haskell.org/hugs
> ||   ||                         Report bugs to: hugs-bugs at haskell.org
> ||   || Version: November 2003  _________________________________________
> Haskell 98 mode: Restart with command line option -98 to enable extensions
> Type :? for help
> Prelude> :load Risto1
> Main> Cruz
> ERROR - Cannot find "show" function for:
> *** Expression : Cruz
> *** Of type    : Tipo
> Main> :type Cruz
> Cruz :: Tipo
> Main> 

From this, you can see that hugs has indeed "got" the data definition. (To 
enable values of type Tipo to be printed, you should derive Show in addition 
to Eq.)

> But all I get is:
> ERROR - Syntax error in expression (unexpected keyword "data")
> Hugs>
> I think that I must load some module or library but when I make:
> Hugs> :load "C:\\Program
> Files\\WinHugs\\packages\\hugsbase\\Hugs\\Prelude.hs"
> I get:
> ERROR file:.\Prelude.hs - Module "Hugs.Prelude" already loaded
> Hugs.Prelude>

Here, you are trying to load the standard prelude, but that is loaded already 
by default, so the error message tells you exactly that. As indicated, you 
should probably create your own file, containing your definitions, and then 
load that.

> And I cannot find any Data.hs (Does it actually exist?) anywhere.

I am not sure what you are getting at here. Please give some additional 

I hope that you will be able to get past some of the initial hurdles. If not, 
or if you have additional questions, please feel free to ask again.

Best regards

> Could 
> someone help me with this please? I have already spent several hours
> trying to figure it out.  All I want is to start testing the tutorials and
> learn Haskell but I am missing something to run them with WinHugs.
> Thanks in advance,
> Risto
> _______________________________________________
> Hugs-Users mailing list
> Hugs-Users at haskell.org
> http://www.haskell.org/mailman/listinfo/hugs-users

More information about the Hugs-Users mailing list