Consider using exitWith, might also want to lazy eval the or.