anchor.diff:    "Create a new instance of SAT solver."
     (cmsat-new))
   
  +(defun destroy-solver (solver)
  +  "Destroy solver instance, freeing up the memory."
  +  (cmsat-free solver))
  +
  +(defun get-vars-cnt (solver)
  +  "Return the total number of declared SAT variables."
  +  (cmsat-nvars solver))
  +
   (defun add-new-vars (solver cnt)
     "Add <cnt> new vars to the solver"
     (cmsat-new-vars solver cnt))
  
positive.code:   c-lbool
    (self (:pointer (:struct SATSolver))))
  
  (defcfun "cmsat_get_model"
    slice-lbool
    (self (:pointer (:struct SATSolver))))
  
  
  
negative.code: (defcstruct slice-lbool- (vals (:pointer c-lbool)) (num-vals :uint))
  (defctype slice-lbool (:struct slice-lbool-))
  
  (defcstruct slice-lit- (vals (:pointer c-lit)) (num-vals :uint))
  (defctype slice-lit (:struct slice-lit-))
  
  (defcfun "cmsat_new" (:pointer (:struct SATSolver)))
  
  (defcfun "cmsat_free" :void (solver (:pointer (:struct SATSolver))))
  
  (defcfun "cmsat_set_num_threads"
    :void
    (self (:pointer (:struct SATSolver))) (n :unsigned-int))
  
  (defcfun "cmsat_nvars" :unsigned-int (self (:pointer (:struct SATSolver))))
  
  (defcfun "cmsat_new_vars"
    :void
  