_A_b_o_u_t_ _t_h_i_s_ _r_e_l_e_a_s_e_ _o_f_ _M_i_r_a_n_d_a  (October 1989)

This is release 2 of the Miranda system.   It  has  the  following  main
additions, compared with release 1
	the library directive %free (for parametrised scripts)
	unbounded precision integers
	local polymorphism
Both compiler and run time system are also significantly faster (overall
improvement about 25%, but much greater in some specific cases) and  all
reported  bugs  have  been fixed.  Many thanks to the people who sent in
bug reports from release one.  Miranda is  now  running  at  over  three
hundred  sites  and is becoming accepted as one of the standard vehicles
for functional programming.

The opportunity has also been taken to tidy up the  language  definition
by  removing  two  features  that with the benefit of hindsight now seem
questionable - namely `laws' and  strictness  annotations  on  algebraic
data  types.   The  compiler  still  accepts  these  (for a transitional
period) but they now attract an  `obsolete  feature'  warning  and  will
cease  to  be supported at the next release.  One other minor change has
been made, for compatibility with Bird and Wadler - introduction  of  an
(optional) keyword `_i_f' before guards.

All the differences between release 1  and  release  2  of  Miranda  are
listed  in  the  CHANGES section of the manual.  If you are new user you
can safely ignore the CHANGES section.

 ----------------------------------------------------------------------
| Users with existing scripts, prepared under release one, should read |
| part 1 of the ``CHANGES'' section carefully to see if they will need |
| to make any alterations to their scripts  to  get  them  to  compile |
| under the new release.                                               |
 ----------------------------------------------------------------------

The online manual pages are primarily intended to document the system at
the  level required by an expert user (meaning someone who already knows
quite a lot about programming and programming languages in general,  and
has  some  previous experience of functional programming in particular.)
There is a certain amount  of  tutorial  material,  but  if  you  are  a
beginner to functional programming you may find parts of the manual hard
to follow, and will need to seek help elsewhere.

The following paper gives a useful summary of the features of Miranda:
  D. A. Turner "An Overview of Miranda", SIGPLAN Notices, December 1986.
A copy of this paper is included in the manual pages.

The following  introductory  text  book  is  recommended  for  use  with
Miranda.   It  is  a  tutorial  text  aimed at undergraduates learning a
functional language as their first programming language,  with  numerous
well  chosen  examples  and  exercises.   It  is  equally suitable for a
graduate course on functional programming.  The  notation  used  in  the
book is closely based on Miranda(*):-

  "An Introduction to Functional Programming" by Richard Bird and Philip
Wadler, published by Prentice Hall International, March 1988.
	ISBN 13-484189-1 (Cloth)
	ISBN 13-484197-2 (Paper)

All the standard functions listed in appendix B of Bird and  Wadler  are
present  in the Miranda standard environment with the same names and the
same definitions.  (Note in particular that the Miranda function `foldl'
is  now  the same as that in Bird and Wadler, removing what used to be a
source of confusion.)

------------------------------------------------------------------------
(*) Apart from some minor  typographical  considerations,  the  notation
used  in Bird and Wadler is a subset of Miranda.  The main typographical
points to note are (i) the book uses letters of the greek  alphabet  for
type  variables  -  in  Miranda type variables are written * ** *** ...;
(ii) the book uses a mathematical font for the  arithmetic  and  logical
operators - Miranda, for obvious reasons, uses the ascii character set -
see section 8 of this manual for a list of operators used in Miranda.

