         let shift = lhs.value.map{ $0 << DigitType(offset) } + [0]
         let carry = [0] + lhs.value.map{ $0 >> DigitType(32 - offset) }
         let value = zip(shift, carry).map { $0.0 | $0.1 }
-        var result = BigUInt(rawValue:blank + value)
-        result.trim()   // clean sentinel
-        return result
+        return BigUInt(rawValue:blank + value)
     }
     public static func bitShiftL(lhs:BigUInt, _ rhs:BigUInt)->BigUInt {
         return bitShiftL(lhs, rhs.asUInt32)

        for i in e..<b {
            value[i] = ((value[i+1] & mask) << oh) | (value[i] >> ol)
        }
        var result = BigUInt(rawValue:value)
        result.trim()   // clean sentinel
        return result
    }
    public static func bitShiftR(lhs:BigUInt, _ rhs:BigUInt)->BigUInt {
        return bitShiftR(lhs, rhs.asUInt32)

    public init(_ s:BigUInt) {
        self.value = s.value
    }
    // init from built-in types
    public init(_ u:UInt32) {
        value.append(u)
