Refinement types for Haskell | Synapse