def array(*subschemas)
      subschemas = subschemas.map { |ss| inconvenience(ss) }

      if subschemas.count == 1
        Schemas::VariableLengthArray.new(subschemas.first)
      else
        Schemas::FixedLengthArray.new(subschemas)
      end
    end
def array(*subschemas)
      subschemas = subschemas.map { |ss| inconvenience(ss) }

      if subschemas.count == 1
        Schemas::VariableLengthArray.new(subschemas.first)
      else
        Schemas::FixedLengthArray.new(subschemas)
      end
    end
Creates a {Schemas::VariableLengthArray} if given one argument, otherwise
 creates a {Schemas::FixedLengthArray}

 @param subschemas [Array<schema>] one or more schema objects representing
   elements in the array.
 @return [Schemas::VariableLengthArray, Schemas::FixedLengthArray]

 @example (see Schemas::VariableLengthArray)
 @example (see Schemas::FixedLengthArray)