LiquidHaskell: Refinement Types via SMT and Predicate Abstraction | Hacker News Reader