Version française
Home     About     Download     Resources     Contact us    

This site is updated infrequently. For up-to-date information, please visit the new OCaml website at

Browse thread
Smells like duck-typing
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2007-10-18 (14:18)
From: Brian Hurt <bhurt@j...>
Subject: Re: [Caml-list] Smells like duck-typing
Dario Teixeira wrote:

>>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.