litU :: (Monad m, Monoid dec, Monoid r)
  => Translate m dec C.Term r
litU = translate $ \e -> case e of
  (C.Literal x) -> return $ mempty
  _             -> fail "litU"
litU :: (Monad m, Monoid dec, Monoid r)
  => Translate m dec C.Term r
litU = translate $ \e -> case e of
  (C.Literal x) -> return $ mempty
  _             -> fail "litU"
litU = translate $ \e -> case e of
  (C.Literal x) -> return $ mempty
  _             -> fail "litU"