From: David Allsopp <dra-news@metastack.com>
To: Alain Frisch <alain@frisch.fr>, caml-list <caml-list@inria.fr>
Subject: RE: [Caml-list] Re: module typing issue
Date: Mon, 28 Mar 2011 11:32:48 +0000 [thread overview]
Message-ID: <E51C5B015DBD1348A1D85763337FB6D972A7088B@Remus.metastack.local> (raw)
In-Reply-To: <4D903E90.4080907@frisch.fr>
Alain Frisch wrote:
> On 03/25/2011 08:01 PM, Guillaume Yziquel wrote:
> > type error = private int
> >
> > external get_error : unit -> error = "zzz"
> >
> > You get some error level that you can pattern match as an int, and
> > this also enforces that all values of type error come from a call to
> > get_error.
>
> You need to coerce explicitly from type error to type int (... :> int), so
> this is not really different from defining error as an abstract type and
> exposing a function error->int.
Except that calling an identity function like that requires an optimising compiler to spot that the call is irrelevant and can be removed whereas the coercion is handled (and stripped out) during type inference. So although they're roughly equivalent, the private int approach is "neater" by several orders of magnitude (and as long as you only need an abbreviated coercion, a similar amount of keyboard-typing)!
David
next prev parent reply other threads:[~2011-03-28 11:33 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-03-25 8:34 [Caml-list] " Joel Reymont
2011-03-25 8:44 ` [Caml-list] " Joel Reymont
2011-03-25 14:17 ` Joel Reymont
2011-03-25 15:46 ` Andreas Rossberg
2011-03-25 15:57 ` Joel Reymont
2011-03-25 16:04 ` Andreas Rossberg
2011-03-25 16:42 ` Guillaume Yziquel
2011-03-25 16:59 ` Andreas Rossberg
2011-03-25 19:01 ` Guillaume Yziquel
2011-03-25 19:13 ` Andreas Rossberg
2011-03-28 7:53 ` Alain Frisch
2011-03-28 10:33 ` Guillaume Yziquel
2011-03-28 11:29 ` David Allsopp
2011-03-28 11:58 ` Guillaume Yziquel
2011-03-28 12:11 ` David Allsopp
2011-03-28 12:29 ` Guillaume Yziquel
2011-03-28 12:23 ` Alain Frisch
2011-03-28 12:39 ` Guillaume Yziquel
2011-03-28 11:32 ` David Allsopp [this message]
2011-03-28 12:02 ` Guillaume Yziquel
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=E51C5B015DBD1348A1D85763337FB6D972A7088B@Remus.metastack.local \
--to=dra-news@metastack.com \
--cc=alain@frisch.fr \
--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