>
> > Because assume(gamma,real) shouldn't imply
> > that featurep(gamma(z), real) --> true.
If we must distinguish foo-valued functions from foo-valued variables (and
> I'm not sure that we do), let's have a function declaration, so that we
> don't need to invent a foovalued declaration for every declarable foo. E.g.,
> declare (F, [complex, function]) instead of declare (F, complexvalued) .
I think you need to declare F complex *as a function*, not just declare it
to be both complex and a function. After all, as Barton points out,
ordinary mathematical notation often uses the same symbol for both a
function and a constant.
So that would give us declare(function(F), complex) or declare(F(), complex)
or something....