Jeff Davis <pgsql(at)j-davis(dot)com> writes:
> It's a little strange that we allow people to define functions with one
> argument and the same name as a type if such functions are confusing.
As long as your mental model is that such a function is a cast,
everything is fine. The trouble with the range constructors is that
they aren't really casts, as shown by the fact that when you read
textrange('foo')
you expect 'foo' to be text and not textrange.
regards, tom lane