| | 4.5.3 Languages Based on Signature Constraints and Implicit Structural Subtyping |
 | | Strongtalk is a type system for Smalltalk where programmers define protocol types explicitly, use protocols to declare the types of arguments, results, and variables, and let the system infer subtype and conformance relations between protocols and classes; like Cecil, subtyping and inheritance are separated. |
 | | Interestingly, a later version of Strongtalk appears to have dropped inferred structural subtyping and brands in favor of explicit by-name subtyping [Bracha 96]. |
 | | This later version also introduces the ability to declare that different instantiations of a parameterized type are subtype-related either co- or contravariantly with respect to its parameter types. |
| www.cs.washington.edu /research/projects/cecil/cecil/www/Vortex-Three-Zero/doc-cecil-lang/cecil-spec-90.html (661 words) |