zonk :: Subst.Zonk a => a -> TC a
zonk a = TC $
  do RW { .. } <- get
     Subst.zonk rwSubst a

-- | Calculate the free variables of a thing that has types.
--
-- NOTE: this will fail with if the type given is infinite.
zonk :: Subst.Zonk a => a -> TC a
zonk a = TC $
  do RW { .. } <- get
     Subst.zonk rwSubst a

-- | Calculate the free variables of a thing that has types.
--
-- NOTE: this will fail with if the type given is infinite.
zonk a = TC $
  do RW { .. } <- get
     Subst.zonk rwSubst a

-- | Calculate the free variables of a thing that has types.
--
-- NOTE: this will fail with if the type given is infinite.