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 5F1CF7F75C for ; Wed, 27 Aug 2014 17:01:23 +0200 (CEST) Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of yotambarnoy@gmail.com) identity=pra; client-ip=209.85.216.48; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="yotambarnoy@gmail.com"; x-sender="yotambarnoy@gmail.com"; x-conformance=sidf_compatible Received-SPF: Pass (mail2-smtp-roc.national.inria.fr: domain of yotambarnoy@gmail.com designates 209.85.216.48 as permitted sender) identity=mailfrom; client-ip=209.85.216.48; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="yotambarnoy@gmail.com"; x-sender="yotambarnoy@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-qa0-f48.google.com) identity=helo; client-ip=209.85.216.48; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="yotambarnoy@gmail.com"; x-sender="postmaster@mail-qa0-f48.google.com"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AkcBAAXy/VPRVdgwlWdsb2JhbABbDoQpBIJ40HcBgQgIFhABAQEBBw0JCRIrg3oKAQEDARIRHQEbHQEDDAYFAwEHAzQCAiIBEQEFARwGEyKICwEDCQiePmuLK4FygxCJKgoZJw1mhFgRAQUOjz4HgnmBUwEEnFiTJRgphE1eIS+CTwEBAQ X-IPAS-Result: AkcBAAXy/VPRVdgwlWdsb2JhbABbDoQpBIJ40HcBgQgIFhABAQEBBw0JCRIrg3oKAQEDARIRHQEbHQEDDAYFAwEHAzQCAiIBEQEFARwGEyKICwEDCQiePmuLK4FygxCJKgoZJw1mhFgRAQUOjz4HgnmBUwEEnFiTJRgphE1eIS+CTwEBAQ X-IronPort-AV: E=Sophos;i="5.04,411,1406584800"; d="scan'208";a="91712000" Received: from mail-qa0-f48.google.com ([209.85.216.48]) by mail2-smtp-roc.national.inria.fr with ESMTP/TLS/RC4-SHA; 27 Aug 2014 17:01:22 +0200 Received: by mail-qa0-f48.google.com with SMTP id m5so331003qaj.21 for ; Wed, 27 Aug 2014 08:01:21 -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:content-type; bh=UPy1Zk1nYXzMunFs4Ctyy8P+pKH7GvOt0LjlTTrrK/s=; b=T6PL7p0gOw9lpJWacTMyYL/qJeLNa6KYyrBOKnk5AGAXl0QV1IoSVAg5XUWvNCtZBm zwA12099B0R5idSA880RtMROhclcKOQSZplghlLhjoV9lhLedRp8SLMIKc/fLKQS0omO AL8by9mNTe/mW/Q5J6r48NwoilC3cp4I3dTaU7D3M5bI/hqDFzIX18Ked8voWRkX+hb7 0N8zsqU8AxbX51T+Z3IJCGc6HueUg9f5UKpdJQDD6W6WmILS0tbu4pBhbPKbQ8d7agst 7+FH9QkVSu+oaRCqHK4qn3m8XuwH+hyxfiJnjFVhVwZxX/r1GEBU32rVbOOaaKwdZ0ED rlFQ== X-Received: by 10.224.129.201 with SMTP id p9mr59309748qas.75.1409151681684; Wed, 27 Aug 2014 08:01:21 -0700 (PDT) MIME-Version: 1.0 Received: by 10.224.210.4 with HTTP; Wed, 27 Aug 2014 08:01:00 -0700 (PDT) In-Reply-To: References: From: Yotam Barnoy Date: Wed, 27 Aug 2014 11:01:00 -0400 Message-ID: To: Leo White Cc: Ocaml Mailing List Content-Type: multipart/alternative; boundary=001a11c2cc0a6bed0b05019db14a Subject: Re: [Caml-list] Problem extending the Standard library --001a11c2cc0a6bed0b05019db14a Content-Type: text/plain; charset=UTF-8 Good point -- wasn't looking at the map.mli file. Thanks. Yotam On Wed, Aug 27, 2014 at 10:59 AM, Leo White wrote: > > > > Can anyone tell me why the compiler complained about Empty being an > unbound constructor when it's declared in Map.Make, > > which I include? > > > > I don't think `Empty` is declared in the interface of Map.Make, it may > be declared in the implementation but it is not available in the > interface. Making it available in the interface would break abstraction: > it would force `Map.Make` to keep using that particular implementation. > > Regards, > > Leo > --001a11c2cc0a6bed0b05019db14a Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Good point -- wasn't looking at the map.mli file. Than= ks.

Yotam


=
On Wed, Aug 27, 2014 at 10:59 AM, Leo White <lpw2= 5@cam.ac.uk> wrote:
>
> Can anyone tell me why the compiler complained about Empty being an un= bound constructor when it's declared in Map.Make,
> which I include?
>

I don't think `Empty` is declared in the interface of Map.Make, i= t may
be declared in the implementation but it is not available in the
interface. Making it available in the interface would break abstraction:
it would force `Map.Make` to keep using that particular implementation.

Regards,

Leo

--001a11c2cc0a6bed0b05019db14a--