(OR (AND LIST (PROG1 (CAR LIST) (SETQ LIST (CDR LIST)))) 'BARFOLA) does not compile correctly, losing in the case of a list whose CDR is NIL, since it is testing the second clause of the PROG1 for the AND.