The standard library is fully compatible with the static type checker; all library declarations have associated type declarations, which also serve as helpful documentation.
The documentation of library functions uses special notation for parametric
types that have dot-accessible members.
Member names are written in the form Type.member, e.g. Foo.get
refers to the get member of an object of type Foo.
The object type can include type variables which are referenced by the member
type, so for example site Buffer[A].get() :: A means that
when the get method is called on a Buffer holding an
arbitrary element type A, it will return a value of the same type.