From: Olivier Andrieu <andrieu@ijm.jussieu.fr>
To: John Max Skaller <skaller@ozemail.com.au>
Cc: <caml-list@inria.fr>
Subject: Re: [Caml-list] Two types of efficiency (Was Efficiency of 'a list)
Date: Sun, 4 May 2003 13:52:50 +0200 [thread overview]
Message-ID: <16052.65298.366652.327622@karryall.dnsalias.org> (raw)
In-Reply-To: <3EB4C2BE.8020407@ozemail.com.au>
John Max Skaller [Sunday 4 May 2003] :
> Similarly, subtyping of polymorphic variants is invariant
> in the arguments, when covariance is sound and more useful.
> This is a real pain for me, since it destroys the main use
> I hoped to obtain for polymorphic variants:
>
> type x = [`A | `B of x]
> type y = [`A | `B of y | `C]
>
> x *is* a subtype of y, but the type system
> disallows it, failing to recognise that every `B x
> of type x is also a `B y of y. Typically I have
> say a term for an expression and I want to eliminate
> some cases by say a term reduction, but I can't restrict
> the resultant type as desired because there's no way
> to 'narrow' the type recursion.
# type x = [`A | `B of x] ;;
type x = [ `A | `B of x]
# type y = [`A | `B of y | `C] ;;
type y = [ `A | `B of y | `C]
# fun a -> (a :x :> y) ;;
- : x -> y = <fun>
Doesn't that mean that x is a subtype of y ?
--
Olivier
-------------------
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
next prev parent reply other threads:[~2003-05-04 12:30 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-05-02 19:27 [Caml-list] Efficiency of 'a list Eray Ozkural
2003-05-03 5:43 ` Mattias Waldau
2003-05-03 8:16 ` Ville-Pertti Keinonen
2003-05-03 14:12 ` Vitaly Lugovsky
2003-05-03 18:43 ` Mattias Waldau
2003-05-03 20:01 ` Eray Ozkural
2003-05-03 23:17 ` Eray Ozkural
2003-05-04 2:08 ` cashin
2003-05-04 4:08 ` alc
2003-05-04 5:32 ` Ed L Cashin
2003-05-04 6:46 ` [Caml-list] Two types of efficiency (Was Efficiency of 'a list) Mattias Waldau
2003-05-04 7:35 ` John Max Skaller
2003-05-04 11:52 ` Olivier Andrieu [this message]
2003-05-05 11:04 ` John Max Skaller
2003-05-04 16:48 ` brogoff
2003-05-04 7:43 ` Ville-Pertti Keinonen
2003-05-04 12:50 ` Eray Ozkural
2003-05-04 12:48 ` Eray Ozkural
2003-05-05 7:31 ` Diego Olivier Fernandez Pons
2003-05-05 11:11 ` Mattias Waldau
2003-05-05 13:17 ` John Max Skaller
2003-05-05 11:49 ` Eray Ozkural
2003-05-05 11:57 ` Yaron M. Minsky
2003-05-05 13:32 ` John Max Skaller
2003-05-06 2:49 ` Nicolas Cannasse
2003-05-06 12:30 ` Diego Olivier Fernandez Pons
2003-05-07 2:05 ` Nicolas Cannasse
2003-05-05 16:38 ` Diego Olivier Fernandez Pons
2003-05-05 18:05 ` Eray Ozkural
2003-05-06 13:28 ` Diego Olivier Fernandez Pons
2003-05-13 11:35 ` [Caml-list] Data Structure Libraries (was: Two types of efficiency) Oleg Trott
2003-05-04 7:55 ` [Caml-list] Efficiency of 'a list Ville-Pertti Keinonen
2003-05-04 10:56 ` Neel Krishnaswami
2003-05-04 12:56 ` Eray Ozkural
2003-05-04 13:35 ` Falk Hueffner
2003-05-04 12:38 ` Eray Ozkural
2003-05-04 8:07 ` Ville-Pertti Keinonen
2003-05-04 15:54 ` Ed L Cashin
2003-05-05 23:52 ` Garry Hodgson
2003-05-03 20:03 ` Eray Ozkural
2003-05-03 21:13 ` Lauri Alanko
2003-05-03 22:03 ` Eray Ozkural
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=16052.65298.366652.327622@karryall.dnsalias.org \
--to=andrieu@ijm.jussieu.fr \
--cc=caml-list@inria.fr \
--cc=skaller@ozemail.com.au \
/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