Intersection types and computational effects