splitted vampire_smt in two versions: vampire_smt_dt natively handles datatypes and vampire_smt_nodt does not
{- Author: Pascal Stoop, ETH Zurich
Author: Andreas Lochbihler, Digital Asset -}
module Lazy(Lazy, delay, force) where
newtype Lazy a = Lazy a
delay f = Lazy (f ())
force (Lazy x) = x