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=1.6 required=5.0 tests=AWL,DNS_FROM_RFC_ABUSE, SPF_NEUTRAL autolearn=disabled version=3.1.3 X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from discorde.inria.fr (discorde.inria.fr [192.93.2.38]) by yquem.inria.fr (Postfix) with ESMTP id DA52CBC6A for ; Tue, 24 Oct 2006 22:45:04 +0200 (CEST) Received: from wx-out-0506.google.com (wx-out-0506.google.com [66.249.82.236]) by discorde.inria.fr (8.13.6/8.13.6) with ESMTP id k9OKj34S028713 for ; Tue, 24 Oct 2006 22:45:04 +0200 Received: by wx-out-0506.google.com with SMTP id s6so2319061wxc for ; Tue, 24 Oct 2006 13:45:01 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:to:subject:mime-version:content-type:content-transfer-encoding:content-disposition; b=bOtlPzL5Ggv6ZZ8Jzn2Oh6ILmIBqiimogN1PweiM9RZ7kBOKm69ewX2VKRcph5EVgJxBYVzLUOVr8ctjLBOTvGtpdSLTPfMctgkWO0UGG8ZSHmMHStI9p9SOBSIqcnRQPg2JPIvyHQHydo5gvDh7y9f7M0lW73yqTYwoJfzgLG8= Received: by 10.70.125.2 with SMTP id x2mr3689972wxc; Tue, 24 Oct 2006 13:45:01 -0700 (PDT) Received: by 10.70.40.12 with HTTP; Tue, 24 Oct 2006 13:45:01 -0700 (PDT) Message-ID: <9d3ec8300610241345k1600fd9dqe3a3bba5c4bd9def@mail.gmail.com> Date: Tue, 24 Oct 2006 22:45:01 +0200 From: "Till Varoquaux" To: OCaml Subject: Simple(?) subtyping problem... MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline X-j-chkmail-Score: MSGID : 453E7B4F.002 on discorde : j-chkmail score : X : 0/20 1 X-Miltered: at discorde with ID 453E7B4F.002 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Spam: no; 0.00; subtyping:01 messes:01 extensible:01 functions:01 variant:02 archives:02 let:03 let:03 problem:05 thread:05 matching:06 split:07 split:07 function:08 function:08 I'm currently trying to split functions matching against given variant type and I'm running across this pb: let a= function | `A -> () | `B -> () doesn't split into let c=function | `B -> () let b =function | `A -> () | x -> c x since it messes up the type rules. I really want to avoid having to write down precise type informations (The point here is to have an extensible system)... I am sure this question has been asked loads of times (but I couldn't find the right thread in the archives) and I apologize for asking it yet again. Till