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 17D237EF5E for ; Sat, 16 Jul 2016 09:40:48 +0200 (CEST) IronPort-PHdr: 9a23:UTcTchdQt/u4gsK5XSWH6t83lGMj4u6mDksu8pMizoh2WeGdxc6yZB7h7PlgxGXEQZ/co6odzbGH6+a8BCdZus7JmUtBWaQEbwUCh8QSkl5oK+++Imq/EsTXaTcnFt9JTl5v8iLzG0FUHMHjew+a+SXqvnYsExnyfTB4Ov7yUtaLyZ/mj6buptaKOF0ArQH+SIs6FA+xowTVu5teqqpZAYF19CH0pGBVcf9d32JiKAHbtR/94sCt4MwrqHwI6LoJvvRNWqTifqk+UacQTHF/azh0t4XXskzjQA2D/HofGk8RlR8AVwjI6h3gX5TZrizises7wC6dJIv9SrViChq46KI+AifllDsKLXYQtinqkM99gKtf6lr1vxVi2Y3ZbIiRHPV7d6LZO9gdQDwSDY5qSyVdD9bkPMM0BO0bMLMd9tGlqg== Authentication-Results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=paurkedal@gmail.com; spf=Pass smtp.mailfrom=paurkedal@gmail.com; spf=None smtp.helo=postmaster@mail-oi0-f54.google.com Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of paurkedal@gmail.com) identity=pra; client-ip=209.85.218.54; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="paurkedal@gmail.com"; x-sender="paurkedal@gmail.com"; x-conformance=sidf_compatible Received-SPF: Pass (mail3-smtp-sop.national.inria.fr: domain of paurkedal@gmail.com designates 209.85.218.54 as permitted sender) identity=mailfrom; client-ip=209.85.218.54; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="paurkedal@gmail.com"; x-sender="paurkedal@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-oi0-f54.google.com) identity=helo; client-ip=209.85.218.54; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="paurkedal@gmail.com"; x-sender="postmaster@mail-oi0-f54.google.com"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0D/AAAz5IlXhjbaVdFdhREGrTeLO4F5hhoCgSIHORMBAQEBAQEBAREBAQEICwsJIS+CMgQBEgGCEwEFEhEdARsdAQMMBgULDQICJgICIgERAQUBHAYTIodzAQMXoUWBMT4xizuBaoJaBYRPChknDVKDTAEBAQEGAQEBARsCBhBxiXaHQYJaAQSZJAGOXo82jl8SHoEPIAGCT4FZOjKHYwEBAQ X-IPAS-Result: A0D/AAAz5IlXhjbaVdFdhREGrTeLO4F5hhoCgSIHORMBAQEBAQEBAREBAQEICwsJIS+CMgQBEgGCEwEFEhEdARsdAQMMBgULDQICJgICIgERAQUBHAYTIodzAQMXoUWBMT4xizuBaoJaBYRPChknDVKDTAEBAQEGAQEBARsCBhBxiXaHQYJaAQSZJAGOXo82jl8SHoEPIAGCT4FZOjKHYwEBAQ X-IronPort-AV: E=Sophos;i="5.28,372,1464645600"; d="scan'208";a="184966364" Received: from mail-oi0-f54.google.com ([209.85.218.54]) by mail3-smtp-sop.national.inria.fr with ESMTP/TLS/AES128-GCM-SHA256; 16 Jul 2016 09:40:46 +0200 Received: by mail-oi0-f54.google.com with SMTP id j185so186708905oih.0 for ; Sat, 16 Jul 2016 00:40:47 -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=TVW3t1DpClb9qyI3XKTPICudJHSAKmOABq9fKO9oOqI=; b=aMCE+xvc1PXON2AbrDdb2XgGj4o6qhNhXBGWy1Tr04giek1jVHyZungV0tXYhRicSY pSABJ5awfVOPrz10dULonSzwYMhDLGPk3PR8F4JSxWPBO/C+Pl7L2pEjSokecOMgdQUz Od6pq4QB7zDEU9YGQy9qhg+xyZw/DXqN79YU9CzWhn4fcVIpPB3iPi4tce5b5nIyFgAw /xr3r2q2UmAr16lLi23c8zDs/J2p82TVFpLgt8MepgejjiTT2on9Xjv0qgKFtH5dpO63 TIAIcHRBTLRrM8aAFoL4AoHMhcSmEZiTQJKrKpQUDS5K7pCTequ2Jw9F+OoTSqhAWKDQ N2/g== 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=TVW3t1DpClb9qyI3XKTPICudJHSAKmOABq9fKO9oOqI=; b=D8YCzxsaDTPeHb4HNNE6A+r2z8FpiSyiJ7GIm9YQeK6HclzCFrgghXLdpILGpEm7eN AFZgavOjnTjuLpHy6C2rnlQX/grZNu5pHsW9TBDjjCa7ZSXxyaj6M86pxmyPtzw1KeSm oW8pqCY2KucthkEPyC9Yu9MtPLLa4k4QfZisky4c3QLZco/j7sCdaRgfpL57o2Q9a/2Q K0mNn9SFanvfMfhqWx2ow43RfxQCnhg7ZeUe+kkVoTKwV6IpUajOYC9Jm7gSZEjl8kfS sydSwKHALWPscheRopjWXhZVz+RLVVUPkiHn5i/XN6uXaKYdVRqqZxKGU7KSL2EwpD+a kD3g== X-Gm-Message-State: ALyK8tK8WvRPLzY7OSAVteXkOSb8HJpMgtAQGZ/t3W6tVcQxLwSIU4XHRxfdezDk0hmqaHKkdVB2Pg+BR2wkaA== X-Received: by 10.202.84.72 with SMTP id i69mr10866687oib.93.1468654845363; Sat, 16 Jul 2016 00:40:45 -0700 (PDT) MIME-Version: 1.0 Received: by 10.202.228.201 with HTTP; Sat, 16 Jul 2016 00:40:44 -0700 (PDT) In-Reply-To: <20160715161308.GB30333@topoi.pooq.com> 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: "Petter A. Urkedal" Date: Sat, 16 Jul 2016 09:40:44 +0200 Message-ID: To: Hendrik Boom Cc: caml users 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 18:13, Hendrik Boom wrote: > And that's a real problem -- that fact that openning a module can fill > the namespace with lots of stray identifiers, which the user does not > control. Apart from the selective opens discussed, it would be good to tell apart which modules are meant to be open and which are intrusive without looking through them. Most importantly the writer of the library should be clear about it from the start when designing a module, then the names will be consistent with the choice, and users should be able to decide without evaluating the whole interface. A warning when opening an invasive module in a global scope could help, as well. One could maybe decide a module to be invasive from a few heuristics with fall-back to a declaration: - A module interface defining a single-letter identifier, most importantly a type "t" or a signature "S", is invasive. - A module interface overriding any operator (or identifier?) defined in Pervasives is invasive. - A module interface declaring itself `[@@@ocaml.invasive]` is invasive. Conversely the user may silence the warning with `open M [@@ocaml.invasive]`.