Summary

type-var unification for complex "pair" types not always right

Metadata

Description

Consider:

 (print (assq 'foo (the (pair (pair symbol fixnum) (pair (pair char fixnum) list)) x)))

Matching `(list-of (pair a b))` with the argument will unify a and b and then fail on the cdr of the pair type. This needs to be done analogous to a union type instead, so that multiple instantiations of the type variables are handled.

Changes and comments

[2012-01-17 11:39:28 UTC] felix set milestone to 4.8.0

[2012-01-30 08:38:56 UTC] felix changed status from new to closed

[2012-01-30 08:38:56 UTC] felix set resolution to fixed

[2012-09-24 21:47:48 UTC] felix changed milestone from 4.8.0 to 4.9.0

[2012-09-24 21:47:48 UTC] felix wrote:

Milestone 4.8.0 deleted