Browse thread
Smells like duck-typing
[
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: | Brian Hurt <bhurt@j...> |
| Subject: | Re: [Caml-list] Smells like duck-typing |
Dario Teixeira wrote: >Hi, > > > >>That seems backwards from the way OO inheritance is supposed to work. >>You don't go from a more feature-rich case to a less feature-rich case >>-- it's the other way around. >> >> > >Of course it is -- that is precisely why inheritance is the wrong >formalism for my problem! What I need is a "reverse inheritance" >formalism, where a fully defined data structure sits at the root, >and whose descendants are PRUNED versions of the parent. > > The problem with this is that it violates one of the assumptions of typing, that if type A is (also) a type B, than anywhere you can use a type B, you can also use a type A. This isn't an assumption limited to object oriented languages. And this isn't true in your example- if type A is lacking members type B has, then it's possible to write situations where a "real" type B can be used, but not a type A- just use a field of type B that type A doesn't have. I think I'd recommend rethinking your approach to the problem. Brian