A function maps one input to one output... but why don't we make this bi-directional? A function must map an output to exactly one input.

[math]f(X) = f(Y) \iff X = Y[/math]

This seems like it would make it much easier to reason about things if outputs are unique.