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 085DC7EF5E for ; Fri, 15 Jul 2016 20:09:25 +0200 (CEST) IronPort-PHdr: 9a23:Gu97AxB5yl3+KDapTGAMUyQJP3N1i/DPJgcQr6AfoPdwSP78p8bcNUDSrc9gkEXOFd2CrakV06yK7+u5ADBIyK3CmUhKSIZLWR4BhJdetC0bK+nBN3fGKuX3ZTcxBsVIWQwt1Xi6NU9IBJS2PAWK8TWM5DIfUi/yKRBybrysXNWD14Lri6vrosGbSj4LrQL1Wal1IhSyoFeZnegtqqwmFJwMzADUqGBDYeVcyDAgD1uSmxHh+pX4p8Y7oGx48sgs/M9YUKj8Y79wDfkBVGxnYCgJ45jasgXKSEOl72EaVXRexgtPHwHA5hjgWJDgmiT/v+t5niKdOJulY6ozXGGA4r1mTQ6guS4DMzkhuDXGg8h0i7pzrxeophg5yInRNtLGfMFid7/QKItJDVFKWdxcAmkYWtux Authentication-Results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=yallop@gmail.com; spf=Pass smtp.mailfrom=yallop@gmail.com; spf=None smtp.helo=postmaster@mail-qk0-f169.google.com Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of yallop@gmail.com) identity=pra; client-ip=209.85.220.169; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="yallop@gmail.com"; x-sender="yallop@gmail.com"; x-conformance=sidf_compatible Received-SPF: Pass (mail2-smtp-roc.national.inria.fr: domain of yallop@gmail.com designates 209.85.220.169 as permitted sender) identity=mailfrom; client-ip=209.85.220.169; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="yallop@gmail.com"; x-sender="yallop@gmail.com"; x-conformance=sidf_compatible; x-record-type="v=spf1" Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of postmaster@mail-qk0-f169.google.com) identity=helo; client-ip=209.85.220.169; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="yallop@gmail.com"; x-sender="postmaster@mail-qk0-f169.google.com"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0CrAABYJolXhqncVdFchBR8BrppGoYAAoEoBzwQAQEBAQEBAQERAQEBCAsLCSEvgjIEARIBghMBBRIRHQEbHQEDDAYFCw0CAiYCAiEBAREBBQEcBhMih3MBAxejaoExPjGLO4FqgloFhGkKGScNUoNIAQEBBwEBAQEbAgYQcYl2gkOBWoMkgloFmG00jESCF4FVjWCIIoY6Eh6BDzWCO4FYOzKFEIFDAQEB X-IPAS-Result: A0CrAABYJolXhqncVdFchBR8BrppGoYAAoEoBzwQAQEBAQEBAQERAQEBCAsLCSEvgjIEARIBghMBBRIRHQEbHQEDDAYFCw0CAiYCAiEBAREBBQEcBhMih3MBAxejaoExPjGLO4FqgloFhGkKGScNUoNIAQEBBwEBAQEbAgYQcYl2gkOBWoMkgloFmG00jESCF4FVjWCIIoY6Eh6BDzWCO4FYOzKFEIFDAQEB X-IronPort-AV: E=Sophos;i="5.28,369,1464645600"; d="scan'208";a="226827303" Received: from mail-qk0-f169.google.com ([209.85.220.169]) by mail2-smtp-roc.national.inria.fr with ESMTP/TLS/AES128-GCM-SHA256; 15 Jul 2016 20:09:24 +0200 Received: by mail-qk0-f169.google.com with SMTP id s63so108593181qkb.2 for ; Fri, 15 Jul 2016 11:09:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=r6LunuPobKNtc5cP5zjZX6EsLfijpjA+6NbL5rq83k8=; b=OOrGnQACnPKEswS8FbnpaeFoUOaBFPL1s5q4ta3VDFYBkE1T6Kdha7jgGosLmXFv8B vBDwGxu1VZono6gI1wlR8V3pZJGCp0fFXnLTsq0s/ApARteAzc7TRyIwEbt0/LS2wbPV 6yGyDLsZek825Wlb7BqaDLI3EeErLKXrWhoy00RiaM3OkaSaf3YJeSA8x99OPhvOgJJC xHFRAGeDBmaKDQit6/6NOiABdSxQWw+WSg5ml/c0TZMHJiciaGA/T7jROp5hAeYFyAWm /niOd3wiXQJxGYpKe5JME06X+cPkBNhFYb8EBdFSbqRyU+W2Q+gqbGpFtyCOoxj+o0Wf GVOg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=r6LunuPobKNtc5cP5zjZX6EsLfijpjA+6NbL5rq83k8=; b=T7GPkIJqE1bCLZchTb15eoJCbpguMwgEB3O4YWghKpE4wC38PRcmINcmhLvASooJ0o Y3q1aFBJAQbd0CtmeuONYLkY/qx4aWcLGzmrcBvJF1uWDe1vI56oM0XY/ohbvajxvtyG hShSwMGsOx92iw7z8iup15rERZ18qllev2Nfjx1bpaGaRig7LuLDpUOvIgvycnYZ50fe QW4AJMnwm9EzKdc7vFcigHn4fd8j95ewBC29P4ESzMDwBYWNY4YkhElY/ml12UwDZzzv dqnfxpYwuu2+LydDDOTH65HBDZt8lrKNoOEgXGIHPWa3/cpAah/V/W+rsw7kZ482+jaQ jo9g== X-Gm-Message-State: ALyK8tLD39xo1nb0+bQ2jsycs4Z7OHJ+B8809S3LW/Rp4ehYFPSNwaBK+5PuFco4F7nLvDMkI69tUUEsmn/ykw== X-Received: by 10.55.158.18 with SMTP id h18mr25741469qke.161.1468606163104; Fri, 15 Jul 2016 11:09:23 -0700 (PDT) MIME-Version: 1.0 Received: by 10.55.115.2 with HTTP; Fri, 15 Jul 2016 11:09:22 -0700 (PDT) In-Reply-To: References: <001701d1daa2$30f7ac30$92e70490$@metastack.com> <1468179914.25014.89.camel@e130.lan.sumadev.de> <20160714090300.GB21053@frosties> <002601d1de7e$9f5776d0$de066470$@metastack.com> <20160715161308.GB30333@topoi.pooq.com> From: Jeremy Yallop Date: Fri, 15 Jul 2016 19:09:22 +0100 Message-ID: To: Yotam Barnoy Cc: Hendrik Boom , Ocaml Mailing List Content-Type: text/plain; charset=UTF-8 Subject: Re: [Caml-list] Warnings opening modules (was: why is building ocaml hard?) On 15 July 2016 at 17:57, Yotam Barnoy wrote: > In haskell, I can just say 'import A (foo, bar, baz, t)' to limit > exactly what I want to import. This is because haskell has a > half-baked module system that isn't nearly as powerful as OCaml's, > which allows it to create syntax that doesn't need to go anywhere but > at the toplevel. > > We need this functionality in OCaml, but the closest thing is to say > 'include struct let foo = A.foo let bar = A.bar let baz = A.baz type t > = A.t end' This can be written more succinctly: let foo, bar, baz = A.(foo, bar, baz) type t = A.t