
merge_suspension_lists(+Pos1, +Attr1, +Pos2, +Attr2)

   Destructively merge the suspension list on Pos1 in structure Attr1
into the suspension list on Pos2 in structure Attr2.



Arguments
   Pos1                Integer indicating the position of the suspension list.
   Attr1               Compound term, typically a variable's attribute.
   Pos2                Integer indicating the position of the suspension list.
   Attr2               Compound term, typically a variable's attribute.

Type
   Advanced Control and Suspensions

Description
   This predicate is used to merge two suspension lists. The list
   in Attr1 remains unaffected but the list in Attr2 is replaced
   by the merge of the two lists.


   Suspension lists should be regarded an opaque data structure and
   only be accessed and manipulated by the set of primitives provided
   for this purpose.




Modes and Determinism
   merge_suspension_lists(+, +, +, +) is det

Exceptions
     4 --- Pos1, Pos2, Attr1 or Attr2 is not instatiated.
     5 --- Pos1 or Pos2 is not an integer.
     5 --- Attr1 or Attr2 is not a structure or has no suspension list on the indicated argument position.
     6 --- Attr1 or Attr2 does not have a Position'th argument.

Examples
   





See Also
   insert_suspension / 3, insert_suspension / 4, schedule_suspensions / 2, init_suspension_list / 2, enter_suspension_list / 3
