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.6 required=5.0 tests=AWL,HTML_MESSAGE 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 F19B7BB84 for ; Mon, 22 Sep 2008 00:01:23 +0200 (CEST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ArYDAINg1kjAXQIniGdsb2JhbACCLi+JK4ZXPgEBARUimwiFXgECg3w X-IronPort-AV: E=Sophos;i="4.32,442,1217800800"; d="scan'208";a="15197453" Received: from concorde.inria.fr ([192.93.2.39]) by mail2-smtp-roc.national.inria.fr with ESMTP; 22 Sep 2008 00:01:23 +0200 Received: from mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by concorde.inria.fr (8.13.6/8.13.6) with ESMTP id m8LM1NVo009910 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=OK) for ; Mon, 22 Sep 2008 00:01:23 +0200 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: At4DADZh1kjRVdkVgGdsb2JhbACCLi+JK4ZXPgEBFCSbB4VeAQKDfA X-IronPort-AV: E=Sophos;i="4.32,442,1217800800"; d="scan'208";a="17196213" Received: from mail-gx0-f21.google.com ([209.85.217.21]) by mail3-smtp-sop.national.inria.fr with ESMTP; 22 Sep 2008 00:01:22 +0200 Received: by gxk14 with SMTP id 14so2318178gxk.9 for ; Sun, 21 Sep 2008 15:01:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to :subject:mime-version:content-type; bh=tDXol30naIWABmoor/N4dM6Mve+VLumsXILyv1++U2A=; b=ROCv7cuWZwEXWHTrSlZlEDw8zN38c0dhsAe5MlrEXVSVk2rTNtye7s/nLVZv7ZgJ58 fpqrFpYC2jZ+d1TD1QDlmyPiFpnRmVcPmlGYbCrsEgQ+iTg4FzNRIJbk8Lb2nAYBDR3S +7hxu2tmq+9S1kh5afy2Tp7kyR50EC2j+Hth4= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:mime-version:content-type; b=Ko220XpsQIrVSmABWUAvHhbMdV1+wLGV1HWwf/MVDQi4bsPrgFzxC1fhz16qLVDnqm im25o26OVI19adzoptLJ4Q1sHbpkLunFgI7CDC6mvtlVFGTs0ipCkGWVXC6I1zWXuxkX RUv+iRNIrYBMCDi/9a6j9B24OvVhkdqxSiKR8= Received: by 10.90.35.9 with SMTP id i9mr3544009agi.105.1222034481420; Sun, 21 Sep 2008 15:01:21 -0700 (PDT) Received: by 10.90.81.13 with HTTP; Sun, 21 Sep 2008 15:01:21 -0700 (PDT) Message-ID: Date: Sun, 21 Sep 2008 17:01:21 -0500 From: "Angela Zhu" To: caml-list@inria.fr Subject: Ocaml type with constraints? MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_Part_17061_22372761.1222034481423" X-Miltered: at concorde with ID 48D6C433.000 by Joe's j-chkmail (http://j-chkmail . ensmp . fr)! X-Spam: no; 0.00; ocaml:01 ocaml:01 angela:98 angela:98 22.:98 int:01 int:01 define:02 define:02 constraints:03 constraints:03 float:03 float:03 zhu:04 zhu:04 ------=_Part_17061_22372761.1222034481423 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline Hi, I want to define an OCaml type with constraints. For example: type item = Item of int * float;; If here this float type is for price of some item, and I want to make sure it is positive. In other words, if x = (xi, xf) of type item, I want to enforce, xf must >= 0. Is there a way to define OCaml type like this? Thanks a lot! Angela ------=_Part_17061_22372761.1222034481423 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline
Hi, 

I want to define an OCaml type with constraints.
For example:

type item = Item of int * float;;

If here this float type is for price of some item, and I want to make sure
it is positive. In other words, if x = (xi, xf) of type item, 
I want to enforce, xf must >= 0.

Is there a way to define OCaml type like this?

Thanks a lot!
Angela

------=_Part_17061_22372761.1222034481423--