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 15CA97EE49 for ; Mon, 16 Sep 2013 23:09:48 +0200 (CEST) Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of martindemello@gmail.com) identity=pra; client-ip=209.85.128.177; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="martindemello@gmail.com"; x-sender="martindemello@gmail.com"; x-conformance=sidf_compatible Received-SPF: Pass (mail2-smtp-roc.national.inria.fr: domain of martindemello@gmail.com designates 209.85.128.177 as permitted sender) identity=mailfrom; client-ip=209.85.128.177; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="martindemello@gmail.com"; x-sender="martindemello@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-ve0-f177.google.com) identity=helo; client-ip=209.85.128.177; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="martindemello@gmail.com"; x-sender="postmaster@mail-ve0-f177.google.com"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApcBAMVyN1LRVYCxm2dsb2JhbABagz9SwQOBGggWDgEBAQEBBgsLCRQogiUBAQVAARsdAQMMBgULDS4iAREBBQEcBhMIh2gBAw8MnDSMUYMHhC0KGScNFU+IUQEBBAyPZweEHgOJOI5DkAsYKYRsHA X-IPAS-Result: ApcBAMVyN1LRVYCxm2dsb2JhbABagz9SwQOBGggWDgEBAQEBBgsLCRQogiUBAQVAARsdAQMMBgULDS4iAREBBQEcBhMIh2gBAw8MnDSMUYMHhC0KGScNFU+IUQEBBAyPZweEHgOJOI5DkAsYKYRsHA X-IronPort-AV: E=Sophos;i="4.90,918,1371074400"; d="scan'208";a="33118402" Received: from mail-ve0-f177.google.com ([209.85.128.177]) by mail2-smtp-roc.national.inria.fr with ESMTP/TLS/RC4-SHA; 16 Sep 2013 23:09:46 +0200 Received: by mail-ve0-f177.google.com with SMTP id db12so3410703veb.22 for ; Mon, 16 Sep 2013 14:09:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=vKZVtruD3KRykJlge6Qf2USMNWGShcNgaThtOhnzNeg=; b=fHz6Xfl88mLGmULwHP+zKFhG/NybuZabFhqoACLXYspgqt2vZ5OJoE+sulUIzZgOe+ HGQgBBof/ZenOp3mWwXcNHeVKNHIAW9SRq5ok3lzGDgUBsvZETAisq4D90c3Z4wJpv4y +Z16i1LK1cb1YoHDXMZtV0CkvcjvqwxR/j9FRKWqXzVWN7QFjJT6S2L3juL9Wg9FUxfB gWcUaJgPJwkqwVlhgCDhMppyg0o/+AM5gcxpZqLlHlB3MZxf/0dVXzsVMAKkhwh9c+V4 0RG2kk74g0MnzqeoHxKeL1RrmTjpv2OHIBi35cWCOcQN4ghDO4nUQEuEBLEJ3u6PVn0y GbSQ== MIME-Version: 1.0 X-Received: by 10.220.43.19 with SMTP id u19mr28677426vce.3.1379365786463; Mon, 16 Sep 2013 14:09:46 -0700 (PDT) Received: by 10.220.162.197 with HTTP; Mon, 16 Sep 2013 14:09:46 -0700 (PDT) In-Reply-To: <20130916074218.GB9309@frosties> References: <87txhlbdna.fsf@golf.niidar.ru> <20130916074218.GB9309@frosties> Date: Mon, 16 Sep 2013 14:09:46 -0700 Message-ID: From: Martin DeMello To: Goswin von Brederlow Cc: "caml-list@inria.fr" Content-Type: text/plain; charset=ISO-8859-1 Subject: Re: [Caml-list] "subclassing" a char map On Mon, Sep 16, 2013 at 12:42 AM, Goswin von Brederlow wrote: > > I recommend using a private type (in the module type) over an abstract > one: > type t = private char > > That way a type t instance can only be constructed in the module, > where you check the upper case, but can be used in place of a char > otherwise. No need to manually project it everywhere. Thanks, didn't know about that feature at all. After a bit of googling I found https://ocaml.janestreet.com/?q=node/77, which is a nice write up on the subject. martin