Version française
Home     About     Download     Resources     Contact us    
Browse thread
[Caml-list] Constraint
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Remi VANICAT <vanicat@l...>
Subject: Re: [Caml-list] Constraint
"Warp" <warplayer@free.fr> writes:

> Hi
> I had a quite big parametrized class and it takes me few hours to figure out
> where a constraint I didn't want was occuring. It's true that I'm not very
> familiar with constraints, but I think it would be nice to enable the OCaml
> compiler to print some more informations about where the constraint occurs
> in the code ( a simple line number will be enough. ) I don't know if that
> can be done, but i think that would be somehow useful.

There is a possibility to find such error. Here an example :

class type foo =
object
  method baz : int
end

class ['a] bar (f : 'a) =
object
  method buz = (f #baaz) + 1
end

here, I've done a mistake in the name of the method baz (writing it
baaz). 

I can temporally transform my code in :

class ['a] bar (f : 'a) =
object
  constraint 'a = foo

  method buz = (f #baaz) + 1
end

then, I will have a type error (no method baaz).

of course it's not a clean method, but it work.
-- 
Rémi Vanicat
vanicat@labri.u-bordeaux.fr
http://dept-info.labri.u-bordeaux.fr/~vanicat
-------------------
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