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

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Dimitri Ara <dimitri@n...>
Subject: [Caml-list] strange typing errors
        Hi,

While ICFPing, I came upon some strange typing error messages.

The first one is :

class type ct = object
  method m : l:int -> ct
end

let rec f (o : ct) =
  let rec g o =
    let x = o#m 1 in
      g x in
    g o

which is well typed accorded to caml if I remove the l label. Here is
the error I got:

This expression has type ct = < m : l:int -> ct > as 'a
but is here used with type 'a

The second one is ill-typed and get the same error message:

class type ct = object
  method m : l:int -> int
end

let rec f (o : ct) =
  let rec g o =
    let x = o#m 1 in
      g x in
    g o

If I remove the label I got a stranger error:

This expression has type ct = < m : int -> int > as 'a
but is here used with type 'a
Type int is not compatible with type ct = 'a 

Can someone explain that?

-- 
Dimitri Ara
-------------------
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