From: John Max Skaller <skaller@ozemail.com.au>
To: caml-list@inria.fr
Subject: [Caml-list] Representation of anonymous recursive types
Date: Thu, 18 Apr 2002 20:17:45 +1000 [thread overview]
Message-ID: <3CBE9D49.4020809@ozemail.com.au> (raw)
What is a good way to represent an anonymous recursive type
so that they can be easily compared for equality?
Felix currently supports recursion, but only for generative types,
that is, ones for which there is an entry into a symbol table.
Binding the type then replaces the name with the symbol
table index.
This cannot work for an anonymous type, unless of course
a secret entry is made in the symbol table, and that would
fail to correctly support type comparisons.
I'm thinking of something like:
type texpr = [ ....
| `Rec int
| `As int * texpr]
where the argument of `Rec indicates the containing `As term with
the same index. I think this means that the standard Ocaml
comparison <> will correctly test equality.
Example:
(Cons of int * 'a | Empty) as 'a
is modelled by:
`As (1, `Sum [`Nctor ("Cons", `Prod [`Int; `Rec 1]); `Cctor "Empty"])
For uniqueness, the index has to be 1 for inner most recursion,
2 for next outer one, etc.
--
John Max Skaller, mailto:skaller@ozemail.com.au
snail:10/1 Toxteth Rd, Glebe, NSW 2037, Australia.
voice:61-2-9660-0850
-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
reply other threads:[~2002-04-18 10:17 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=3CBE9D49.4020809@ozemail.com.au \
--to=skaller@ozemail.com.au \
--cc=caml-list@inria.fr \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox