3.8 Haskell and MirandaAt the time Haskell was born, by far the most mature and widely used non-strict functional language was Miranda. Miranda was a product of David Turner's company, Research Software Limited, which he founded in 1983. Turner conceived Miranda to carry lazy functional programming, with Hindley-Milner typing, into the commercial domain. First released in 1985, with subsequent releases in 1987 and 1989, Miranda had a well supported implementation, a nice interactive user interface, and a variety of textbooks (four altogether, of which the first was particularly influential (Bird and Wadler, 1988)). It was rapidly taken up by both academic and commercial licensees, and by the early 1990's Miranda was installed (although not necessarily taught) at 250 universities and around 50 companies, in 20 countries.
Haskell's design was, therefore, strongly influenced by Miranda. At the time, Miranda was the fullest expression of a non-strict, purely functional language with a Hindley-Milner type system and algebraic data types---and that was precisely the kind of language that Haskell aspired to be. As a result, there are many similarities between the two languages, both in their basic approach (purity, higher order, laziness, static typing) and in their syntactic look and feel. Examples of the latter include: the equational style function definition, especially pattern-matching, guards and where clauses; algebraic types; the notation for lists and list comprehensions; writing pairs types as (num,bool) rather than the int*bool of ML; capitalisation of data constructors; lexically distinguished user-defined infix operators; the use of a layout rule; and the naming of many standard functions.