Range == set of outputs which the function can produce.
In any language, a type defines a set of values and some semantics for manipulating those values. It so happens that our way of defining common sets is to build a function whose range is some useful set.
Actually any gene (ie, expression) has a product range. It doesn't even need to be a function. So the range of the constant
[%foo %bar]
whatever the subject is, is always [%foo %bar], ie, the pair [7.303.014 7.496.034].