As Yin and codekaizen pointed out, you cannot compose the two functions to create a function that passes the input to the first one and then passes the output of this call to the second function (that is, using th >> operator). Using a diagram, you cannot do:
+---------+ +---------+
--->| AddNums |--->| MulNums |--->
+---------+ +---------+
One option is to change the function and specify one of the parameters, so that the functions can be composed. The example by codekaizen uses this and could be also written like this (if you used currying instead of tupled parameters):
let AddNums x y = x + y
let MulNums x y = x * y
let FuncComp = (AddNums 1) >> (MulNums 2)
Another option for composing the functions is to create a function that takes several inputs, passes two numbers to the first function and then calls the second function with the result and another number from the original inputs. Using a diagram:
-----------------\
--->+---------+ \+---------+
--->| AddNums |--->| MulNums |--->
+---------+ +---------+
If you need something like that, then the best option is to write that directly, because this probably won't be a frequently repeated pattern. Directly, this is easy (using the curried variant):
let AddNums x y = x + y
let MulNums x y = x * y
let FuncComp x y z = AddNums z y |> (MulNums z)
If you wanted to write something like that more generally (or just for curiosity), you could write something like this (using the tupled version of functions this time). The &&& operator is inspired by Arrows:
let AddNums (x,y) = x + y
let MulNums (x,y) = x * y
let (&&&) f g (a, b) = (f a, g b)
let FuncComp = (AddNums &&& id) >> MulNums
// First two numbers are added, result is multiplied by the third one
FuncComp ((9, 12), 2) // Gives '42'
AddNum >> MulNums, the output of AddNums is a single number, thus not the valid input format of MulNums, which means the two functions simply do not composite. - Yin Zhu