check (Type → Type) check (Type → Type) → Type check (Type 1) check ((Type 1) → Type) → Type check ((Type 1) → (Type 2)) → Type