Software Design/Don't omit function's signature (return type)

In some programming languages, the return type of a function could be omitted (and inferred by the compiler). In others, e. g. Haskell, the function's signature could be omitted entirely.

Why

 * Compatibility + robustness
 * Apparency of semantics
 * Reducing cognitive load

Why not

 * Software Design/Code size
 * Code clarity