Version française
Home     About     Download     Resources     Contact us    
Browse thread
[Caml-list] How can I check for the use of polymorphic equality?
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Pierre Weis <pierre.weis@i...>
Subject: Re: [Caml-list] How can I check for the use of polymorphic equality?
> >You probably will catch every reasonable usage of ( = ) that way...
> >Simple, no ?
> 
> But that a) requires you to put it in scope at the top of each file,

Absolutely, but remember it is just a debugging phase, not a
production state.

> and more importantly b) means you can't use = anywhere, doesn't it?

No: it means you have to do something more than just writing = when
you need to call the predefined generic equality. You first have to
think if there is not another predicate that is not more appropriate
to the situation, and if there is none, you just have to insert a mere

  let ( = ) = Pervasives.( = ) in

before each relevant occurrence of ( = ). Those single lines can be
easily removed after proper debugging (use an emacs keyboard macro + a
M-x grep -n -e ... *.ml).

Still sounds rather simple and elegant to me...

> That seems kinda strong for the very specific check, and the
> abstract type thing (which was going to be my suggestion as well,
> but I forgot you could do it with Obj all in caml!) is both
> localized and only catches the ones you care about.
>
> Chris

No doubt that you could use an abstract type trick (possibly using the
Obj module :(), if you fill more comfortable with this trick. The hack
I proposed is just simpler, only based on simple core language
features, and has the additional advantage to force you to have a look
at all occurrences of ( = ) in your source code, which in my mind is a
desirable side effect.

Best regards,

Pierre Weis

INRIA, Projet Cristal, Pierre.Weis@inria.fr, http://pauillac.inria.fr/~weis/


-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners