In view of the recent suggestion of Philip Wadler re: Recursive type synonyms
>The suggestion is:
>
> Remove the restriction that type synonym
> declarations must not be recursive.
>
>In other words, one could write things like
>
> type Stream a = (a, Stream a)
>
>which is equivalent to the type (a, (a, (a, ...))).
I think this is a very sensible proposal. Furthermore, I believe that
implementing it would involve some exciting theory, viz. Peter Aczel's
Hyperset Theory (also known as ZFC-/AFA).
I strongly suggest Chapter 3 of the following book in this regard:
THE LIAR: AN ESSAY ON TRUTH AND CIRCULARITY
Jon Barwise and John Etchemendy
Oxford University Press (1987).
ISBN 0-19-505944-1 (PBK)
Library of Congress BC199.P2B37
Varol Akman
Department of Computer Engineering and Information Science
Bilkent University, Bilkent, Ankara 06533, Turkey
Phone: +90 (4) 266-4133 Fax: +90 (4) 266-4126 or -4127
** Effective 1/1/1994, dial (312) instead of (4) above **
email: [EMAIL PROTECTED] (preferred)
[EMAIL PROTECTED]