Refinement Types, SMT Integration, Dependent Haskell, Contract Programming