Types in combinatory logic