-- PairSolver.mesa
-- August 30, 1983 3:07 pm

DIRECTORY Lisp, JunoSolver, SolverCommon;

PairSolver: DEFINITIONS =
{OPEN SolverCommon;

Context: TYPE = REF ContextRec;

ContextRec: TYPE = RECORD [neq: Lisp.Value, pa: Lisp.Value, b: Lisp.Value];

NewContext: PROC RETURNS [Context];

Merge: PROC[x: Solvee, y: Solvee, eqin: Lisp.Value, pcon: Context]
RETURNS [eqout: Lisp.Value, rc: ResultCode];

Fix: PROC[u: REF, x: Solvee, eqin: Lisp.Value, pcon: Context]
RETURNS [eqout: Lisp.Value, rc: ResultCode];

IsPairOf: PROC[x, y, z: Solvee, eqin: Lisp.Value, pcon: Context]
RETURNS [eqout: Lisp.Value, rc: ResultCode];

Neq: PROC[u, v: Solvee, eqin: Lisp.Value] RETURNS [ResultCode];

}.