Date: Mon, 22 Sep 2003 10:06:02 +0200 From: Francois Pottier To: lablgtk at kaba.or.jp Subject: Re: Misc questions Message-ID: <20030922100602.B31077 at pauillac.inria.fr> Reply-To: Francois.Pottier at inria.fr References: <20030921180318.A7068 at pauillac.inria.fr> <20030922101819Y.garrigue at kurims.kyoto-u.ac.jp> <20030922085521.A30725 at pauillac.inria.fr> <20030922165104L.garrigue at kurims.kyoto-u.ac.jp> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit In-Reply-To: <20030922165104L.garrigue at kurims.kyoto-u.ac.jp>; from garrigue at kurims.kyoto-u.ac.jp on Mon, Sep 22, 2003 at 04:51:04PM +0900 Hi Jacques, On Mon, Sep 22, 2003 at 04:51:04PM +0900, Jacques Garrigue wrote: > > OK. Gobject.obj is contravariant. Since for variants [`treemodel] is a > subtype of [`treemodel|`liststore], then a (liststore obj) is a > subtype of a (treemodel obj). Hmm, I do see that [`treemodel|`liststore] obj <: [`treemodel] obj is valid. But I still don't see why [`treemodel] obj <: tree_model obj should be valid -- which was my original question :) > You have to use ocamlbrowser to see all the contents directly. Aah! I see. So browsing the .mli files by hand doesn't tell you all of the truth. That is subtle. -- François Pottier Francois.Pottier@inria.fr http://pauillac.inria.fr/~fpottier/