evalStmt :: (Monad m) => Int -> FilterT a b m () -> m (Int, Statement)
evalStmt id (FilterT f) = do
  (_, x) <- f (id, Null)
  return x
evalStmt :: (Monad m) => Int -> FilterT a b m () -> m (Int, Statement)
evalStmt id (FilterT f) = do
  (_, x) <- f (id, Null)
  return x
evalStmt id (FilterT f) = do
  (_, x) <- f (id, Null)
  return x