library CauldronMath {
    /// @dev Add a number (which might be negative) to a positive, and revert if the result is negative.
    function add(uint128 x, int128 y) internal pure returns (uint128 z) {
        require (y > 0 || x >= uint128(-y), "Result below zero");
        z = y > 0 ? x + uint128(y) : x - uint128(-y);
    }
}
function add(uint128 x, int128 y) internal pure returns (uint128 z) {
    require (y > 0 || x >= uint128(-y), "Result below zero");
    z = y > 0 ? x + uint128(y) : x - uint128(-y);
}

/// @dev Add a number (which might be negative) to a positive, and revert if the result is negative.