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 659F27FDD2 for ; Thu, 14 Jan 2016 12:14:07 +0100 (CET) IronPort-PHdr: 9a23:66KKJhNii5waHutETMMl6mtUPXoX/o7sNwtQ0KIMzox0KPn6rarrMEGX3/hxlliBBdydsKIazbqH+Pq4EUU7or+/81k6OKRWUBEEjchE1ycBO+WiTXPBEfjxciYhF95DXlI2t1uyMExSBdqsLwaK+i760zceF13FOBZvIaytQ8iJ35rxh7H5ocWbSj4LrQT+SIs6FA+xowTVu5teqqpZAYF19CH0pGBVcf9d32JiKAHbtR/94sCt4MwrqHwI6Lpyv/JHBK7zeqB9Sb1DEBwnNXo07Yvlr0rtVwyKs10dWWZeuBdUHwXf7R31U9+ltirhqvE73iiRPov8QKwoVC6j46hmYBDtgSYDcTU+9TeE2YRLkKtHrUf59FREyInObdTNOQ== Authentication-Results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=lists.nick.betteridge@gmail.com; spf=Pass smtp.mailfrom=lists.nick.betteridge@gmail.com; spf=None smtp.helo=postmaster@mail-wm0-f41.google.com Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of lists.nick.betteridge@gmail.com) identity=pra; client-ip=74.125.82.41; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="lists.nick.betteridge@gmail.com"; x-sender="lists.nick.betteridge@gmail.com"; x-conformance=sidf_compatible Received-SPF: Pass (mail3-smtp-sop.national.inria.fr: domain of lists.nick.betteridge@gmail.com designates 74.125.82.41 as permitted sender) identity=mailfrom; client-ip=74.125.82.41; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="lists.nick.betteridge@gmail.com"; x-sender="lists.nick.betteridge@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-wm0-f41.google.com) identity=helo; client-ip=74.125.82.41; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="lists.nick.betteridge@gmail.com"; x-sender="postmaster@mail-wm0-f41.google.com"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0C8AQAbgpdWmylSfUpehHmIW6hKilmBZIdMOhIBAQEBAQEBARABAQEBAQYLCwkhLoItgiARBBkBGxwCAxIQDwIFFgsCCwMCAQIBEREBBQEvCAEBHod2AQMSBJ9xggeBMT4xi0iBaoJ5h3AKGScNV4JmAQUKBHOKVIUjglGBSQWXFoEPjEyJHA6FV40NNYEXKQ6CU4FkcoYxAQEB X-IPAS-Result: A0C8AQAbgpdWmylSfUpehHmIW6hKilmBZIdMOhIBAQEBAQEBARABAQEBAQYLCwkhLoItgiARBBkBGxwCAxIQDwIFFgsCCwMCAQIBEREBBQEvCAEBHod2AQMSBJ9xggeBMT4xi0iBaoJ5h3AKGScNV4JmAQUKBHOKVIUjglGBSQWXFoEPjEyJHA6FV40NNYEXKQ6CU4FkcoYxAQEB X-IronPort-AV: E=Sophos;i="5.22,293,1449529200"; d="scan'208";a="160369721" Received: from mail-wm0-f41.google.com ([74.125.82.41]) by mail3-smtp-sop.national.inria.fr with ESMTP/TLS/AES128-GCM-SHA256; 14 Jan 2016 12:14:06 +0100 Received: by mail-wm0-f41.google.com with SMTP id l65so337034496wmf.1 for ; Thu, 14 Jan 2016 03:14:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=to:from:subject:message-id:date:user-agent:mime-version :content-type:content-transfer-encoding; bh=JYSMgdAzXGFg8mCnh9Tnwap5Ch2RMvtWwt10BL8eiXs=; b=p6YmXegXrKMfz0Dfe3/3erAOP4z3rjdH5oTSqIxeIxe7fdqEw2gvLS8QmhdLHkn9pn DgNkKEu4XPX+RtHZ9/WRDZxaFReUbFxiX6rEMDPNUekvpQQt2GXLohNWJ2GwIbsxk/eV RQhzhRDciCIe5x2EH7fdd8VeVfUgum2RP28Ao15nj3cF7QAhgDkIYeL10Lrts7RvsgpM 18nZdM2gdDHCbgGK68Pw9L6LoQTA+ZNmzBuRXo9n3Y401gTzm0fJmJFr0mZgD7nr8KlJ L6YXwaUpf9A3jM5fwIj6Fpcpr6JRf0P2FleX3XRxaX1kYE/QGO1Wxv8wKerUUwhLiXS7 zuYw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:to:from:subject:message-id:date:user-agent :mime-version:content-type:content-transfer-encoding; bh=JYSMgdAzXGFg8mCnh9Tnwap5Ch2RMvtWwt10BL8eiXs=; b=awGVG0IRvi0D4zUaCwilspG+a0d3tL+mxy/KxsBXNz0xg6MC2sd3oDlBRKob4STeQd BdRBhtPwTx380t9hNExYxTBtWUXoU2J6rAeDNCVzTC+bicaY1eE9CDTPrX/v1Or7ciOq h/cC2S846UV1Lwq92G5MyNMyYmhaXFVHINkicZUeFNEO1HAc/pWxgLbdxvDy75BiwMSk xxaK+Q1PQ58XZQF2+tDEjA0val8cp68G8Ie9u4D6i0seAfNimDorJlszO1dOrI/vREZS 4VLYjVF7nZ4y/giU7NcDabfOTAR6IsrPC7LDsezTtUIw5gnjwJ9o7wQhLLshOgyrdy+J 1/DQ== X-Gm-Message-State: ALoCoQm7BM04mEsjA3o99xtzu12vPyo9Anl9K4oTegkrb7Z2At7YrHsKcaXLiZs5Vg4wWJxb355aXGsmYsHHOMwZzfq6F9+KGw== X-Received: by 10.28.133.141 with SMTP id h135mr4029281wmd.70.1452770046429; Thu, 14 Jan 2016 03:14:06 -0800 (PST) Received: from [192.168.1.12] (buzzheavyyear.plus.com. [80.229.27.245]) by smtp.gmail.com with ESMTPSA id u191sm23871930wmd.4.2016.01.14.03.14.05 for (version=TLSv1/SSLv3 cipher=OTHER); Thu, 14 Jan 2016 03:14:05 -0800 (PST) To: caml-list@inria.fr From: Nick Betteridge X-Enigmail-Draft-Status: N1110 Message-ID: <569782FC.1020904@gmail.com> Date: Thu, 14 Jan 2016 11:14:04 +0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.4.0 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Subject: [Caml-list] Referencing a functor type Hi, I'm trying to create a functor for different type of cipher which have the same signature. The functor compiles Ok, but I can't work out how to phrase my self_t to build up a list of local key types. Could anyone suggest a way forward? Thanks, Nick. module type Cipher = sig type local_t type remote_t val local_create : unit -> local_t val local_sign : local_t -> Cstruct.t -> Cstruct.t val remote_create : Cstruct.t -> remote_t val remote_validate : remote_t -> Cstruct.t -> bool end module Make_cipher : functor (Cipher_impl : Cipher) -> sig type local_t = Cipher_impl.local_t type remote_t = Cipher_impl.remote_t val local_create : unit -> local_t val local_sign : local_t -> Cstruct.t -> Cstruct.t val remote_create : Cstruct.t -> remote_t val remote_validate : remote_t -> Cstruct.t -> bool end type self_t = { mutable modules : (module Cipher) list; mutable locals : Cipher_impl.local_t list; }