type combinators and related tests