> Typed Racket supports refinement types and dependent function types. Previously an experimental feature, refinement types allow types to describe more interesting properties of values, especially integers. For example, this type shows that the max function always produces a number at least as big as its inputs: (-> [x : Integer] [y : Integer] (Refine [z : Integer] (and (>= z x) (>= z y))))
Did Racket become a better Haskell while I wasn't looking? What's the catch? Those look like some powerful type system features.
Did Racket become a better Haskell while I wasn't looking? What's the catch? Those look like some powerful type system features.