type system & documentation