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 mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by sympa.inria.fr (Postfix) with ESMTPS id 76664801F6 for ; Tue, 12 Sep 2017 22:00:33 +0200 (CEST) Authentication-Results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=stecksoft@gmail.com; spf=Pass smtp.mailfrom=stecksoft@gmail.com; spf=None smtp.helo=postmaster@mail-pg0-f48.google.com Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of stecksoft@gmail.com) identity=pra; client-ip=74.125.83.48; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="stecksoft@gmail.com"; x-sender="stecksoft@gmail.com"; x-conformance=sidf_compatible Received-SPF: Pass (mail3-smtp-sop.national.inria.fr: domain of stecksoft@gmail.com designates 74.125.83.48 as permitted sender) identity=mailfrom; client-ip=74.125.83.48; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="stecksoft@gmail.com"; x-sender="stecksoft@gmail.com"; x-conformance=sidf_compatible; x-record-type="v=spf1" Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of postmaster@mail-pg0-f48.google.com) identity=helo; client-ip=74.125.83.48; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="stecksoft@gmail.com"; x-sender="postmaster@mail-pg0-f48.google.com"; x-conformance=sidf_compatible IronPort-PHdr: =?us-ascii?q?9a23=3A7JvBaxROXDO0D0fxq0TqkGf4sdpsv+yvbD5Q0YIu?= =?us-ascii?q?jvd0So/mwa67YhaN2/xhgRfzUJnB7Loc0qyN7PCmBDRIyK3CmU5BWaQEbwUCh8?= =?us-ascii?q?QSkl5oK+++Imq/EsTXaTcnFt9JTl5v8iLzG0FUHMHjew+a+SXqvnZBUin4YAF8?= =?us-ascii?q?I+CwHo/Jk+y20fqz8tvdeVZmnj24NPlKJQiy5SyX/vIKjIBhLqsrgFOduWdFcO?= =?us-ascii?q?d+3n9lLlGImBjgoMy3+cgwoGxrp/s9+psYAu3BdKMiQOkAAQ=3D=3D?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0CgBABePLhZhjBTfUpcHQEXAQYBCwEXA?= =?us-ascii?q?QYBhHQnB4NwmkY7CQaBJphIiX0HQhUBAQEBAQEBAQEBARIBAQEICwsIKC+CMyK?= =?us-ascii?q?CbR0BOQMNBRAPAiYCJBIBBQGKTgMIDZw5g0VAjAuCJ4MKBYN+Jw2EHAIGEnyCH?= =?us-ascii?q?YICgQiFJIVygkeCYQEEoHQCgWuSZZJylRsUBR+BFTWBL3cVZAaDHoEKAQsBgmI?= =?us-ascii?q?kNooGAQEB?= X-IPAS-Result: =?us-ascii?q?A0CgBABePLhZhjBTfUpcHQEXAQYBCwEXAQYBhHQnB4NwmkY?= =?us-ascii?q?7CQaBJphIiX0HQhUBAQEBAQEBAQEBARIBAQEICwsIKC+CMyKCbR0BOQMNBRAPA?= =?us-ascii?q?iYCJBIBBQGKTgMIDZw5g0VAjAuCJ4MKBYN+Jw2EHAIGEnyCHYICgQiFJIVygke?= =?us-ascii?q?CYQEEoHQCgWuSZZJylRsUBR+BFTWBL3cVZAaDHoEKAQsBgmIkNooGAQEB?= X-IronPort-AV: E=Sophos;i="5.42,384,1500933600"; d="scan'208";a="237248727" Received: from mail-pg0-f48.google.com ([74.125.83.48]) by mail3-smtp-sop.national.inria.fr with ESMTP/TLS/AES128-GCM-SHA256; 12 Sep 2017 22:00:32 +0200 Received: by mail-pg0-f48.google.com with SMTP id j16so12927845pga.1 for ; Tue, 12 Sep 2017 13:00:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:sender:from:date:message-id:subject:to; bh=wlyqVIOheU7WBraje7/j88Oqg09h0xskLOiBXYM+CM4=; b=p4GqQ0gDAaGG8xOzXcp/0GIIYA22v9lACcar7SFWNnp6ODo9j9MrSKdwSo1S+k94a5 /mH/Ea/zYKlv6in5yY/YmQXl9I11L4l8cIhQZvdLqzZNH33nfQNsVqus2eOJJ2PHvwhD NVtdzb7wy4QZpqokz1XpM2UEpdR0xNkPzw9PabGX1sQ5l2dBYOWg5QsPdtlYFb0xb4Pe T1ZP1QvhThLUmRGNwyo2b+q4LAHrOZFKs7KTaZKz0m6JGAUfC4CZILWsrK8Qz/5Sxcyr uGn5i2uwfkm/nfA9dwi3lUFe2nJcqQ4o2rmYAOkFPMKjVYZAwwYgo4OfE6x7w3/9fAzH F/DA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:from:date:message-id:subject :to; bh=wlyqVIOheU7WBraje7/j88Oqg09h0xskLOiBXYM+CM4=; b=FhAWaPAIwekisw/v9eOs+Dy9zqjsamhppouZwII/2T8nDYQhY8VvziMCcGm0EM06U7 DWp6EnU1/l+PKs+H2JOY23QU8Nu9v9jcGOyxTP4OHSmC6lDPuuAAVrOqMKM2xHS1qxmP wgMdGFhlbCw6v2LP0Ib2Pvr1WCfDF5t32WC/aW52veSmEsW92X+L2K3fZF8YU2Xibs5N tyPromc+kiYZ2ZUL0Y1jcmocJPz6LFFmRDqBPzK4klDuVIeVKBZIv2Z4nlPi9YjURuxK 1n/z8tKFmrQ6PmRdWu9Jcy9e/yZ719I2CcHoD5sqORZw28OpGD7a4L3WQcH5lHjY9pgr qQWQ== X-Gm-Message-State: AHPjjUgQU1694l3LoKVlgYPL4bNGJKUaudB58uqvliiXQPo+nR6K27Qp pzV0ZThmnBGDvzAjmRiKleU0wD6/sAvCAqfuBxM= X-Google-Smtp-Source: ADKCNb7Zv6JkA9OftJQUWwjhGArj6R1OmtbC++k2jMxFP97tfDOLhMZ40iVdGA1OB11/KfPCCxMH3Uqx1ge/s86pJVs= X-Received: by 10.99.186.74 with SMTP id l10mr16295744pgu.355.1505246430844; Tue, 12 Sep 2017 13:00:30 -0700 (PDT) MIME-Version: 1.0 Sender: stecksoft@gmail.com Received: by 10.100.148.100 with HTTP; Tue, 12 Sep 2017 13:00:00 -0700 (PDT) From: "Paul A. Steckler" Date: Tue, 12 Sep 2017 16:00:00 -0400 X-Google-Sender-Auth: NPLOfwrBh-UM9gaiHL91OCzHfYc Message-ID: To: caml-list@inria.fr Content-Type: text/plain; charset="UTF-8" Subject: [Caml-list] Default value in module I found myself wanting to define several modules that implement a module type, where all the implementations but one use the same value of an item in the type. Essentially, I wanted a default value in the module type, which I can override if needed. Maybe there's a way to do this already. If not, the type could look like: -- module type Foo = sig val ?x : int = 42 end -- and instances could be: -- module Bar1 : Foo = struct let x = 17 end module Bar2 : Foo = struct end -- Is this a reasonable idea? More precisely, I wanted to take an existing module type, add an item to it, and then edit just the instance with the non-default value. As it was, I had to edit all the instances. I could have used the class system to do something similar, but that would have required changing even more code. -- Paul