From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on yquem.inria.fr X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=disabled version=3.1.3 X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from mail1-relais-roc.national.inria.fr (mail1-relais-roc.national.inria.fr [192.134.164.82]) by yquem.inria.fr (Postfix) with ESMTP id 57A07BC6B for ; Thu, 8 Nov 2007 13:09:48 +0100 (CET) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AgAAACuLMkfAXQImh2dsb2JhbACOfwEBAQgKKQ X-IronPort-AV: E=Sophos;i="4.21,389,1188770400"; d="scan'208";a="4193785" Received: from discorde.inria.fr ([192.93.2.38]) by mail1-smtp-roc.national.inria.fr with ESMTP; 08 Nov 2007 13:09:48 +0100 Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by discorde.inria.fr (8.13.6/8.13.6) with ESMTP id lA8C9lif018372 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=OK) for ; Thu, 8 Nov 2007 13:09:48 +0100 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Ao8CALuKMkeCNhAB/2dsb2JhbAA X-IronPort-AV: E=Sophos;i="4.21,389,1188770400"; d="scan'208";a="4027200" Received: from kurims.kurims.kyoto-u.ac.jp ([130.54.16.1]) by mail2-smtp-roc.national.inria.fr with ESMTP; 08 Nov 2007 13:09:46 +0100 Received: from localhost (silicon [130.54.16.72]) by kurims.kurims.kyoto-u.ac.jp (8.13.8/8.13.8) with ESMTP id lA8C9eq3025330; Thu, 8 Nov 2007 21:09:41 +0900 (JST) Date: Thu, 08 Nov 2007 21:09:39 +0900 (JST) Message-Id: <20071108.210939.68538729.keiko@kurims.kyoto-u.ac.jp> To: Andrej.Bauer@andrej.com Cc: caml-list@inria.fr Subject: Re: [Caml-list] a function for polymorphic and monomorphic objects From: Keiko Nakata In-Reply-To: <4732E97B.9080805@fmf.uni-lj.si> References: <20071108.180532.68538077.keiko@kurims.kyoto-u.ac.jp> <4732E97B.9080805@fmf.uni-lj.si> X-Mailer: Mew version 4.2 on Emacs 20.7 / Mule 4.1 (AOI) Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Miltered: at discorde with ID 4732FC8B.000 by Joe's j-chkmail (http://j-chkmail . ensmp . fr)! X-Spam: no; 0.00; quantified:01 val:01 val:01 annotations:01 polymorphic:01 caml-list:01 monomorphic:01 int:01 int:01 objects:02 let:03 let:03 perhaps:05 indeed:07 function:08 > In your case you got it wrong when you quantified 'a in the object p. > # let p = object method map = fun f -> List.map f [1;2;3] end;; > val p : < map : (int -> 'a) -> 'a list > = Perhaps I oversimplified my example. Indeed I want to make p a function like let p1 l = object method map : 'a.(int -> 'a) -> 'a list = fun f -> List.map f l end;; let o1 = p1 [1;2;3];; - val o1 : < map : 'a. (int -> 'a) -> 'a list > = Then I need type annotations let p2 l = object method map = fun f -> List.map f l end;; let o2 = p2 [1;2;3];; - val o2 : < map : (int -> '_a) -> '_a list > = With best, keiko