fn make_heap(&mut self, size: Int) {
    self.heap = IntS::new();
    self.heap.resize(size as usize, 0);
    self.clear();
  }
/** runtime areas:
  *
  * the heap contains code for clauses and their copies
  * created during execution
  *
  * the trail is an undo list for variable bindings
  * that facilitates retrying failed goals with alternative
  * matching clauses
  *
  * the unification stack ustack helps handling term unification non-recursively
  *
  * the spines stack contains abstractions of clauses and goals and performs the
  * functions of both a choice-point stack and goal stack
  *
  * imaps: contains indexes for up to MAXIND>0 arg positions (0 for pred symbol itself)
  *
  * vmaps: contains clause numbers for which vars occur in indexed arg positions
  */
runtime areas.

the heap contains code for clauses and their copies
created during execution

the trail is an undo list for variable bindings
that facilitates retrying failed goals with alternative
matching clauses

the unification stack ustack helps handling term unification non-recursively

the spines stack contains abstractions of clauses and goals and performs the
functions of both a choice-point stack and goal stack

contains indexes for up to MAXIND>0 arg positions (0 for pred symbol itself)

contains clause numbers for which vars occur in indexed arg positions
runtime areas . the heap contains code for clauses and their copies created during execution the trail is an undo list for variable bindings that facilitates retrying failed goals with alternative matching clauses the unification stack ustack helps handling term unification non - recursively the spines stack contains abstractions of clauses and goals and performs the functions of both a choice - point stack and goal stack contains indexes for up to MAXIND > 0 arg positions ( 0 for pred symbol itself ) contains clause numbers for which vars occur in indexed arg positions
fn make_heap(&mut self, size: Int) {
    self.heap = IntS::new();
    self.heap.resize(size as usize, 0);
    self.clear();
  }
fn make_heap ( & mut self , size : Int ) { self . heap = IntS :: new ( ) ; self . heap . resize ( size as usize , 0 ) ; self . clear ( ) ; }
runtime areas:
runtime areas :
&mut self
size
Int
&mut self
size
Int