TYPE= tests might be overzealous
It seems that it's possible for an implementation to return the following (see this thread):
CL-USER(3): (subtypep '(or null cons) 'list)
T
T
CL-USER(4): (subtypep 'list '(or null cons))
NIL
NIL
CL-USER(5): (subtypep 'null '(and symbol list))
T
T
CL-USER(6): (subtypep '(and symbol list) 'null)
NIL
NIL
It seems that the tests for TYPE=
do not take this into account and therefore they fail on ABCL.