#define CONS(G, CAR, CDR) cons_as_expr(create_cons(G, CAR, CDR))
#define NIL(G) SYMBOL(G, "nil")
+#define CAR(O) ((O).cons->car)
+#define CDR(O) ((O).cons->cdr)
+
enum ExprType
{
EXPR_ATOM = 0,
void destroy_expr(struct Expr expr);
void print_expr_as_sexpr(struct Expr expr);
+int expr_as_sexpr(struct Expr expr, char *output, size_t n);
// TODO(#337): EvalResult does not belong to expr unit
struct EvalResult