a * a, for any type with *.
a * a
*
assert(square(3) == 9 && square(1.5) == 2.25);
square :: (a: $T) -> T
a times itself.
a