Browse thread
[Caml-list] Is a Cow an Animal?
[
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] Is a Cow an Animal? |
On Thursday, April 18, 2002, at 05:21 PM, Remi VANICAT wrote: > james woodyatt <jhw@wetware.com> writes: >> >> I borrowed a technique I learned here from Brian Rogoff that uses an >> abstract type with a contravariant type parameter for passing the type >> of energy a food object contains to an animal object that can eat it. >> (I wish I were smart enough to know the name for this technique.) > > the use of an abstract type with a covariant or contravariant type (or > even not variant) parameter, and where the actual implementation of > the type doesn't use this parameter (as in type 'a eater = int) is > often call phantom type. > > one can read the very interesting mail about this in the archive of > this mailing list > http://caml.inria.fr/archives/200109/msg00097.html That's precisely where I learned the technique. It's true I forgot the "phantom type" terminology, but the contribution I was trying to make to the list is that such types are frequently useful in representing complicated associations between related class hierarchies. I don't think Pixel's exercise is really covered well by the "subject-observer" pattern, and I wonder if the pattern I used in my solution is one that is already identified by a better name than the "association-by-phantom-type" pattern. Surely somebody has already published a paper on this by now, right? -- j h woodyatt <jhw@wetware.com> ------------------- 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