From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@sympa.inria.fr Delivered-To: caml-list@sympa.inria.fr Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by sympa.inria.fr (Postfix) with ESMTPS id 475D07F719 for ; Wed, 29 Jan 2014 17:12:47 +0100 (CET) Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of yotambarnoy@gmail.com) identity=pra; client-ip=209.85.216.46; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="yotambarnoy@gmail.com"; x-sender="yotambarnoy@gmail.com"; x-conformance=sidf_compatible Received-SPF: Pass (mail2-smtp-roc.national.inria.fr: domain of yotambarnoy@gmail.com designates 209.85.216.46 as permitted sender) identity=mailfrom; client-ip=209.85.216.46; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="yotambarnoy@gmail.com"; x-sender="yotambarnoy@gmail.com"; x-conformance=sidf_compatible; x-record-type="v=spf1" Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of postmaster@mail-qa0-f46.google.com) identity=helo; client-ip=209.85.216.46; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="yotambarnoy@gmail.com"; x-sender="postmaster@mail-qa0-f46.google.com"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AmECAC8n6VLRVdgulGdsb2JhbABZhBq8f38IFg4BAQEBBwsLCRIqgiUBAQEDAScZARsdAQMBCwYFBAEGDS4iAREBBQEcBhOHcAEDCQieP4xcgwmTAAoZJw1khyYRAQUMjnMHhDgEiUmOX5AyGCmEdx4 X-IPAS-Result: AmECAC8n6VLRVdgulGdsb2JhbABZhBq8f38IFg4BAQEBBwsLCRIqgiUBAQEDAScZARsdAQMBCwYFBAEGDS4iAREBBQEcBhOHcAEDCQieP4xcgwmTAAoZJw1khyYRAQUMjnMHhDgEiUmOX5AyGCmEdx4 X-IronPort-AV: E=Sophos;i="4.95,742,1384297200"; d="scan'208";a="55828728" Received: from mail-qa0-f46.google.com ([209.85.216.46]) by mail2-smtp-roc.national.inria.fr with ESMTP/TLS/RC4-SHA; 29 Jan 2014 17:12:10 +0100 Received: by mail-qa0-f46.google.com with SMTP id ii20so2674621qab.33 for ; Wed, 29 Jan 2014 08:12:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type; bh=o6p1f1kRb6nKfbjEW1wyhXdI4IYuUcGs+UdD2BTFOpw=; b=JzZ2jj6gckJb6tTssmjxdiXv2e2ghSSdF8Hv0iERr93/I9PE3e10FYZD74c6cscQer uwm+sx4Jp2yPiwxsjI+0ds0P1FJSiI+GiSbwdpyN8gAhC9ohBkApQOfFRUMfHS5JltPp 2HNBO6Wmuj+R8aFtE6LAawUEWxzTODOUdI9Fege8H1y7/LeVyjuj5+WmVJoxtB/xnG/c vwVw0VNHAqLfLntA2ngtpSQRAE1JE866KQXov1nARtJFpK+DuAU8vd/CEvoqwhiUh+ZH Pdw6N7mXFkrJgRssZoSzp8d6I4vO6DdBnil8z1E0/jOV4H0ZOvd6SaUOb9+XTwVPN57m sBZQ== X-Received: by 10.224.127.131 with SMTP id g3mr13361671qas.98.1391011929996; Wed, 29 Jan 2014 08:12:09 -0800 (PST) MIME-Version: 1.0 Received: by 10.224.106.137 with HTTP; Wed, 29 Jan 2014 08:11:49 -0800 (PST) In-Reply-To: <02c001cf1ccc$b635a9b0$22a0fd10$@ffconsultancy.com> References: <20140120101654.GI26447@frosties> <08bc01cf17b8$9263d070$b72b7150$@ffconsultancy.com> <20140123092925.GB20624@frosties> <01c401cf1891$b1fb1360$15f13a20$@ffconsultancy.com> <026101cf18dd$756c13d0$60443b70$@ffconsultancy.com> <030501cf1925$45380fa0$cfa82ee0$@ffconsultancy.com> <20140127152944.GA29326@frosties> <02c001cf1ccc$b635a9b0$22a0fd10$@ffconsultancy.com> From: Yotam Barnoy Date: Wed, 29 Jan 2014 11:11:49 -0500 Message-ID: To: Jon Harrop Cc: Goswin von Brederlow , Ocaml Mailing List Content-Type: multipart/alternative; boundary=001a11c1e2d2f776f604f11e3343 Subject: Re: [Caml-list] How much optimized is the 'a option type ? --001a11c1e2d2f776f604f11e3343 Content-Type: text/plain; charset=ISO-8859-1 On Wed, Jan 29, 2014 at 3:32 AM, Jon Harrop wrote: > Yotam wrote: > > Of course, once you unbox, all parametric polymorphism is lost > > Is it? > > It is in haskell. In general, I don't think you can do any parametric polymorphism without metadata. > You would have to box the tuple before passing it to a polymorphic function > with the type 'a -> 'a. However, if the function has the type 'a * 'b -> 'b > * 'a then you could always unbox, right? > > I don't think so. Without metadata, how do you know where one tuple member ends and another begins? Yotam --001a11c1e2d2f776f604f11e3343 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable