コンビネータで数の計算をやろうとして、以下のような関数を用意した。
ネタ元は http://users.bigpond.net.au/d.keenan/Lambda/index.htm

k x y = x
i x = x
t x y = y x
v x y z = z x y

inc = v (k i)
dec = t (k i)
isZero = t k

zero = i
one = inc zero
two = inc one

で、検算用に10進数に変換する関数numを作ろうとした。
しかし、型推論が邪魔して(?)以下の関数が定義できない。

num n = isZero n 0 (num (dec n) + 1)

こういうときってどうやって対処すればいいの?