From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by walapai.inria.fr (8.13.6/8.13.6) with ESMTP id p2NNqI6x004783 for ; Thu, 24 Mar 2011 00:52:23 +0100 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AoMDALskik1KfVI0imdsb2JhbACYSoxzCBQBAQEKCQ0HEgYhqEmKVIIfhQwviFwBAQMFhWQEjG+DUnOEQTo X-IronPort-AV: E=Sophos;i="4.63,234,1299452400"; d="scan'208";a="78947983" Received: from mail-ww0-f52.google.com ([74.125.82.52]) by mail3-smtp-sop.national.inria.fr with ESMTP/TLS/RC4-SHA; 24 Mar 2011 00:52:22 +0100 Received: by wwj40 with SMTP id 40so11871122wwj.9 for ; Wed, 23 Mar 2011 16:52:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:content-type:mime-version:subject:from :in-reply-to:date:content-transfer-encoding:message-id:references:to :x-mailer; bh=XptM/2ht2pST44WPbNBYrOONg+L8wXIOQ/T+KgSIo6s=; b=P9qQaMEcvyI6gr7O2fai7d2yxV+IiBxjV6muB7EcAGPTSPL2PLJ3YgSCEEq1FPWcyk D0tUjD416MByEwFtpJRa0cdhhValr856aR15u9blHc8sXEgB6ofXwY1OfNLBMgUI1ulj Lthdfhfe/Hvxllmgs7jBDY9O8LU/2PrqxSBAs= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=content-type:mime-version:subject:from:in-reply-to:date :content-transfer-encoding:message-id:references:to:x-mailer; b=HyAB3Luuba5WYDDpg4UJ/pcTNtgDf8h7PMihpQ9iCh/a7WjEdqdy00rYbzFeTCU4K3 /XuHiVWioJhdqeaMlplhLIo7z3/wi/yuTF/ikcMHKjSfJvUtFacVZhfOKNzp7o5ROVku DozSVxPyA1K0bDxEQf3ATq81qCMmKCRHwakdY= Received: by 10.227.172.7 with SMTP id j7mr6957839wbz.60.1300924341697; Wed, 23 Mar 2011 16:52:21 -0700 (PDT) Received: from [192.168.0.195] ([95.60.213.7]) by mx.google.com with ESMTPS id h19sm4039542wbc.58.2011.03.23.16.52.19 (version=TLSv1/SSLv3 cipher=OTHER); Wed, 23 Mar 2011 16:52:20 -0700 (PDT) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Apple Message framework v1082) From: Joel Reymont In-Reply-To: <67C135E4-6D99-410A-A88A-C3AEF6275698@gmail.com> Date: Wed, 23 Mar 2011 23:52:17 +0000 Content-Transfer-Encoding: 7bit Message-Id: <524B4BEB-ACFC-4C05-9695-9B2A7B646FB7@gmail.com> References: <07EE3576-E5F0-4187-AE8C-DEFEA5C92303@gmail.com> <67C135E4-6D99-410A-A88A-C3AEF6275698@gmail.com> To: caml-list@inria.fr X-Mailer: Apple Mail (2.1082) Subject: [Caml-list] Re: fighting the type system A much reduced version. Help! --- Util.ml open ZMQ open ZMQ.Socket open Thrift let make_proto = let inbuf = Buffer.create 0 and outbuf = Buffer.create 0 in let tx = new TBufferTransport.t inbuf outbuf in new TBinaryProtocol.t tx type 'a request = < write : Protocol.t -> unit; .. > as 'a module type Endpoint = sig val request : unit -> 'a request val read_request : Protocol.t -> 'a request end module SimpleService (E: Endpoint) = struct let server endpoint = let proto = make_proto in E.read_request proto end --- A.ml module U = Util module T = AdCampaign_types module Ads = struct let read_request = T.read_request let request () = new T.request end module M = U.SimpleService(Ads) --- Error File "src/ads.ml", line 10, characters 27-30: Error: Signature mismatch: Modules do not match: sig val read_request : Thrift.Protocol.t -> T.request val request : unit -> T.request end is not included in U.Endpoint Values do not match: val request : unit -> T.request is not included in val request : unit -> < write : Thrift.Protocol.t -> unit; .. > U.request