+ (some (lambda (union-type-type) (%%typep object union-type-type))
+ (union-type-types type)))
+ (intersection-type
+ (every (lambda (intersection-type-type)
+ (%%typep object intersection-type-type))
+ (intersection-type-types type)))
+ (cons-type
+ (and (consp object)
+ (%%typep (car object) (cons-type-car-type type))
+ (%%typep (cdr object) (cons-type-cdr-type type))))