# File lib/arr-pm/file.rb, line 142
  def relation(type)
    name = "#{type}name".to_sym
    flags = "#{type}flags".to_sym
    version = "#{type}version".to_sym
    # There is no data if we are missing all 3 tag types (name/flags/version)
    # FYI: 'tags.keys' is an array, Array#& does set intersection. 
    return [] if (tags.keys & [name, flags, version]).size != 3
    # Find tags <type>name, <type>flags, and <type>version, and return
    # an array of "name operator version"
    return tags[name].zip(tags[flags], tags[version]) \
      .reduce([]) { |memo, (n,o,v)| memo << [n, operator(o), v] }
  end