def break(&block)
      raise Erlang::ImproperListError if improper?
      return span unless block_given?
      return span { |item| !yield(item) }
    end
def break(&block)
      raise Erlang::ImproperListError if improper?
      return span unless block_given?
      return span { |item| !yield(item) }
    end
Return two `List`s, one up to (but not including) the first item for which the
 block returns true, and another of all the remaining items.

 @example
   Erlang::List[1, 3, 4, 2, 5].break { |x| x > 3 }
   # => [Erlang::List[1, 3], Erlang::List[4, 2, 5]]

 @return [Array]
 @yield [item]