def concat(*other)
      if other.size == 1 and (other[0].kind_of?(Erlang::Binary) or other[0].kind_of?(Erlang::Bitstring))
        other = other[0]
      else
        other = Erlang::Binary[*other]
      end
      return other if empty?
      return self if other.empty?
      if other.kind_of?(Erlang::Bitstring) and other.bits != 8
        return Erlang::Bitstring[@data, other.data, bits: other.bits]
      else
        return Erlang::Binary[@data, other.data]
      end
    end
def concat(*other)
      if other.size == 1 and (other[0].kind_of?(Erlang::Binary) or other[0].kind_of?(Erlang::Bitstring))
        other = other[0]
      else
        other = Erlang::Binary[*other]
      end
      return other if empty?
      return self if other.empty?
      if other.kind_of?(Erlang::Bitstring) and other.bits != 8
        return Erlang::Bitstring[@data, other.data, bits: other.bits]
      else
        return Erlang::Binary[@data, other.data]
      end
    end
Concatenates list of `Binary` or `Bitstring` items into a single `Binary` or `Bitstring`.

 @example
   Erlang::Binary["a"].concat(Erlang::Bitstring[3, bits: 3]).concat(Erlang::Bitstring[2, bits: 5])
   # => "ab"

 @param iodata [Binary, Bitstring] The list of bitstrings
 @return [Binary, Bitstring]