“…The Liquid Types were originally developed in a functional language framework, and later on they were applied to some imperative languages such as C [13]. Recently, they have been incorporated to Haskell [17,18] in the form of a static type-checker which is independent of the compilers. The Hindley-Milner Haskell type system, and its extension to type classes, combine very well with the Liquid Types approach, which supports polymorphism, algebraic types, and lambda abstractions.…”