Version française
Home     About     Download     Resources     Contact us    

This site is updated infrequently. For up-to-date information, please visit the new OCaml website at

Browse thread
Ocaml type with constraints?
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2008-09-21 (22:05)
From: Andrej Bauer <Andrej.Bauer@a...>
Subject: Re: [Caml-list] Ocaml type with constraints?
Angela Zhu wrote:
> 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?

No, because Ocaml type checker always check all the types at compile
time. It is an undecidable problem whether a given expression of type
float evaluates to a non-negative number.

Best regards,