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 mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by yquem.inria.fr (Postfix) with ESMTP id 47EC9BB84 for ; Mon, 22 Sep 2008 00:51:29 +0200 (CEST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AoQDAHZs1kjAXQImiGdsb2JhbACTHgEBARUioFqBZg X-IronPort-AV: E=Sophos;i="4.32,443,1217800800"; d="scan'208";a="15198259" Received: from discorde.inria.fr ([192.93.2.38]) by mail2-smtp-roc.national.inria.fr with ESMTP; 22 Sep 2008 00:51:29 +0200 Received: from mail4-relais-sop.national.inria.fr (mail4-relais-sop.national.inria.fr [192.134.164.105]) by discorde.inria.fr (8.13.6/8.13.6) with ESMTP id m8LMpRWI026514 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=OK) for ; Mon, 22 Sep 2008 00:51:29 +0200 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AjcBAHZs1kgRlBBbomdsb2JhbACTHgEBAQEBAQcLCAkRoFqBZg X-IronPort-AV: E=Sophos;i="4.32,443,1217800800"; d="scan'208";a="29432451" Received: from asmtpout016.mac.com ([17.148.16.91]) by mail4-smtp-sop.national.inria.fr with ESMTP; 22 Sep 2008 00:51:27 +0200 MIME-version: 1.0 Content-type: text/plain; charset=WINDOWS-1252; format=flowed; delsp=yes Received: from [192.168.8.107] ([65.96.188.162]) by asmtp016.mac.com (Sun Java(tm) System Messaging Server 6.3-7.03 (built Aug 7 2008; 32bit)) with ESMTPSA id <0K7K004ZLI4WGP10@asmtp016.mac.com> for caml-list@inria.fr; Sun, 21 Sep 2008 15:50:58 -0700 (PDT) Message-id: From: Gordon Henriksen To: caml-list@inria.fr In-reply-to: Content-transfer-encoding: quoted-printable Subject: Re: [Caml-list] Ocaml type with constraints? Date: Sun, 21 Sep 2008 18:50:56 -0400 References: X-Mailer: Apple Mail (2.929.2) X-Miltered: at discorde with ID 48D6CFEF.000 by Joe's j-chkmail (http://j-chkmail . ensmp . fr)! X-Spam: no; 0.00; ocaml:01 ocaml:01 runtime:01 angela:98 wrote:01 caml-list:01 int:01 define:02 define:02 constraints:03 constraints:03 float:03 float:03 zhu:04 types:05 On Sep 21, 2008, at 18:01, Angela Zhu wrote: > I want to define an OCaml type with constraints. For example: > > type item =3D Item of int * float;; > > If here this float type is for price of some item, and I want to =20 > make sure it is positive. In other words, if x =3D (xi, xf) of type =20= > item, I want to enforce, xf must >=3D 0. > > Is there a way to define OCaml type like this? Private types allow this enforcement, although you must implement the =20= checks at runtime for the reason previously mentioned. =97 Gordon