pub fn shl(x: u64, n: u32) -> u128
x · 2ⁿ, exactly: below 2¹⁰¹, so it never overflows the u128.
x · 2ⁿ
u128