From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by c5ff346549e7 (Postfix) with ESMTP id 5A4BC5D5 for ; Thu, 29 Nov 2018 09:09:54 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.56,294,1539640800"; d="scan'208,217";a="357912985" Received: from sympa.inria.fr ([193.51.193.213]) by mail2-relais-roc.national.inria.fr with ESMTP; 29 Nov 2018 10:09:50 +0100 Received: by sympa.inria.fr (Postfix, from userid 20132) id C7A558253E; Thu, 29 Nov 2018 10:09:50 +0100 (CET) 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 CC002824CF for ; Thu, 29 Nov 2018 10:08:22 +0100 (CET) Authentication-Results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=defree@gmail.com; spf=Pass smtp.mailfrom=defree@gmail.com; spf=None smtp.helo=postmaster@mail-oi1-f170.google.com IronPort-PHdr: =?us-ascii?q?9a23=3AKndmDxKIZNcKupGuudmcpTZWNBhigK39O0sv0rFi?= =?us-ascii?q?tYgQI/zxwZ3uMQTl6Ol3ixeRBMOHs6IC07KempujcFRI2YyGvnEGfc4EfD4+ou?= =?us-ascii?q?JSoTYdBtWYA1bwNv/gYn9yNs1DUFh44yPzahANS47xaFLIv3K98yMZFAnhOgpp?= =?us-ascii?q?POT1HZPZg9iq2+yo9JDffwZFiCChbb9uMR67sRjfus4KjIV4N60/0AHJonxGe+?= =?us-ascii?q?RXwWNnO1eelAvi68mz4ZBu7T1et+ou+MBcX6r6eb84TaFDAzQ9L281/szrugLd?= =?us-ascii?q?QgaJ+3ART38ZkhtMAwjC8RH6QpL8uTb0u+ZhxCWXO9D9QLYpUjqg8qhrUgflhy?= =?us-ascii?q?gJNzE78G/ZhM9+gr9Frh29vBFw2ZLYbZuPOfZiYq/Qf9UXTndBUMZLUCxBB5ux?= =?us-ascii?q?YYsVD+0bIOlftZP9p1oSohCjGASsA/7vyiVVjXLxwKI1zeohERvY0wM+BN8Ov3?= =?us-ascii?q?HUo8/0NKcWS+y60K7IzTDaYv5QxDzz65DIfwg/rf2QWb98a8ncxEk1Gw/Yj1id?= =?us-ascii?q?q5bpMy6X2+gRtWWQ8vBuWvi1i2E9rgF8ujivydkoionOno8Vz0rL9SR9wIosIt?= =?us-ascii?q?24SVN3bceqEJdNtSyWK5F6QswlQ2FvtyY6zqMJtYSncygNzZQr3x/fa/qZfIiU?= =?us-ascii?q?+h/vSvqdLDNiiH9meL+znQu+/Emix+HmS8W50kpGojJAktbWt3AN0xLT6tKASv?= =?us-ascii?q?t45kquxCiA1w7J6u5aP085jqXbK5s7zb4xkpofq1jMHijzmEnulq+Zal0k+vS0?= =?us-ascii?q?6+TgerjpuoWTN4pwig3nNqQum9e/AfgjPwgVX2mb/Py826f58U34RrVKlPw2nb?= =?us-ascii?q?PDvJDUP8RI7pK+VgNc1IAyrRmlBiu03c4wknwOLVYDcxWC3KbzPFSbDup5AXal?= =?us-ascii?q?gl/kujB23biSMrDvGJjABnfGmbblO7167hgPm0II0dlD6scMWfk6K/XpVxqp7Y?= =?us-ascii?q?2KPloCKwWxht3fJpB434IaV3iIB/bAYqzXuF6MoOkoJrvVPdNHiHPGM/EgosXW?= =?us-ascii?q?ozohg1ZEJPum2JIWbDazGfE0exzEM0qpuc8IFCIxhiR7TOHujwfcAztaZnL3WK?= =?us-ascii?q?Nloz9iV9rgAoDESYSgxreG2XXjEw=3D=3D?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0BmBQAGq/9bhqqnVdFlHgEGBwaBZYNsF?= =?us-ascii?q?BODeYEdgl6QJYINiSFlhFSKYg2EbAKDLxoHAQQ0EgEDAQECAQEBAQETAQEBCAs?= =?us-ascii?q?LCBsOIwyCNiKCZQEEASMdARsdAQMBCwYFBAEGNwICIQEBEQEFARwZgyGBaQEDD?= =?us-ascii?q?QiaazyLDYESBQEXgncFhD4KGScNXTGBBgIGEowEF4F/hCOCV4J3gjeCVwKJMpY?= =?us-ascii?q?/LgmGPYdJgywYkRqOYYlaDyGBPIF2TSMVOzGCO4IbGhuDOIpUQTCOOQEB?= X-IPAS-Result: =?us-ascii?q?A0BmBQAGq/9bhqqnVdFlHgEGBwaBZYNsFBODeYEdgl6QJYI?= =?us-ascii?q?NiSFlhFSKYg2EbAKDLxoHAQQ0EgEDAQECAQEBAQETAQEBCAsLCBsOIwyCNiKCZ?= =?us-ascii?q?QEEASMdARsdAQMBCwYFBAEGNwICIQEBEQEFARwZgyGBaQEDDQiaazyLDYESBQE?= =?us-ascii?q?XgncFhD4KGScNXTGBBgIGEowEF4F/hCOCV4J3gjeCVwKJMpY/LgmGPYdJgywYk?= =?us-ascii?q?RqOYYlaDyGBPIF2TSMVOzGCO4IbGhuDOIpUQTCOOQEB?= X-IronPort-AV: E=Sophos;i="5.56,294,1539640800"; d="scan'208,217";a="357912523" Received: from mail-oi1-f170.google.com ([209.85.167.170]) by mail2-smtp-roc.national.inria.fr with ESMTP/TLS/AES128-GCM-SHA256; 29 Nov 2018 10:08:21 +0100 Received: by mail-oi1-f170.google.com with SMTP id j21so994921oii.8 for ; Thu, 29 Nov 2018 01:08:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=XoRW+gSw7gFgJbbPCNOjkW4BX+p/AvbdhR/bR7mLW7U=; b=i5jBhczi8cnSHUn047gyJMPSJOzb2djwkBUHRbb69gmpEx9bFXYaMqyDECwVFWI+bs 9Nxrk+uF2AQdh4zl03xf/p88h420JpMnt6xQGAr9AcITVETiSaLf/33h6g/V5rDhrPpM YbxV0UVxLrW1ROEiZVIEALMpqEQ13Kzksc2BlR0jGcig8kpUZ5U3CZ0SvF0YYsiYyh23 9mS8udt1dIEeeGKKjAB1SOctHnIFtwADILi7cWzRBVK8rLY1wG7uvAB7kNcxynvWto1G ly3vKIR5Inug3nkGOd362TBGVo6ZhgdR9zpgMATZgCWpGP4f43FuKNvAbcYJuDkXBsCd qlIQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=XoRW+gSw7gFgJbbPCNOjkW4BX+p/AvbdhR/bR7mLW7U=; b=OgxoBlOwyKTAssSiWzzCUZLHaNP7dyDtP7KWlUfP8cXc8JcYJPp9jGYSyz/6ysuM0E RRyEkWS9bBZUs+RBPu/i7v78RR/RV7Sr5/WcdmRtY2fryNo5R7Mfwky0MPoEWzbuJdR3 kKJER2zhfz5xy910nXMGLhgDU+yInHu4+TZnZjNmL7VJixEHSS3lpyipp6YP6qyS/W16 1uS+ki5biQW7bA0Wprc7IsMAwLA4FFZgdtgEsmrgfCkUyuUsFLA0y5kOJjnlvkcyz1dn lQvYPS4le49KCdabYejBAcCSSNBjE4/g8sZLu3uEdQUzRLRdtG7YJSuKIGYGYgwxLK86 yHRg== X-Gm-Message-State: AA+aEWYBCN/LPBfxgYqMaR1QU8fbuiSZhULA84lDRu0M1gQPB6yEcBGh CK/hZUyCrszjZ289xCvu/Xl4J2yRK8HjOvpw1NA= X-Google-Smtp-Source: AFSGD/XfhVRTP/xznUKo3FKP1uoskvEpxTVFKXZ8UP4WqdCF2hqb2sdoL5yx/BkMAI0pcTwmZt91aNTcAAhes/L1vrc= X-Received: by 2002:aca:4506:: with SMTP id s6mr359508oia.115.1543482499584; Thu, 29 Nov 2018 01:08:19 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: =?UTF-8?B?RnLDqWTDqXJpYyBCb3Vy?= Date: Thu, 29 Nov 2018 10:08:08 +0100 Message-ID: To: danny.gratzer@gmail.com Cc: yrg@irif.fr, caml-list@inria.fr Content-Type: multipart/alternative; boundary="0000000000001ad91a057bca06e9" X-Validation-by: defree@gmail.com Subject: Re: [Caml-list] include two module implementations sharing the same type definitions Reply-To: =?UTF-8?B?RnLDqWTDqXJpYyBCb3Vy?= X-Loop: caml-list@inria.fr X-Sequence: 17192 Errors-to: caml-list-owner@inria.fr Precedence: list Precedence: bulk Sender: caml-list-request@inria.fr X-no-archive: yes List-Id: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: --0000000000001ad91a057bca06e9 Content-Type: text/plain; charset="UTF-8" 1) In all generality, include (BI : module type of struct include BI end with type t := t) will work if you haven't defined `module type B` or if `BI` exports other types (say u) and you need to preserve equalities (BI.u = B.u). 2) Changes have been made to the module system in the trunk version of OCaml. The original code should be accepted without any change. On Thu, Nov 29, 2018 at 10:03 AM Danny Gratzer wrote: > Hello, > > Perhaps I'm overlooking something but replacing > > include BI > > with > > include (BI : B with type t := t) > > seems like a reasonable fix to me. > > Danny > -- Caml-list mailing list. Subscription management and archives: https://sympa.inria.fr/sympa/arc/caml-list https://inbox.ocaml.org/caml-list Forum: https://discuss.ocaml.org/ Bug reports: http://caml.inria.fr/bin/caml-bugs --0000000000001ad91a057bca06e9 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
1) In all generality,

=C2=A0 include (BI : mod= ule type of struct include BI end with type t :=3D t)

will wor= k if you haven't defined `module type B` or if `BI` exports other types= (say u) and you need to preserve equalities (BI.u =3D B.u).
<= br>
2) Changes have been made to the module system in the trunk v= ersion of OCaml. The original code should be accepted without any change.
On Thu, Nov 29= , 2018 at 10:03 AM Danny Gratzer <danny.gratzer@gmail.com> wrote:
Hello,

= Perhaps I'm overlooking something but replacing

=C2= =A0 =C2=A0 include BI

with

=C2=A0 =C2=A0=C2=A0include (BI : B with type t :=3D t)

seems like a reasonable fix to me.

Danny
--0000000000001ad91a057bca06e9--