home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / hugs101o.zip / Progs / HUGS / Readme < prev   
Text File  |  1995-03-02  |  6KB  |  104 lines

  1. ______________________________________________________________________________
  2.      ___    ___   ___    ___   __________   __________
  3.     /  /   /  /  /  /   /  /  /  _______/  /  _______/  Version 1.01
  4.    /  /___/  /  /  /   /  /  /  / _____   /  /______
  5.   /  ____   /  /  /   /  /  /  / /_   /  /______   /    Copyright (c)
  6.  /  /   /  /  /  /___/  /  /  /___/  /  _______/  /     Mark P Jones
  7. /__/   /__/  /_________/  /_________/  /_________/      1994, 1995
  8.  
  9.  The Haskell User's Gofer System.   Derived from Gofer 2.30b.
  10.  
  11. ______________________________________________________________________________
  12.  
  13. This is the Readme file for Hugs version 1.01, the Haskell User's Gofer
  14. System.  It provides a functional programming environment much like
  15. that of Gofer but with a much greater degree of compatibility with
  16. Haskell.  Almost all of the features of Haskell 1.2 are implemented
  17. with the exception of the module system (like Gofer, module headers and
  18. import declarations are parsed, but are otherwise ignored).  For
  19. example, Hugs supports Haskell style type classes, a full prelude,
  20. derived instances, defaults, overloaded numeric literals and pattern
  21. matching, and bignum arithmetic.
  22.  
  23. Some of the fancier features of Gofer are not supported by Hugs.  In some
  24. cases, this is necessary because they are incompatible with the Haskell
  25. type system (overlapping instances, multiple parameter type classes, the
  26. ability to use custom preludes,...).  Others have been removed because they
  27. are experiments in language design that were appropriate for Gofer, but not
  28. for Hugs (c*n patterns, do notation, overloaded monad comprehensions,
  29. Orwell style guards,...).  If you're wondering, constructor classes *are*
  30. supported.
  31.  
  32. Hugs was written on a PC while I was between jobs at Yale and Nottingham.
  33. I'd been meaning to put together a system like this for some time, and have
  34. had strong encouragement from certain quarters, but hadn't had the time to
  35. work on it until then.  Gofer has been popular and has played a useful role
  36. for me and for others.  But as time has passed and Haskell has become more
  37. established as a standard, the differences and incompatibilities between
  38. the two languages has become something of a pain and an embarrassment,
  39. particularly as one of the goals in the design of Haskell was to `reduce
  40. unnecessary diversity in functional programming languages'.
  41.  
  42. Hugs is derived from Gofer and, as a result, benefits from many of the
  43. bug-fixes and enhancements that have been made to Gofer over the past
  44. few years, a significant proportion of which have been suggested to me
  45. by Gofer users.  However, there is also quite a lot of new code, so
  46. please be prepared to find bugs, and please report them to me if you
  47. do.  Bearing in mind that this is the first release, you should probably
  48. expect to see some things change in future distributions.
  49.  
  50. I've held back the release of Hugs until now because I didn't have the
  51. time to package it up and release it before.  Hugs has benefited from
  52. the delay with the addition of things like finishing off the support
  53. for bignum arithmetic, but there are still a couple of other things I'd
  54. like to add in due course, the most obvious being 1.3 style monadic
  55. IO.  There are also a couple of things that I've removed from this
  56. distribution because they weren't quite ready for public consumption
  57. and I didn't want to hold up the distribution any longer.  Watch this
  58. space.
  59.  
  60. Other things that might be FAQs:
  61.  
  62.   - Since I wrote Hugs, I've discovered how to handle multiple
  63.     parameter classes in a way that is both useful and fully compatible
  64.     with the rest of the type system.  I'll probably hack that into the
  65.     system when I get a chance.  (See my work on simplifying and
  66.     improving qualified types for details.)
  67.  
  68.   - There are no plans at the moment for a hugsc compiler, analogous to
  69.     gofc; I don't think that would be particularly difficult, but I
  70.     don't have the time.
  71.  
  72.   - Documentation for Hugs is in preparation.  For the time being, if
  73.     you are familiar with the Gofer system, then you aren't likely
  74.     to have much difficulty with Hugs.  If you're interested in the
  75.     implementation, then much of the report on the implementation of
  76.     Gofer still applies.  The type checker is quite different though;
  77.     the main technical achievement of Hugs is to make the old Gofer
  78.     style approach to type classes (on which the implementation still
  79.     depends) look like the Haskell type system.  I started to write a
  80.     paper about this, but there's a long way to go before it's finished.
  81.  
  82.   - For the time being, I intend to continue maintaining both Gofer and
  83.     Hugs, but I haven't decided what I'll do about future development.
  84.     It is unlikely that I will be able to keep Gofer and Hugs in step
  85.     with one another in terms of future development.
  86.  
  87. Your feedback, comments, suggestions and bug reports are most welcome!
  88. However, this is a very busy time for me and I will almost certainly
  89. be unable to respond quickly to messages about Hugs or Gofer during the
  90. next month or two.
  91.  
  92. ______________________________________________________________________________
  93.  
  94. You can obtain a copy of Hugs by anonymous ftp from:
  95.      ftp://ftp.cs.nott.ac.uk/pub/haskell/hugs
  96.  or: ftp://ftp.cs.nott.ac.uk/pub/nott-fp/hugs
  97.  
  98. Or, using the World Wide Web, from my home page:
  99.      http://www.cs.nott.ac.uk/Department/Staff/mpj/index.html
  100.  
  101. ______________________________________________________________________________
  102. Mark P. Jones                                                mpj@cs.nott.ac.uk
  103. ______________________________________________________________________________
  104.