Рассмотрим типы. (>>)
имеет тип ('a -> 'b) ->('b -> 'c) -> ('a -> 'c)
, но вы пытаетесь вызвать его с аргументами типа 'a -> ('b -> 'a*'b)
и obj * obj -> bool
, которые нельзя сделать так, чтобы они соответствовали друг другу.
Конечно, вы можете определить новый комбинатор для составления бинарных и унарных функций:
let ( >>* ) f g a b = f a b |> g
В этом случае вы можете использовать его в своем примере вместо (>>)
.