language spec allow either
define fac(a: Int) =
if a == 0: return 1
return fac (a - 1)
or
define fac(a: Int) =
if a > 0: return fac (a - 1)
return 1
to successfully deducing fac: Function Int Int since one of the return statement is valid.
But currently implementation forces the return type declaration when function make recursive calls.
language spec allow either
or
to successfully deducing
fac: Function Int Intsince one of the return statement is valid.But currently implementation forces the return type declaration when function make recursive calls.