// Copyright (C) 2026 Industrial Algebra
// SPDX-License-Identifier: Apache-2.0
use HKT;
/// Monad transformer: lifts an inner monadic computation into the transformer stack.
///
/// Laws:
/// - `lift(pure(a))` == `pure(a)` (transformer's pure)
/// - `lift(chain(m, f))` == `chain(lift(m), |a| lift(f(a)))`
///
/// The `Clone` bound on `M::Of<A>` is required because some transformers
/// (ReaderT, StateT) wrap the lifted value in a closure that may be called
/// multiple times.