From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by yquem.inria.fr (Postfix) with ESMTP id 59194BB81 for ; Mon, 28 Nov 2005 08:09:44 +0100 (CET) Received: from pauillac.inria.fr (pauillac.inria.fr [128.93.11.35]) by concorde.inria.fr (8.13.0/8.13.0) with ESMTP id jAS79hut011725 for ; Mon, 28 Nov 2005 08:09:43 +0100 Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id IAA08755 for ; Mon, 28 Nov 2005 08:09:43 +0100 (MET) Received: from kraid.nerim.net (smtp-101-monday.nerim.net [62.4.16.101]) by concorde.inria.fr (8.13.0/8.13.0) with ESMTP id jAS79gmL011719 for ; Mon, 28 Nov 2005 08:09:43 +0100 Received: from karryall.dnsalias.org (oandrieu.pck.nerim.net [213.41.240.180]) by kraid.nerim.net (Postfix) with ESMTP id D3BE540E27; Mon, 28 Nov 2005 08:09:38 +0100 (CET) Received: by karryall.dnsalias.org (Postfix, from userid 500) id 9A1C9596FB8; Mon, 28 Nov 2005 08:09:38 +0100 (CET) From: Olivier Andrieu MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <17290.44338.301364.710291@karryall.dnsalias.org> Date: Mon, 28 Nov 2005 08:09:38 +0100 To: Christophe Raffalli Cc: Christophe Papazian , caml-list@inria.fr Subject: Re: [Caml-list] covariance newb question In-Reply-To: <438A41B5.3060206@univ-savoie.fr> References: <5FABF242-1101-4499-8CF5-CF1559F6EECC@essi.fr> <438A41B5.3060206@univ-savoie.fr> X-Mailer: VM 7.19 under Emacs 21.4.1 X-Miltered: at concorde with ID 438AAD37.001 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Miltered: at concorde with ID 438AAD36.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Spam: no; 0.00; andrieu:01 oandrieu:01 nerim:01 caml-list:01 covariance:01 christophe:01 raffalli:01 ocaml:01 -'a:01 parameter:02 parameter:02 covariant:02 covariant:02 definition:07 olivier:07 X-Spam-Checker-Version: SpamAssassin 3.0.3 (2005-04-27) on yquem.inria.fr X-Spam-Level: X-Spam-Status: No, score=0.1 required=5.0 tests=FORGED_RCVD_HELO autolearn=disabled version=3.0.3 Christophe Raffalli [Monday 28 November 2005] : > first 'a -> 'b is covariant in 'a and contravariant in 'b and Ocaml It's the opposite (contravariant in 'a, covariant in 'b) : ,---- | # type (+'a, -'b) t = 'a -> 'b ;; | Characters 5-28: | type (+'a, -'b) t = 'a -> 'b ;; | ^^^^^^^^^^^^^^^^^^^^^^^ | In this definition, expected parameter variances are not satisfied. | The 1st type parameter was expected to be covariant, | but it is contravariant | # type (-'a, +'b) t = 'a -> 'b ;; | type ('a, 'b) t = 'a -> 'b `---- -- Olivier