doc first types and combinators