type checks with arbitrary function type complexity
handle n applications, notes for discussion