Structural/functional types
Functional classes
Functional subclasses
Detection methods