second-order semantics