English version
Accueil     À propos     Téléchargement     Ressources     Contactez-nous    

Ce site est rarement mis à jour. Pour les informations les plus récentes, rendez-vous sur le nouveau site OCaml à l'adresse ocaml.org.

Browse thread
Typing problems when using LablGTK
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2001-02-05 (16:55)
From: Maxence <max@s...>
Subject: Re: Typing problems when using LablGTK

Just add explicit type for the table parameter of your mini function :

let mini (table : GPack.table) : unit =
  GButton.button ~label:"mini"
    ~packing:(table#attach ~left:3 ~top:3 ~expand:`BOTH) ();

> What have I misunderstood?
I think you didn't misunderstood anything. I was surprised too, the
first time :-)
take a look at the example below :
class context () =
    method get_string ?(default="great!") message =
      (* this function could display a message and an
	 entry widget to make the user type in some text.
	 The entry would contain the default text when
	 the window appears. for the example, we
	 just return the default text.*)
      print_string message;

let f ctx = ctx#get_string "how do you feel ?"

let ctx = new context ()
let feeling = f (ctx :> <get_string : string -> string>)

ocaml complains about the coercion of ctx :
This expression cannot be coerced to type < get_string : string ->
string >;
it has type context = < get_string : ?default:string -> string -> string
but is here used with type < get_string : string -> string >

The question is : why is this coercion not allowed ?

Maxence Guesdon