 void markobject (object *obj) {
   MARK:
   if (obj == NULL) return;
-  
+  if (marked(obj)) return;
+
   object* arg = car(obj);
-  if (marked(obj)) return;
-
   int type = obj->type;
   mark(obj);
   

const char string90[] PROGMEM = "zerop";
const char string91[] PROGMEM = "oddp";
const char string92[] PROGMEM = "evenp";
const char string93[] PROGMEM = "logand";
const char string94[] PROGMEM = "logior";
const char string95[] PROGMEM = "logxor";
const char string96[] PROGMEM = "lognot";
const char string97[] PROGMEM = "ash";
const char string98[] PROGMEM = "logbitp";
const char string99[] PROGMEM = "read";
const char string100[] PROGMEM = "eval";
const char string101[] PROGMEM = "globals";
const char string102[] PROGMEM = "locals";
const char string103[] PROGMEM = "makunbound";
const char string104[] PROGMEM = "break";
const char string105[] PROGMEM = "print";
const char string106[] PROGMEM = "princ";
const char string107[] PROGMEM = "write-byte";
const char string108[] PROGMEM = "read-byte";
const char string109[] PROGMEM = "restart-i2c";
const char string110[] PROGMEM = "gc";
const char string111[] PROGMEM = "room";
const char string112[] PROGMEM = "save-image";
const char string113[] PROGMEM = "load-image";
const char string114[] PROGMEM = "cls";
const char string115[] PROGMEM = "pinmode";
const char string116[] PROGMEM = "digitalread";
const char string117[] PROGMEM = "digitalwrite";
const char string118[] PROGMEM = "analogread";
const char string119[] PROGMEM = "analogwrite";
const char string120[] PROGMEM = "delay";
const char string121[] PROGMEM = "millis";
const char string122[] PROGMEM = "note";
const char string123[] PROGMEM = "edit";

const tbl_entry_t lookup_table[] PROGMEM = {
  { string0, NULL, NIL, NIL },

/* uLisp Version 1.5 - www.ulisp.com
   David Johnson-Davies - www.technoblogy.com - 24th January 2017

   Licensed under the MIT license: https://opensource.org/licenses/MIT
*/
