make.js
function _compare (hay, needle) {
    for(var i in set) {
      var x = u.get(hay, set[i]), y = needle[i]
      if(x !== y) return compare(x, y)
    }
    return 0
  }
function _compare (hay, needle) {
    for(var i in set) {
      var x = u.get(hay, set[i]), y = needle[i]
      if(x !== y) return compare(x, y)
    }
    return 0
  }
function _compare ( hay , needle ) { for ( var i in set ) { var x = u . get ( hay , set [ i ] ) , y = needle [ i ] if ( x !== y ) return compare ( x , y ) } return 0 }
we can use a different lookup path on the right hand object is always the "needle"
we can use a different lookup path on the right hand object is always the needle