Plus a b :: (result :: Nat) That looks quite unintuitive to me, since `result' reads like a variable of type Nat.