Dear Jon,
Thanks for your remarks.
Jon Fairbairn writes:
> Interesting. But why do you use Int rather than the Integer?
Ok, I admit that I should have used Integer. Moreover, in practice you
would like to use [a] when I use (Int -> a), as you'll notice.
> In particular
>
> > This gives some surprising results, e.g. that the type
> > ((Int->Bool)->Int) has decidable equality (for total elements).
>
> is not at all surprising, since Int (and Bool) is finite, so
> there are only finitely many total elements of that type :-)
> For Integer it is surprising,
Let me add that I don't count "seq" as part of the language, so that
two functions are equal iff they are equal at all arguments (i.e.,
functions are functions). But, with more trouble, it is possible to
consider the full language, although I don't find this particularly
illuminating.
Martin