From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on yquem.inria.fr X-Spam-Level: * X-Spam-Status: No, score=1.0 required=5.0 tests=AWL,SPF_NEUTRAL autolearn=disabled version=3.1.3 X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from mail4-relais-sop.national.inria.fr (mail4-relais-sop.national.inria.fr [192.134.164.105]) by yquem.inria.fr (Postfix) with ESMTP id 25086BC69 for ; Thu, 15 Nov 2007 18:30:18 +0100 (CET) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AgAAACIRPEdA6bjhlmdsb2JhbACPAAEBAQEHBAYREQc X-IronPort-AV: E=Sophos;i="4.21,421,1188770400"; d="scan'208";a="19350847" Received: from wr-out-0506.google.com ([64.233.184.225]) by mail4-smtp-sop.national.inria.fr with ESMTP; 15 Nov 2007 18:30:17 +0100 Received: by wr-out-0506.google.com with SMTP id c49so531219wra for ; Thu, 15 Nov 2007 09:30:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:message-id:date:from:user-agent:mime-version:to:cc:subject:references:in-reply-to:content-type:content-transfer-encoding; bh=nBkMm3ydFz2/N9ABktpukBYORTWwhsyMog2g1FjUgqw=; b=iXTGT7XmNDHlTFJ/OZNrtPk7iqkMUJw53tANwdMxuqyvpELDM/lve26eUMhqBHVPrjQCiSbdg7A6d2hHHeyuJubXnRChqT28sxVKOp+E0ILCQELohv28IRTmwTE9Fs2+LjXQB7tH93G2ZA6TnmaDv8Cac0wJMZTs6LCJP9I4oyQ= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:user-agent:mime-version:to:cc:subject:references:in-reply-to:content-type:content-transfer-encoding; b=Zz/KKmtzyqnuSlFhvEiQmHldql+OQzLQ3ygK+fwOAEeVo7Xn8yLZNq2e7Ml9MM6Qrg1nVN3+ptAx0RiVQczbfVgZj03ugd8nxAkEvpWEmOIXiYttPF2nKPcKIGdrQQl+rKL+DYM5bZgf4b4uA6qCLldz8wRYlPqKdNEELe9JG+I= Received: by 10.90.55.16 with SMTP id d16mr1468211aga.1195147816060; Thu, 15 Nov 2007 09:30:16 -0800 (PST) Received: from ?192.168.0.7? ( [69.152.94.247]) by mx.google.com with ESMTPS id 52sm1634254hsf.2007.11.15.09.29.44 (version=SSLv3 cipher=RC4-MD5); Thu, 15 Nov 2007 09:30:01 -0800 (PST) Message-ID: <473C81F5.6080808@gmail.com> Date: Thu, 15 Nov 2007 11:29:25 -0600 From: Edgar Friendly User-Agent: Thunderbird 2.0.0.9 (X11/20071031) MIME-Version: 1.0 To: Pierre Weis Cc: Alain Frisch , caml-list Subject: Re: [Caml-list] Compiler feature - useful or not? References: <473A363F.2080301@gmail.com> <891bd3390711131608g48b584a4n6b0ccab95d7de3f3@mail.gmail.com> <20071114075827.GA24058@yquem.inria.fr> <473AEC04.3030303@frisch.fr> <20071114143524.GA4423@yquem.inria.fr> <473B249D.9040703@frisch.fr> <20071114184352.GB28796@yquem.inria.fr> <473BE750.9060301@frisch.fr> <20071115132649.GB15754@yquem.inria.fr> In-Reply-To: <20071115132649.GB15754@yquem.inria.fr> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Spam: no; 0.00; compiler:01 summarize:01 edgar:98 abstract:01 abstract:01 caml-list:01 structures:02 expose:04 types:05 types:05 implementing:06 seem:08 seem:08 useful:09 quotient:09 Okay, let's see if I can summarize: Private types have use because you can expose your implementation while still having control over construction of values. This is important for implementing quotient structures. After reading everything about quotient types and the need for private types, I have to ask "why not just completely abstract the type"? What you seem to want from private types, you seem to gain pretty easily through abstract types. E.