From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by yquem.inria.fr (Postfix) with ESMTP id 3851ABC57 for ; Sun, 2 May 2010 04:59:49 +0200 (CEST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Au8BAFKH3EtKfVK0mGdsb2JhbACSY4pCCBUBAQEBAQgJDAcRIqlFgX+EOS6ITgEBAwWFDQSDPA X-IronPort-AV: E=Sophos;i="4.52,311,1270418400"; d="scan'208";a="49721952" Received: from mail-wy0-f180.google.com ([74.125.82.180]) by mail3-smtp-sop.national.inria.fr with ESMTP; 02 May 2010 04:59:48 +0200 Received: by wyb29 with SMTP id 29so921343wyb.39 for ; Sat, 01 May 2010 19:59:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:received:in-reply-to :references:date:message-id:subject:from:to:cc:content-type; bh=L+B1BdEURCR9CeUQSYhTpMvwDb9DJMaTMGatbohzxAo=; b=hgjiTbKmvLzT7C+KuEvv2fWuzJOWUZIIQSA9acJARq/OfHkVDLyZoVSiEbKeC22cYU W71bz8BL4Mi4wIRS7fZh3uobfboLzN22MwtyvZ2SijiIQiA7yGAgZbAbrpdnjiccal0q Fs13CRxYuMGb+d/qjIUopxMxkav/8UHb6nzSw= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; b=l4fSw8Jv4mrb0FgblBBV3Mlnj3lZ944JTMzmYteatHrF0BGB2AaKPHgZiAcVrZQELt zpQzAoIkOeFnDK4MQ/UCwDwPf9f7F5QufSNEkOV3D5+ihtCOlrmGouHjCfDL1E//wBcQ juBQ7EXQVEBWWdqs8pYJHxLqKZDnZ7K+N0dPU= MIME-Version: 1.0 Received: by 10.216.85.79 with SMTP id t57mr6573410wee.132.1272769188193; Sat, 01 May 2010 19:59:48 -0700 (PDT) Received: by 10.216.90.66 with HTTP; Sat, 1 May 2010 19:59:48 -0700 (PDT) In-Reply-To: References: Date: Sun, 2 May 2010 09:59:48 +0700 Message-ID: Subject: Re: [Caml-list] Subtyping structurally-equivalent records, or something like it? From: Anthony Tavener To: =?ISO-8859-1?Q?St=E9phane_Lescuyer?= Cc: caml-list@yquem.inria.fr Content-Type: multipart/alternative; boundary=0016e6d96d2857e532048593ab10 X-Spam: no; 0.00; subtyping:01 verbose:01 verbose:01 caml-list:01 types:05 types:05 problem:05 problem:05 phantom:07 phantom:07 stephane:07 stephane:07 looks:08 looks:08 i'm:09 --0016e6d96d2857e532048593ab10 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Wow! Thanks St=E9phane... that was a little piece of magic I was hoping for. It's a bit verbose, but at least it doesn't affect performance and it allows all the control over types I need. I now see I didn't really grok phantom types whenever they were mentioned. A bit of "in one ear and out the other". Now I have better grasp on yet another feature of the language. I know I read that one before, Dario... that title about NASA is familiar! Too bad I didn't remember it was a solution to the problem I was now having. Thank-you for that link -- an excellent description of the problem and a nice solution. Ah, great stuff... that looks like something to consider too, Sylvain! There's plenty of material on phantom types but I never made the connection that they were what I was looking for. Thank-you everyone for the help and clear explanations! I'm going to go play with this now. :) Anthony Tavener --0016e6d96d2857e532048593ab10 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Wow! Thanks St=E9phane... that was a little piece of magic I was
hoping = for. It's a bit verbose, but at least it doesn't affect
performa= nce and it allows all the control over types I need.

I now see I did= n't really grok phantom types whenever they were
mentioned. A bit of "in one ear and out the other". Now I havebetter grasp on yet another feature of the language.


I know I r= ead that one before, Dario... that title about NASA
is familiar! Too bad= I didn't remember it was a solution to the
problem I was now having. Thank-you for that link -- an
excellent descri= ption of the problem and a nice solution.


Ah, great stuff... tha= t looks like something to consider too,
Sylvain! There's plenty of m= aterial on phantom types but I never
made the connection that they were what I was looking for.


Thank= -you everyone for the help and clear explanations! I'm
going to go p= lay with this now. :)

Anthony Tavener

--0016e6d96d2857e532048593ab10--