Observational Type Thwory