[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
| Date: | -- (:) |
| From: | james woodyatt <jhw@w...> |
| Subject: | Re: [Caml-list] Optional arguments in inherited methods |
On 28 Apr 2004, at 09:13, John Goerzen wrote: > > I have this defined in a base class: > > method private getdata sname oname = <code here> > > In my subclass, I wish to do this: > > method private getdata ?(raw=false) ?(idepth=10) ?extravars sname > oname = <code> > > The compiler does not seem to like this at all, though I am at a loss > to > explain why. Can someone help me out? Presumably, given this in the base class: method getdataf sname = <code here returns function> ...you wish the compiler to insure that the default values are used for each of the optional arguments in the [possibly partial] evaluation of the derived class method. Well— it doesn't. You have to define the derived class method in two parts. method private getdata_aux ?(raw=false) ?(idepth=10) ?extravars sname oname = <code> method private getdata sname oname = self#getdata sname oname > The error I get is: > > The method getdata has type > ?raw:'a -> ?idepth:'b -> ?extravars:'c -> 'd -> 'e -> 'f > but is expected to have type string -> string -> string > > So even stranger is that it doesn't set a type for anything, even > though > it has enough information to figure out the type for everything. Yeah, it's already decided you have a problem before it's finished inferring the types of everything. That might be another one of those little annoyances... since inferring types when the code is known to be in error is probably a hard problem. -- j h woodyatt <jhw@wetware.com> that's my village calling... no doubt, they want their idiot back. ------------------- 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