Typing discipline: Structural
Structural typing determines compatibility of data types using their structures. Two types are equivalent if they have identical structure, i.e., for each feature (method or attribute) within one type there exists an identical corresponding feature of the second one.
Structural typing is the opposite of nominal typing.
- Algol68 (dialects: Algol68 r0, Algol68 r1, Algol68 sublanguage)
- FP
- Haskell (dialects: Haskell 98)
- Lisp (dialects: Clojure, Common Lisp, Scheme)
- Oz
- Pike
- Rust
- Scala