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 6FD88820A1 for ; Mon, 12 Aug 2013 13:35:17 +0200 (CEST) Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of lpw25@cam.ac.uk) identity=pra; client-ip=131.111.8.152; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="lpw25@cam.ac.uk"; x-sender="lpw25@cam.ac.uk"; x-conformance=sidf_compatible Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of lpw25@cam.ac.uk) identity=mailfrom; client-ip=131.111.8.152; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="lpw25@cam.ac.uk"; x-sender="lpw25@cam.ac.uk"; x-conformance=sidf_compatible Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of postmaster@ppsw-52.csi.cam.ac.uk) identity=helo; client-ip=131.111.8.152; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="lpw25@cam.ac.uk"; x-sender="postmaster@ppsw-52.csi.cam.ac.uk"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AhcCAIPHCFKDbwiYnGdsb2JhbABawl+BGhYOAQEBAQEGDQkJFCiCJAEBBAEnEz8QCyElDwEESYgdBgSuCogHFpAlB4QRA54MjkU X-IPAS-Result: AhcCAIPHCFKDbwiYnGdsb2JhbABawl+BGhYOAQEBAQEGDQkJFCiCJAEBBAEnEz8QCyElDwEESYgdBgSuCogHFpAlB4QRA54MjkU X-IronPort-AV: E=Sophos;i="4.89,861,1367964000"; d="scan'208";a="29131856" Received: from ppsw-52.csi.cam.ac.uk ([131.111.8.152]) by mail2-smtp-roc.national.inria.fr with ESMTP; 12 Aug 2013 13:35:16 +0200 X-Cam-AntiVirus: no malware found X-Cam-ScannerInfo: http://www.cam.ac.uk/cs/email/scanner/ Received: from [109.144.151.170] (port=58099 helo=netbook) by ppsw-52.csi.cam.ac.uk (smtp.hermes.cam.ac.uk [131.111.8.158]:587) with esmtpsa (PLAIN:lpw25) (TLSv1.2:DHE-RSA-AES128-SHA:128) id 1V8qP6-0005Yp-Di (Exim 4.80_167-5a66dd3) (return-path ); Mon, 12 Aug 2013 12:35:16 +0100 From: Leo White To: Andreas Rossberg Cc: David Sheets , Caml List References: <1407E74D-EDC8-4638-8917-4CAC80B4C682@mpi-sws.org> <9D61A8E2-D0B4-452A-B372-401E499423AE@mpi-sws.org> <86bo549sv9.fsf@cam.ac.uk> <5208C0A7.2040906@mpi-sws.org> X-Face: "XWxb[u_Z\PA_Y?9@|IA!!+jTb(/290-*ea/Un$I0B98.$n%eL.;2w*,z]WR#T:,p[ NBd++M7l]#7zj7!{~iw $W-"/=|dVjhT[D{4~gE}gK<2`.6fs!;uqqud]vs2N/3^m7{aS1V, Date: Mon, 12 Aug 2013 12:37:34 +0100 In-Reply-To: <5208C0A7.2040906@mpi-sws.org> (Andreas Rossberg's message of "Mon, 12 Aug 2013 13:01:59 +0200") Message-ID: <86haevnnr5.fsf@cam.ac.uk> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.4 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Subject: Re: [Caml-list] First-class Functor Forgetting for Free >> So, >> >> let g x = let module X = (val x : D) in X.(f x) >> >> would have a type: >> >> (module D with ..) -> int > > This certainly is a nice suggestive syntax, but it is assuming an underlying semantic similarity that does not > exist. Semantically, the type sharing equations on signatures have very little in common with rows, and I have a hard > time imagining what interpreting the above as a row would even mean or how it would fit in with either core or module > typing. I don't see what is hard to imagine. The row variable represents possible extra with-constraints. The type above can be unified with any package type with signature D. With-constraints are essentially sets of label and type pairs, row polymorphism provides a mechanism for typing sets of label and type pairs. I don't see where they differ "semantically". > (I could go into boring technical details here, but I'll leave it at > that. :) ) I would prefer it if you did (off-list if you prefer). Regards, Leo