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 DC78B7FF75 for ; Wed, 3 Aug 2016 22:53:51 +0200 (CEST) IronPort-PHdr: 9a23:QFwaihZ5q5z40hZhk/MXrLj/LSx+4OfEezUN459isYplN5qZpcWzbnLW6fgltlLVR4KTs6sC0LuO9fC4EjVdut6oizMrSNR0TRgLiMEbzUQLIfWuLgnFFsPsdDEwB89YVVVorDmROElRH9viNRWJ+iXhpQAbFhi3DwdpPOO9QteU1JXvkbDqsMSOOE1hv3mUWftKNhK4rAHc5IE9oLBJDeIP8CbPuWZCYO9MxGlldhq5lhf44dqsrtY4q3wD89pozcNLUL37cqIkVvQYSW1+ayFm0vb2rgHORhej4X4VU2Ne0kYZQluN0BavFLj4rS/7qvh0nGGmPcrzRKt+EWC+76BuQQSuhy4YMz8l4mj/kcVoyqlcpUTyiQZ4xtv3aYKcOOc2KqDUftoWWCxBV8hYUSVHC6uzaoIOC6wKOuMO/Nq1nEcHsRbrXVrkP+jo0DIdwyKv0A== Authentication-Results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=kakadu.hafanana@gmail.com; spf=Pass smtp.mailfrom=kakadu.hafanana@gmail.com; spf=None smtp.helo=postmaster@mail-ua0-f176.google.com Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of kakadu.hafanana@gmail.com) identity=pra; client-ip=209.85.217.176; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="kakadu.hafanana@gmail.com"; x-sender="kakadu.hafanana@gmail.com"; x-conformance=sidf_compatible Received-SPF: Pass (mail3-smtp-sop.national.inria.fr: domain of kakadu.hafanana@gmail.com designates 209.85.217.176 as permitted sender) identity=mailfrom; client-ip=209.85.217.176; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="kakadu.hafanana@gmail.com"; x-sender="kakadu.hafanana@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-ua0-f176.google.com) identity=helo; client-ip=209.85.217.176; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="kakadu.hafanana@gmail.com"; x-sender="postmaster@mail-ua0-f176.google.com"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0COAABHWaJXhrDZVdFdhBt8B6dikUqBfSSFeQKBRgc6EgEBAQEBAQEBEQEBAQgLCwkZL4IyBAETghQBAQUSEQQZARsSCwEDCgIGBQsGAwECAQICCRYHAgIbBgEBEQEFAQoBCQgGEwgKEId0AQMXDqFogTI+MYs7gWqCWgWGRgoZJwMKVINEAQEBAQEBBAEBAQEBAQEYAgYFC3GJdoJDgU8RAYMdgloFhloMiCKJeDSCKoNuhjKCNYI5fIdkhCeIK4QFgjgSHoEPJQaCOxELF4E4OTKHJIE2AQEB X-IPAS-Result: A0COAABHWaJXhrDZVdFdhBt8B6dikUqBfSSFeQKBRgc6EgEBAQEBAQEBEQEBAQgLCwkZL4IyBAETghQBAQUSEQQZARsSCwEDCgIGBQsGAwECAQICCRYHAgIbBgEBEQEFAQoBCQgGEwgKEId0AQMXDqFogTI+MYs7gWqCWgWGRgoZJwMKVINEAQEBAQEBBAEBAQEBAQEYAgYFC3GJdoJDgU8RAYMdgloFhloMiCKJeDSCKoNuhjKCNYI5fIdkhCeIK4QFgjgSHoEPJQaCOxELF4E4OTKHJIE2AQEB X-IronPort-AV: E=Sophos;i="5.28,467,1464645600"; d="scan'208";a="186806204" Received: from mail-ua0-f176.google.com ([209.85.217.176]) by mail3-smtp-sop.national.inria.fr with ESMTP/TLS/AES128-GCM-SHA256; 03 Aug 2016 22:53:50 +0200 Received: by mail-ua0-f176.google.com with SMTP id 35so161623170uap.1 for ; Wed, 03 Aug 2016 13:53:50 -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=wvJy6hBXLYLirwm4/ItUZgXLMRIEtZ3U1IELTeC4a0I=; b=EurlnfjqT6DJv0OR1cCYSExLIpntZz0zANokAXSuW8wwlIHOE/ceuk+6WYB9u7ibTE +9eXvZPzvt4hmfOVNDq2F+T89YZL3DtMZTPPp5NhFRzIUsUvjTueunYiYzz+pU7xhzE5 uwC94tVN/H7iAvGjpyA5oV2WAUZCqyONTpksszsxq7U+rfSkH+PQTRKJevfk/t7mtXBH xSKhr7m/9v0xEPxYj3Ji53etKXaztb9R1KaIAj+QO/vpweekX84YjmTaprfSPrRQk9RG I6Z7jEULugX9QZ+eZNmGqZESIPRZ/x1CnP019J4qoeE62sONjJAyA7LUjKEUAXfVXJHJ kWCQ== 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=wvJy6hBXLYLirwm4/ItUZgXLMRIEtZ3U1IELTeC4a0I=; b=GofqcaABjzkiizsHshTccYtYpukDOQCzpuxoxZgTiW9pgUnglrQRru8LXHPznemO7p WN8v4UjYiijRdXMYKPe1IwsRg8s4N23RnvjxD4dzEqQRnD1NzChwm4MOJykjpOAQF4U/ aRCF49n7Ko+4gXVDOopW87ta40EsfZArBXZcJLVcDT5SctnvmSo4h2ZFdAJoQ2aHTibG aKGUECP2O7pSA/+izTxXEbC/lyrP6CwdatwvSh2q/btw5uy1PaYAurP/eAVCm/fof6wy yRDmR5s7JY/N3NLj0scB0gkQTmd8BVjMljPT6AAUOOmcDjChgNrCsLU8ehmK1ajRyobM ATrw== X-Gm-Message-State: AEkoouvn7fNPu56pLHIbIA2uFYWHtbYhEywawBxhWPmqRENtIE7UGIQ6bQwQy4B9Ub6yG/QTnl+k0oN403YNYQ== X-Received: by 10.176.1.8 with SMTP id 8mr35339145uak.93.1470257629483; Wed, 03 Aug 2016 13:53:49 -0700 (PDT) MIME-Version: 1.0 Received: by 10.103.109.135 with HTTP; Wed, 3 Aug 2016 13:53:29 -0700 (PDT) In-Reply-To: <032632D8-A18E-4F9D-846B-F18860440120@sap.com> References: <032632D8-A18E-4F9D-846B-F18860440120@sap.com> From: Kakadu Date: Wed, 3 Aug 2016 23:53:29 +0300 Message-ID: To: "Gawlitza, Thomas" Cc: Caml List Content-Type: text/plain; charset=UTF-8 Subject: Re: [Caml-list] Implicit question about searching for implicit module definition in the functor argument. Oh, thanks. I did know that it is something obvious. Maybe we will need a warnings for this...... On Wed, Aug 3, 2016 at 8:18 AM, Gawlitza, Thomas wrote: > Hi! > > > > Your question inspired me to have a look at the modular implicits. I really > like them. It seems that the argument of the implicit functor Show_logic > also needs to be implicit, i.e., in curly braces. At least this worked for > me. > > > > Thomas > > > > module type SHOW = sig > > type t > > val show : t -> string > > end > > > > let show {S : SHOW} x = S.show x;; > > > > implicit module Show_int : (SHOW with type t = int) = struct > > type t = int > > let show = string_of_int > > end > > > > module type CORE = sig > > type 'a logic > > > > implicit module Show_logic {X: SHOW} : (SHOW with type t = X.t logic) > > end > > > > module Make(MK: CORE) = struct > > open MK > > (* open implicit MK (* doesn't help *) *) > > > > let foo (x: int logic) = > > let s = show x in (* Error: No instance found for implicit S. *) > > s > > end > > > > > > --- > > > > Dr. rer. nat. Thomas Martin Gawlitza, Diplom-Informatiker > > Development Architect > > Technology Office > > office location: Potsdam (DE), POT04, A2.01, SAP Innovation Center, > Konrad-Zuse-Ring 10, 14469 Potsdam > > email: Thomas.Gawlitza@sap.com > > phone: +49 331 9799 5408 > > mobile: +49 151 168 10 726 > > > > From: on behalf of Kakadu > > Reply-To: Kakadu > Date: Wednesday 3 August 2016 at 01:17 > To: Caml List > Subject: [Caml-list] Implicit question about searching for implicit module > definition in the functor argument. > > > > Hey, hackers. > > > > I'm missing something obvious. Any fresh eyes around? > > > > module type SHOW = sig > > type t > > val show : t -> string > > end > > > > let show {S : SHOW} x = S.show x;; > > > > implicit module Show_int : (SHOW with type t = int) = struct > > type t = int > > let show = string_of_int > > end > > > > module type CORE = sig > > type 'a logic > > > > implicit module Show_logic(X: SHOW) : (SHOW with type t = X.t logic) > > end > > > > module Make(MK: CORE) = struct > > open MK > > open implicit MK (* doesn't help *) > > > > let foo (x: int logic) = > > let s = show x in (* Error: No instance found for implicit S. *) > > s > > end > > > > > > Kind regards, > > Kakadu > > > > -- > > Caml-list mailing list. Subscription management and archives: > > https://sympa.inria.fr/sympa/arc/caml-list > > Beginner's list: http://groups.yahoo.com/group/ocaml_beginners > > Bug reports: http://caml.inria.fr/bin/caml-bugs > >