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