// src/lisp/ILambdaClosure.ts

import type { SExpr } from './SExpr';

/**
 * Lambda closure representation
 */
export interface ILambdaClosure {
  __type: 'lambda';
  params: string[];
  body: SExpr;
  env: Record<string, unknown>;
  // Optional extensions for higher-order functions
  composed?: ILambdaClosure[];
  partial?: { fn: ILambdaClosure; args: unknown[] };
  complement?: ILambdaClosure;
  juxt?: ILambdaClosure[];
}
