Version française
Home     About     Download     Resources     Contact us    
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: -- (:)
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,

Andrej