ucsd-progsys/liquidhaskell — pull request #99 by nikivazou (2013-07-26 17:17:34+00:00)
Title: Coercion

Handles basic coercion (Fix for #84)
See `tests/pos/Coercion.hs` for an auto-generated coercion.

* by ANF transformation code (e (Coercion c)) should be transformed to (let x = Coercion c in e x)
but this creates a type error by CoreLint type checker because x is not a real runtime argument.
These kind of type errors are ignored.

* In types (Cast e c) and (Coercion c) get trued types and when (Cast e c) is typed against a type t,
t is constrained to true