changed ::
  (Monad m)
  => String
  -> C.Term
  -> C.Term
  -> RewriteM (C.TransformSession m) [C.CoreContext] C.Term
changed tId prevTerm expr = do
  liftQ $ Label.modify C.tsTransformCounter (+1)
  --trace ("\n" ++ tId ++ "(before):\n" ++ pprString prevTerm ++ "\n\n" ++ tId ++ "(after):\n" ++ pprString expr) $ markM $ return expr
  --trace tId $ markM $ return expr
  markM $ return expr
changed ::
  (Monad m)
  => String
  -> C.Term
  -> C.Term
  -> RewriteM (C.TransformSession m) [C.CoreContext] C.Term
changed tId prevTerm expr = do
  liftQ $ Label.modify C.tsTransformCounter (+1)
  --trace ("\n" ++ tId ++ "(before):\n" ++ pprString prevTerm ++ "\n\n" ++ tId ++ "(after):\n" ++ pprString expr) $ markM $ return expr
  --trace tId $ markM $ return expr
  markM $ return expr
changed tId prevTerm expr = do
  liftQ $ Label.modify C.tsTransformCounter (+1)
  --trace ("\n" ++ tId ++ "(before):\n" ++ pprString prevTerm ++ "\n\n" ++ tId ++ "(after):\n" ++ pprString expr) $ markM $ return expr
  --trace tId $ markM $ return expr
  markM $ return expr