с любой рекурсивной функцией, должно быть как минимум 2 случая.
базовый случай и рекурсивный случай.
Чтобы сделать это более явным, использование выражения case (как и в случаях, которые я упоминал выше) приятно и легко для понимания.
mult a b = case b of
0 -> 0 -- the base case, multiply by 0 = 0
_ -> a + mult a (b-1) -- recursive addition case (_ matches anything
-- but 0 is already covered)