Is there someway I could do this in a point-free manner?

```
function intersectionAndDiffs([list1, list2]) {
return [intersection(list1)(list2), difference(list1)(list2), difference(list2)(list1)]
}
```

My initial thought is that I would need a special Tuple type in order to work with 2 values at the same time in point-free manner?

```
const intersectionAndDiffs = R.ap([
intersection,
difference,
R.flip(difference)
]);
```

/cc @thurt

Thank you @iamstarkov ! I wa starting to get there

`[intersection, difference, flip(difference)]`

This doesn't seem to work ? http://goo.gl/rlkOEm

If the functions are binary you end up with functions in the resulting array

so i need to apply the first input list and then apply the second input list?

you're trying to compose the functions right?

removing the console.log will show you what you're actually getting

i see, your right, a list of functions

does this work? http://goo.gl/t2RqIv

sure does! never seen juxt before

for me i find

`juxt`

easier to use than `ap`

when working with arrays as the final input
nice, thanks for the idea. I will have to study it a little more

Yeah, ap is more useful for other types like future/maybe/etc

also

is the same as

`lift(fn, [1], [2])`

is the same as

`ap(ap([fn], [1]), [2])`

@thurt @jethrolarson @kedashoe yeah, remaining part is you have to R.apply every function in input array