Refinement types for ML