Intersection and union types_ Syntax and semantics