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 mail4-relais-sop.national.inria.fr (mail4-relais-sop.national.inria.fr [192.134.164.105]) by sympa.inria.fr (Postfix) with ESMTPS id E92107ED93 for ; Wed, 19 Sep 2012 09:11:32 +0200 (CEST) Received-SPF: None (mail4-smtp-sop.national.inria.fr: no sender authenticity information available from domain of dmhouse@gmail.com) identity=pra; client-ip=209.85.220.182; receiver=mail4-smtp-sop.national.inria.fr; envelope-from="dmhouse@gmail.com"; x-sender="dmhouse@gmail.com"; x-conformance=sidf_compatible Received-SPF: Pass (mail4-smtp-sop.national.inria.fr: domain of dmhouse@gmail.com designates 209.85.220.182 as permitted sender) identity=mailfrom; client-ip=209.85.220.182; receiver=mail4-smtp-sop.national.inria.fr; envelope-from="dmhouse@gmail.com"; x-sender="dmhouse@gmail.com"; x-conformance=sidf_compatible; x-record-type="v=spf1" Received-SPF: None (mail4-smtp-sop.national.inria.fr: no sender authenticity information available from domain of postmaster@mail-vc0-f182.google.com) identity=helo; client-ip=209.85.220.182; receiver=mail4-smtp-sop.national.inria.fr; envelope-from="dmhouse@gmail.com"; x-sender="postmaster@mail-vc0-f182.google.com"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AmMBAPNuWVDRVdy2mGdsb2JhbABFvEwIIwEBAQEBCAkNBxQngiEBAQQSAiwBGx0BAwwGBQsDOCIBEQEFARwGNYdOAQMMnAMJA4wlgnOFFAoZJw1ZiHQBBQyRUQOVY45CFimEBw X-IronPort-AV: E=Sophos;i="4.80,447,1344204000"; d="scan'208";a="156209952" Received: from mail-vc0-f182.google.com ([209.85.220.182]) by mail4-smtp-sop.national.inria.fr with ESMTP/TLS/RC4-SHA; 19 Sep 2012 09:11:32 +0200 Received: by mail-vc0-f182.google.com with SMTP id fw7so1373278vcb.27 for ; Wed, 19 Sep 2012 00:11:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=T+9gGXB9ZJp3emUGNaGZGTFjV5oEc0+oEhACD47kZRI=; b=OtFJPIn9NUxbxYlIKaJpPJmlcbZDmSIIGzVOS0K2YHGEraRjAzEWD4SRhzppUACtg6 WFqIWk5l4CQ+23j4eOYt3GYcb0yHCPM0WkRACO1kBzmUzQfRmqaZs7vOpWxxrwbSH0Bf EZ4xu9MDoD7ayJ0aYxvQOKB1xzI1M6zvNIpygE+Jl48qBKL6u57Uc2o6rg1NEHqIi14m 85yWBhZqCnolqWPhM2kYyUP+HXG7hKhMamfquLxEzKn+h4jojlJbXRSjapRXpdzhAm2r T+0k73gyC2QSBWFqLza91IxXOFav1MhtMaszzPowf+4zwm99opJoZprHB0ux+ETFvLVU fAlg== MIME-Version: 1.0 Received: by 10.52.90.104 with SMTP id bv8mr1179965vdb.102.1348038691920; Wed, 19 Sep 2012 00:11:31 -0700 (PDT) Received: by 10.58.202.4 with HTTP; Wed, 19 Sep 2012 00:11:31 -0700 (PDT) In-Reply-To: <505929CD.70206@gmail.com> References: <505929CD.70206@gmail.com> Date: Wed, 19 Sep 2012 08:11:31 +0100 Message-ID: From: David House To: Edgar Friendly Cc: caml-list@inria.fr Content-Type: text/plain; charset=ISO-8859-1 Subject: Re: [Caml-list] Expressing module sig and impl in mli file The standard way of doing this is as follows (note that Identifier is changing to Identifiable in the next version, so I'll use that terminology): module Bar : sig type t = string include Identifiable with type t := t end But if this is literally what you're doing, I'm sort of confused. The point of identifiable is that you have explicit to_string/from_string functions and the type equality with string is not exposed. E.g. you might want to use a different comparison function than string equality. If you expose the type equality with string, then people are free to use String.compare on your type, so you don't get the abstraction you wanted.