docs: function detailRange(cards) {
    if (cache.has(cards)) return cache.get(cards)
  
    var [ r1, r2, suitedness ] = cards
    if (r1 === r2) return addPairDetails(r1, new Set())
  
    if (ranks.indexOf(r1) > ranks.indexOf(r2)) {
      const tmp = r1; r1 = r2; r2 = tmp
    }
  
    var res
    if (suitedness === 's') res = addSuitedDetails(r1, r2, new Set())
    else if (suitedness === 'o') res = addOffsuitDetails(r1, r2, new Set())
    else res = addOffsuitAndSuitedDetails(r1, r2, new Set())
    cache.set(cards, res)
    return res
  }