[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Types in Scheme

     It is with some regret and with anticipation of a barrage of heated
     replies that I make the following statements.  If the goals of our
     type predicates are to enable the writing of portable code and to make
     the writing of some other forms of code easier, then I believe that we
     really need two sets of type predicates: one based on the functionlity
     intended for an object and the other based on its representation.

I agree.  This is the old intensional versus extensional dichotomy,
made clear by Andy's message in which pairs could be implemented as
vectors and vice versa.  The portable type predicates want to be
extensional (does this object behave as a pair?), the unportable 
type predicates are intensional (is this object a pair?).  We obviously
want to ask both types of questions, and it is important that we keep
their differences clear.