move everything around and forward declare so that lbuiltin and lval can reference each other