// src/lisp/SExpr.ts

/**
 * S-Expression type - the wire format for LISP-on-Protocol
 *
 * S-expressions are represented as JSON arrays where:
 * - ["op", arg1, arg2, ...] represents a function application
 * - Primitives (string, number, boolean, null) are self-evaluating
 * - Nested arrays represent nested expressions
 *
 * @example
 * // Traditional LISP: (+ 1 2 (* 3 4))
 * // JSON wire format: ["+", 1, 2, ["*", 3, 4]]
 */
export type SExpr = string | number | boolean | null | SExpr[];
