Refinement Types for ML

Tim Freeman, Frank Pfenning. Refinement Types for ML. In PLDI. pages 268-277, 1991.