Currently the user has no way of knowing which domain a function is defined over. We should define e.g. ```jl domain(sqrt) = 0..Inf ``` or `domain_interval(sqrt)`.