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
Type abstraction and (polymorphic) equality
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2005-06-30 (12:19)
From: Alain Frisch <Alain.Frisch@i...>
Subject: Re: [Caml-list] Type abstraction and (polymorphic) equality
Christophe TROESTLER wrote:
> I'll be glad to hear similar experiences and comments about the above
> ideas.

In my opinion, it is a good idea to always define one's own comparison
(and hash) function. You know better than the compiler and the runtime 
system how your data is to be compared, which details should be ignored, 
how to deal with cycles, and so on. In addition, your custom functions 
will be more efficient than the generic ones. There are several tools to 
generate automatically comparison functions from type declarations.

I often redefine the comparison operators (=), (<=), ... with dummy 
types at the beginning of modules to avoid using them by inadvertence 
(this does not catch uses of List.mem-like functions, though).

-- Alain