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 nez-perce.inria.fr (nez-perce.inria.fr [192.93.2.78]) by yquem.inria.fr (Postfix) with ESMTP id 1F1EDBB81 for ; Thu, 23 Feb 2006 18:24:00 +0100 (CET) Received: from smtp6.wanadoo.fr (smtp6.wanadoo.fr [193.252.22.25]) by nez-perce.inria.fr (8.13.0/8.13.0) with ESMTP id k1NHNxg2027478 for ; Thu, 23 Feb 2006 18:23:59 +0100 Received: from me-wanadoo.net (localhost [127.0.0.1]) by mwinf0602.wanadoo.fr (SMTP Server) with ESMTP id AC41A1C000CE for ; Thu, 23 Feb 2006 18:23:59 +0100 (CET) Received: from nono (ARouen-106-1-3-31.w80-11.abo.wanadoo.fr [80.11.87.31]) by mwinf0602.wanadoo.fr (SMTP Server) with SMTP id 631F21C000AD for ; Thu, 23 Feb 2006 18:23:59 +0100 (CET) X-ME-UUID: 20060223172359406.631F21C000AD@mwinf0602.wanadoo.fr Message-ID: <006101c6389e$9bbbc440$1f570b50@mshome.net> From: =?iso-8859-1?Q?Fr=E9d=E9ric_Gava?= To: Subject: (int * int) <> int*int ? Date: Thu, 23 Feb 2006 18:28:48 +0100 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 8bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 5.50.4133.2400 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4133.2400 X-Miltered: at nez-perce with ID 43FDEFAF.001 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Spam: no; 0.00; gava:01 gava:01 semantically:01 val:01 12.:98 constructor:01 pair:01 pair:01 argument:01 argument:01 int:01 int:01 types:02 frederic:03 frederic:03 X-Spam-Checker-Version: SpamAssassin 3.0.3 (2005-04-27) on yquem.inria.fr X-Spam-Level: * X-Spam-Status: No, score=1.0 required=5.0 tests=RCVD_IN_NJABL_PROXY autolearn=disabled version=3.0.3 Hi, is anybody can semantically explain why this 2 types are differents ? # type t=A of int*int and t'= B of (int*int);; type t = A of int * int and t' = B of (int * int) # A (2,3);; - : t = A (2, 3) # B (2,3);; - : t' = B (2, 3) # let a=2,3;; val a : int * int = (2, 3) # (A a);; The constructor A expects 2 argument(s), but is here applied to 1 argument(s) # (B a);; - : t' = B (2, 3) I understand that it'is force you to have a pair for A and not just a value of type pair but why this restriction ? It is not easy to explain why int*int <> (int*int). Thanks ! Frédéric Gava