Here is the fileout code in Strongtalk. It is not the way we program!

Delta define: #Top as: (
(Class subclassOf: 'Object' instanceVariables: '')) !

(Delta mirrorFor: #Top) revision: '$Revision:$'!

(Delta mirrorFor: #Top) group: 'Unclassified'!

(Delta mirrorFor: #Top)
comment: 
''!

Delta define: #Middle as: (
(Class subclassOf: 'Top' instanceVariables: '')) !

(Delta mirrorFor: #Middle) revision: '$Revision:$'!

(Delta mirrorFor: #Middle) group: 'Unclassified'!

(Delta mirrorFor: #Middle)
comment: 
''!

Delta define: #Bottom as: (
(Class subclassOf: 'Middle' instanceVariables: '')) !

(Delta mirrorFor: #Bottom) revision: '$Revision:$'!

(Delta mirrorFor: #Bottom) group: 'Unclassified'!

(Delta mirrorFor: #Bottom)
comment: 
''!

Delta define: #Up as: (
(Class subclassOf: 'Object' instanceVariables: '')) !

(Delta mirrorFor: #Up) revision: '$Revision:$'!

(Delta mirrorFor: #Up) group: 'Unclassified'!

(Delta mirrorFor: #Up)
comment: 
''!

! (Delta mirrorFor: #Up) methodsFor: 'service' !


ctv: b ^
Transcript show: 'Up';cr.
 ^'Up'. !

cv: t ^
Transcript show: 'Up';cr.
 ^'Up'. 
!

inv: m ^
Transcript show: 'Up';cr.
 ^'Up'. ! !

Delta define: #Down as: (
(Class subclassOf: 'Up' instanceVariables: '')) !

(Delta mirrorFor: #Down) revision: '$Revision:$'!

(Delta mirrorFor: #Down) group: 'Unclassified'!

(Delta mirrorFor: #Down)
comment: 
''!

! (Delta mirrorFor: #Down) methodsFor: 'service' !


ctv: m ^
Transcript show: 'Down';cr.
 ^'Down'. !

inv: m ^
Transcript show: 'Down';cr.
 ^'Down'. ! !

Delta define: #Client as: (
(Class subclassOf: 'Object' instanceVariables: '')) !

(Delta mirrorFor: #Client) revision: '$Revision:$'!

(Delta mirrorFor: #Client) group: 'Unclassified'!

(Delta mirrorFor: #Client)
comment: 
''!

! (Delta mirrorFor: #Client) methodsFor: 'service' !


cocon

| u  d  ud  |

u := Up new.
d := Down new.
ud := Down new.
Transcript show: '-- first column ';cr.
u cv: Top new.
u cv: Middle new.
u cv: Bottom new.
Transcript show: 'u inv: Top new. Type of actual argument 1 (Top) is not a subtype of formal argument type Middle';cr.
u inv: Middle new.
u inv: Bottom new.
Transcript show: 'u ctv: Top new. Type of actual argument 1 (Top) is not a subtype of formal argument type Bottom';cr. 
Transcript show: 'u ctv: Middle new. Type of actual argument 1 (Middle) is not a subtype of formal argument type Bottom';cr.  
u ctv: Bottom new.
Transcript show: '-- second column ';cr.
d cv: Top new. "Transcript show: '!!!! d cv: Top new. Type of actual argument 1 (Top) is not a subtype of formal argument type Middle';cr. "
d cv: Middle new.
d cv: Bottom new.
Transcript show: 'd inv: Top new. Type of actual argument 1 (Top) is not a subtype of formal argument type Middle';cr.
d inv: Middle new.
d inv: Bottom new.
Transcript show: 'd ctv: Top new. Type of actual argument 1 (Top) is not a subtype of formal argument type Bottom';cr. 
d ctv: Middle new.
d ctv: Bottom new.
Transcript show: '-- third column ';cr.
ud cv: Top new.
ud cv: Middle new.
ud cv: Bottom new.
Transcript show: 'ud inv: Top new. Type of actual argument 1 (Top) is not a subtype of formal argument type Middle';cr.
ud inv: Middle new.
ud inv: Bottom new.
Transcript show: 'ud ctv: Top new. Type of actual argument 1 (Top) is not a subtype of formal argument type Bottom';cr. 
Transcript show: 'ud ctv: Middle new. Type of actual argument 1 (Middle) is not a subtype of formal argument type Bottom';cr.
ud ctv: Bottom new.! !

-- run
-- first column 
Up
Up
Up
u inv: Top new. Type of actual argument 1 (Top) is not a subtype of formal argument type Middle
Up
Up
u ctv: Top new. Type of actual argument 1 (Top) is not a subtype of formal argument type Bottom
u ctv: Middle new. Type of actual argument 1 (Middle) is not a subtype of formal argument type Bottom
Up
-- second column 
Up
Up
Up
d inv: Top new. Type of actual argument 1 (Top) is not a subtype of formal argument type Middle
Down
Down
d ctv: Top new. Type of actual argument 1 (Top) is not a subtype of formal argument type Bottom
Down
Down
-- third column 
Up
Up
Up
ud inv: Top new. Type of actual argument 1 (Top) is not a subtype of formal argument type Middle
Down
Down
ud ctv: Top new. Type of actual argument 1 (Top) is not a subtype of formal argument type Bottom
ud ctv: Middle new. Type of actual argument 1 (Middle) is not a subtype of formal argument type Bottom
Down