If a generic function is defined to do something, allow a version to be defined that overrides that specific type. C++ does this, have it be something like that.
func foo[T](a: T): T >>
<whatever>...
--
func foo[Int](a: Int): Int >>
<something else>
--
If a generic function is defined to do something, allow a version to be defined that overrides that specific type. C++ does this, have it be something like that.