explain that there are two types of combinator