def variable_hash(subschemas)
      unless subschemas.is_a?(Hash) && subschemas.size == 1
        raise ArgumentError, 'argument must be a Hash of size 1'
      end

      key_schema, value_schema = subschemas.first
      Schemas::VariableHash.new(
        inconvenience(key_schema),
        inconvenience(value_schema),
      )
    end
def variable_hash(subschemas)
      unless subschemas.is_a?(Hash) && subschemas.size == 1
        raise ArgumentError, 'argument must be a Hash of size 1'
      end

      key_schema, value_schema = subschemas.first
      Schemas::VariableHash.new(
        inconvenience(key_schema),
        inconvenience(value_schema),
      )
    end
Creates a {Schemas::VariableHash} schema

 @param subschemas [Hash] A hash with a single key, and a single value.
   The key is a schema representing all keys.
   The value is a schema representing all values.
 @return [Schemas::VariableHash]

 @example (see Schemas::VariableHash)

 @see #fixed_hash