document Type constructors
apply abstract binop type transformation to return type too