]> Repositorios git - scryer-prolog.git/commitdiff
run rustfmt to fix formatting
authorSkgland <[email protected]>
Sat, 10 Jan 2026 17:31:40 +0000 (18:31 +0100)
committerBennet Bleßmann <[email protected]>
Sat, 10 Jan 2026 17:31:40 +0000 (18:31 +0100)
build/instructions_template.rs
src/ffi.rs
src/instructions.rs
tests/scryer/src_tests.rs

index a2878bfeab8d1b07ac9abf9d5c714cfca1b2c0d0..16f37bcb3b4f4137237f0f23fba6b7338f5aa2e8 100644 (file)
@@ -1683,7 +1683,6 @@ pub fn generate_instructions_rs() -> TokenStream {
         })
         .collect();
 
-
     quote! {
         #[allow(clippy::enum_variant_names)]
         #[derive(Clone, Debug)]
index e2e996f2787b4447cf273f1e1f8156a4eae598f9..c1762fb625ec31180c0e81ae1b77649750f59a71 100644 (file)
@@ -975,7 +975,7 @@ pub enum FfiError {
     ArgCountMismatch {
         name: Atom, // ffi function or struct
         kind: ArgCountMismatchKind,
-        
+
         #[allow(dead_code, reason = "will be used by PR 3173")]
         expected: usize,
         got: usize,
index 0467feccc735134a5d9162d1f9c8d8ef3b8b7e8e..076c267262861b20a669b60960ffd1ecca80d67a 100644 (file)
@@ -148,7 +148,7 @@ impl IndexingCodePtr {
             IndexingCodePtr::Internal(o) => functor!(atom!("internal"), [fixnum(o)]),
             IndexingCodePtr::Fail => {
                 functor!(atom!("fail"))
-            },
+            }
         }
     }
 
@@ -175,31 +175,26 @@ impl IndexingInstruction {
                     ]
                 )
             }
-            IndexingInstruction::SwitchOnConstant(constants) => {
-                variadic_functor(
-                    atom!("switch_on_constants"),
-                    1,
-                    constants.iter().map(|(c, ptr)| {
-                        functor!(
-                            atom!(":"),
-                            [cell((*c)), indexing_code_ptr((*ptr))]
-                        )
-                    }),
-                )
-            }
-            IndexingInstruction::SwitchOnStructure(structures) => {
-                variadic_functor(
-                    atom!("switch_on_structure"),
-                    1,
-                    structures.iter().map(|((name, arity), ptr)| {
-                        functor!(
-                            atom!(":"),
-                            [functor((atom!("/")), [atom_as_cell(name), fixnum((*arity))]),
-                                indexing_code_ptr((*ptr))]
-                        )
-                    }),
-                )
-            }
+            IndexingInstruction::SwitchOnConstant(constants) => variadic_functor(
+                atom!("switch_on_constants"),
+                1,
+                constants
+                    .iter()
+                    .map(|(c, ptr)| functor!(atom!(":"), [cell((*c)), indexing_code_ptr((*ptr))])),
+            ),
+            IndexingInstruction::SwitchOnStructure(structures) => variadic_functor(
+                atom!("switch_on_structure"),
+                1,
+                structures.iter().map(|((name, arity), ptr)| {
+                    functor!(
+                        atom!(":"),
+                        [
+                            functor((atom!("/")), [atom_as_cell(name), fixnum((*arity))]),
+                            indexing_code_ptr((*ptr))
+                        ]
+                    )
+                }),
+            ),
         }
     }
 }
@@ -246,9 +241,7 @@ fn arith_instr_bin_functor(
     let at_1_stub = at_1.into_functor(arena);
     let at_2_stub = at_2.into_functor(arena);
 
-    functor!(name, [functor(at_1_stub),
-                    functor(at_2_stub),
-                    fixnum(t)])
+    functor!(name, [functor(at_1_stub), functor(at_2_stub), fixnum(t)])
 }
 
 pub type Code = Vec<Instruction>;
@@ -271,11 +264,7 @@ impl Instruction {
         }
     }
 
-    pub fn enqueue_functors(
-        &self,
-        arena: &mut Arena,
-        functors: &mut Vec<MachineStub>,
-    ) {
+    pub fn enqueue_functors(&self, arena: &mut Arena, functors: &mut Vec<MachineStub>) {
         match self {
             Instruction::IndexingCode(indexing_instrs) => {
                 for indexing_instr in indexing_instrs {
@@ -292,8 +281,8 @@ impl Instruction {
                         }
                         IndexingLine::DynamicIndexedChoice(indexed_choice_instrs) => {
                             for indexed_choice_instr in indexed_choice_instrs {
-                                let section = functor!(atom!("dynamic"),
-                                                        [fixnum((*indexed_choice_instr))]);
+                                let section =
+                                    functor!(atom!("dynamic"), [fixnum((*indexed_choice_instr))]);
                                 functors.push(section);
                             }
                         }
@@ -309,35 +298,37 @@ impl Instruction {
             &Instruction::RunVerifyAttr => {
                 functor!(atom!("run_verify_attr"))
             }
-            &Instruction::DynamicElse(birth, death, next_or_fail) => {
-                match (death, next_or_fail) {
-                    (Death::Infinity, NextOrFail::Next(i)) => {
-                        functor!(
-                            atom!("dynamic_else"),
-                            [fixnum(birth), atom_as_cell((atom!("inf"))), fixnum(i)]
-                        )
-                    }
-                    (Death::Infinity, NextOrFail::Fail(i)) => {
-                        functor!(
-                            atom!("dynamic_else"),
-                            [fixnum(birth),
-                                atom_as_cell((atom!("inf"))),
-                                functor((atom!("fail")), [fixnum(i)])]
-                        )
-                    }
-                    (Death::Finite(d), NextOrFail::Fail(i)) => {
-                        functor!(
-                            atom!("dynamic_else"),
-                            [fixnum(birth),
-                                fixnum(d),
-                                functor((atom!("fail")), [fixnum(i)])]
-                        )
-                    }
-                    (Death::Finite(d), NextOrFail::Next(i)) => {
-                        functor!(atom!("dynamic_else"), [fixnum(birth), fixnum(d), fixnum(i)])
-                    }
+            &Instruction::DynamicElse(birth, death, next_or_fail) => match (death, next_or_fail) {
+                (Death::Infinity, NextOrFail::Next(i)) => {
+                    functor!(
+                        atom!("dynamic_else"),
+                        [fixnum(birth), atom_as_cell((atom!("inf"))), fixnum(i)]
+                    )
                 }
-            }
+                (Death::Infinity, NextOrFail::Fail(i)) => {
+                    functor!(
+                        atom!("dynamic_else"),
+                        [
+                            fixnum(birth),
+                            atom_as_cell((atom!("inf"))),
+                            functor((atom!("fail")), [fixnum(i)])
+                        ]
+                    )
+                }
+                (Death::Finite(d), NextOrFail::Fail(i)) => {
+                    functor!(
+                        atom!("dynamic_else"),
+                        [
+                            fixnum(birth),
+                            fixnum(d),
+                            functor((atom!("fail")), [fixnum(i)])
+                        ]
+                    )
+                }
+                (Death::Finite(d), NextOrFail::Next(i)) => {
+                    functor!(atom!("dynamic_else"), [fixnum(birth), fixnum(d), fixnum(i)])
+                }
+            },
             &Instruction::DynamicInternalElse(birth, death, next_or_fail) => {
                 match (death, next_or_fail) {
                     (Death::Infinity, NextOrFail::Next(i)) => {
@@ -349,17 +340,21 @@ impl Instruction {
                     (Death::Infinity, NextOrFail::Fail(i)) => {
                         functor!(
                             atom!("dynamic_internal_else"),
-                            [fixnum(birth),
+                            [
+                                fixnum(birth),
                                 atom_as_cell((atom!("inf"))),
-                                functor((atom!("fail")), [fixnum(i)])]
+                                functor((atom!("fail")), [fixnum(i)])
+                            ]
                         )
                     }
                     (Death::Finite(d), NextOrFail::Fail(i)) => {
                         functor!(
                             atom!("dynamic_internal_else"),
-                            [fixnum(birth),
+                            [
+                                fixnum(birth),
                                 fixnum(d),
-                                functor((atom!("fail")), [fixnum(i)])]
+                                functor((atom!("fail")), [fixnum(i)])
+                            ]
                         )
                     }
                     (Death::Finite(d), NextOrFail::Next(i)) => {
@@ -468,39 +463,17 @@ impl Instruction {
             &Instruction::Gcd(ref at_1, ref at_2, t) => {
                 arith_instr_bin_functor(atom!("gcd"), arena, at_1, at_2, t)
             }
-            &Instruction::Sign(ref at, t) => {
-                arith_instr_unary_functor(atom!("sign"), arena, at, t)
-            }
-            &Instruction::Cos(ref at, t) => {
-                arith_instr_unary_functor(atom!("cos"), arena, at, t)
-            }
-            &Instruction::Sin(ref at, t) => {
-                arith_instr_unary_functor(atom!("sin"), arena, at, t)
-            }
-            &Instruction::Tan(ref at, t) => {
-                arith_instr_unary_functor(atom!("tan"), arena, at, t)
-            }
-            &Instruction::Log(ref at, t) => {
-                arith_instr_unary_functor(atom!("log"), arena, at, t)
-            }
-            &Instruction::Exp(ref at, t) => {
-                arith_instr_unary_functor(atom!("exp"), arena, at, t)
-            }
-            &Instruction::ACos(ref at, t) => {
-                arith_instr_unary_functor(atom!("acos"), arena, at, t)
-            }
-            &Instruction::ASin(ref at, t) => {
-                arith_instr_unary_functor(atom!("asin"), arena, at, t)
-            }
-            &Instruction::ATan(ref at, t) => {
-                arith_instr_unary_functor(atom!("atan"), arena, at, t)
-            }
-            &Instruction::Sqrt(ref at, t) => {
-                arith_instr_unary_functor(atom!("sqrt"), arena, at, t)
-            }
-            &Instruction::Abs(ref at, t) => {
-                arith_instr_unary_functor(atom!("abs"), arena, at, t)
-            }
+            &Instruction::Sign(ref at, t) => arith_instr_unary_functor(atom!("sign"), arena, at, t),
+            &Instruction::Cos(ref at, t) => arith_instr_unary_functor(atom!("cos"), arena, at, t),
+            &Instruction::Sin(ref at, t) => arith_instr_unary_functor(atom!("sin"), arena, at, t),
+            &Instruction::Tan(ref at, t) => arith_instr_unary_functor(atom!("tan"), arena, at, t),
+            &Instruction::Log(ref at, t) => arith_instr_unary_functor(atom!("log"), arena, at, t),
+            &Instruction::Exp(ref at, t) => arith_instr_unary_functor(atom!("exp"), arena, at, t),
+            &Instruction::ACos(ref at, t) => arith_instr_unary_functor(atom!("acos"), arena, at, t),
+            &Instruction::ASin(ref at, t) => arith_instr_unary_functor(atom!("asin"), arena, at, t),
+            &Instruction::ATan(ref at, t) => arith_instr_unary_functor(atom!("atan"), arena, at, t),
+            &Instruction::Sqrt(ref at, t) => arith_instr_unary_functor(atom!("sqrt"), arena, at, t),
+            &Instruction::Abs(ref at, t) => arith_instr_unary_functor(atom!("abs"), arena, at, t),
             &Instruction::Float(ref at, t) => {
                 arith_instr_unary_functor(atom!("float"), arena, at, t)
             }
@@ -522,24 +495,11 @@ impl Instruction {
             &Instruction::FloatIntegerPart(ref at, t) => {
                 arith_instr_unary_functor(atom!("float_integer_part"), arena, at, t)
             }
-            &Instruction::Neg(ref at, t) => arith_instr_unary_functor(
-                atom!("-"),
-                arena,
-                at,
-                t,
-            ),
-            &Instruction::Plus(ref at, t) => arith_instr_unary_functor(
-                atom!("+"),
-                arena,
-                at,
-                t,
-            ),
-            &Instruction::BitwiseComplement(ref at, t) => arith_instr_unary_functor(
-                atom!("\\"),
-                arena,
-                at,
-                t,
-            ),
+            &Instruction::Neg(ref at, t) => arith_instr_unary_functor(atom!("-"), arena, at, t),
+            &Instruction::Plus(ref at, t) => arith_instr_unary_functor(atom!("+"), arena, at, t),
+            &Instruction::BitwiseComplement(ref at, t) => {
+                arith_instr_unary_functor(atom!("\\"), arena, at, t)
+            }
             &Instruction::IndexingCode(_) => {
                 // this case is covered in enqueue_functors, which
                 // should be called instead (to_functor is a private
@@ -559,7 +519,10 @@ impl Instruction {
                 functor!(atom!("call_default"), [atom_as_cell(name), fixnum(arity)])
             }
             &Instruction::DefaultExecuteNamed(arity, name, ..) => {
-                functor!(atom!("execute_default"), [atom_as_cell(name), fixnum(arity)])
+                functor!(
+                    atom!("execute_default"),
+                    [atom_as_cell(name), fixnum(arity)]
+                )
             }
             &Instruction::CallN(arity) => {
                 functor!(atom!("call_n"), [fixnum(arity)])
@@ -579,657 +542,664 @@ impl Instruction {
             &Instruction::ExecuteFastCallN(arity) => {
                 functor!(atom!("execute_fast_call_n"), [fixnum(arity)])
             }
-            &Instruction::CallTermGreaterThan |
-            &Instruction::CallTermLessThan |
-            &Instruction::CallTermGreaterThanOrEqual |
-            &Instruction::CallTermLessThanOrEqual |
-            &Instruction::CallTermEqual |
-            &Instruction::CallTermNotEqual |
-            &Instruction::CallNumberGreaterThan(..) |
-            &Instruction::CallNumberLessThan(..) |
-            &Instruction::CallNumberGreaterThanOrEqual(..) |
-            &Instruction::CallNumberLessThanOrEqual(..) |
-            &Instruction::CallNumberEqual(..) |
-            &Instruction::CallNumberNotEqual(..) |
-            &Instruction::CallIs(..) |
-            &Instruction::CallAcyclicTerm |
-            &Instruction::CallArg |
-            &Instruction::CallCompare |
-            &Instruction::CallCopyTerm |
-            &Instruction::CallFunctor |
-            &Instruction::CallGround |
-            &Instruction::CallKeySort |
-            &Instruction::CallSort |
-            &Instruction::CallGetNumber(_) => {
+            &Instruction::CallTermGreaterThan
+            | &Instruction::CallTermLessThan
+            | &Instruction::CallTermGreaterThanOrEqual
+            | &Instruction::CallTermLessThanOrEqual
+            | &Instruction::CallTermEqual
+            | &Instruction::CallTermNotEqual
+            | &Instruction::CallNumberGreaterThan(..)
+            | &Instruction::CallNumberLessThan(..)
+            | &Instruction::CallNumberGreaterThanOrEqual(..)
+            | &Instruction::CallNumberLessThanOrEqual(..)
+            | &Instruction::CallNumberEqual(..)
+            | &Instruction::CallNumberNotEqual(..)
+            | &Instruction::CallIs(..)
+            | &Instruction::CallAcyclicTerm
+            | &Instruction::CallArg
+            | &Instruction::CallCompare
+            | &Instruction::CallCopyTerm
+            | &Instruction::CallFunctor
+            | &Instruction::CallGround
+            | &Instruction::CallKeySort
+            | &Instruction::CallSort
+            &Instruction::CallGetNumber(_) => {
                 let (name, arity) = self.to_name_and_arity();
                 functor!(atom!("call"), [atom_as_cell(name), fixnum(arity)])
             }
             //
-            &Instruction::ExecuteTermGreaterThan |
-            &Instruction::ExecuteTermLessThan |
-            &Instruction::ExecuteTermGreaterThanOrEqual |
-            &Instruction::ExecuteTermLessThanOrEqual |
-            &Instruction::ExecuteTermEqual |
-            &Instruction::ExecuteTermNotEqual |
-            &Instruction::ExecuteNumberGreaterThan(..) |
-            &Instruction::ExecuteNumberLessThan(..) |
-            &Instruction::ExecuteNumberGreaterThanOrEqual(..) |
-            &Instruction::ExecuteNumberLessThanOrEqual(..) |
-            &Instruction::ExecuteNumberEqual(..) |
-            &Instruction::ExecuteNumberNotEqual(..) |
-            &Instruction::ExecuteAcyclicTerm |
-            &Instruction::ExecuteArg |
-            &Instruction::ExecuteCompare |
-            &Instruction::ExecuteCopyTerm |
-            &Instruction::ExecuteFunctor |
-            &Instruction::ExecuteGround |
-            &Instruction::ExecuteIs(..) |
-            &Instruction::ExecuteKeySort |
-            &Instruction::ExecuteSort |
-            &Instruction::ExecuteGetNumber(_) => {
+            &Instruction::ExecuteTermGreaterThan
+            | &Instruction::ExecuteTermLessThan
+            | &Instruction::ExecuteTermGreaterThanOrEqual
+            | &Instruction::ExecuteTermLessThanOrEqual
+            | &Instruction::ExecuteTermEqual
+            | &Instruction::ExecuteTermNotEqual
+            | &Instruction::ExecuteNumberGreaterThan(..)
+            | &Instruction::ExecuteNumberLessThan(..)
+            | &Instruction::ExecuteNumberGreaterThanOrEqual(..)
+            | &Instruction::ExecuteNumberLessThanOrEqual(..)
+            | &Instruction::ExecuteNumberEqual(..)
+            | &Instruction::ExecuteNumberNotEqual(..)
+            | &Instruction::ExecuteAcyclicTerm
+            | &Instruction::ExecuteArg
+            | &Instruction::ExecuteCompare
+            | &Instruction::ExecuteCopyTerm
+            | &Instruction::ExecuteFunctor
+            | &Instruction::ExecuteGround
+            | &Instruction::ExecuteIs(..)
+            | &Instruction::ExecuteKeySort
+            | &Instruction::ExecuteSort
+            &Instruction::ExecuteGetNumber(_) => {
                 let (name, arity) = self.to_name_and_arity();
                 functor!(atom!("execute"), [atom_as_cell(name), fixnum(arity)])
             }
             //
-            &Instruction::DefaultCallTermGreaterThan |
-            &Instruction::DefaultCallTermLessThan |
-            &Instruction::DefaultCallTermGreaterThanOrEqual |
-            &Instruction::DefaultCallTermLessThanOrEqual |
-            &Instruction::DefaultCallTermEqual |
-            &Instruction::DefaultCallTermNotEqual |
-            &Instruction::DefaultCallNumberGreaterThan(..) |
-            &Instruction::DefaultCallNumberLessThan(..) |
-            &Instruction::DefaultCallNumberGreaterThanOrEqual(..) |
-            &Instruction::DefaultCallNumberLessThanOrEqual(..) |
-            &Instruction::DefaultCallNumberEqual(..) |
-            &Instruction::DefaultCallNumberNotEqual(..) |
-            &Instruction::DefaultCallAcyclicTerm |
-            &Instruction::DefaultCallArg |
-            &Instruction::DefaultCallCompare |
-            &Instruction::DefaultCallCopyTerm |
-            &Instruction::DefaultCallFunctor |
-            &Instruction::DefaultCallGround |
-            &Instruction::DefaultCallIs(..) |
-            &Instruction::DefaultCallKeySort |
-            &Instruction::DefaultCallSort |
-            &Instruction::DefaultCallGetNumber(_) => {
+            &Instruction::DefaultCallTermGreaterThan
+            | &Instruction::DefaultCallTermLessThan
+            | &Instruction::DefaultCallTermGreaterThanOrEqual
+            | &Instruction::DefaultCallTermLessThanOrEqual
+            | &Instruction::DefaultCallTermEqual
+            | &Instruction::DefaultCallTermNotEqual
+            | &Instruction::DefaultCallNumberGreaterThan(..)
+            | &Instruction::DefaultCallNumberLessThan(..)
+            | &Instruction::DefaultCallNumberGreaterThanOrEqual(..)
+            | &Instruction::DefaultCallNumberLessThanOrEqual(..)
+            | &Instruction::DefaultCallNumberEqual(..)
+            | &Instruction::DefaultCallNumberNotEqual(..)
+            | &Instruction::DefaultCallAcyclicTerm
+            | &Instruction::DefaultCallArg
+            | &Instruction::DefaultCallCompare
+            | &Instruction::DefaultCallCopyTerm
+            | &Instruction::DefaultCallFunctor
+            | &Instruction::DefaultCallGround
+            | &Instruction::DefaultCallIs(..)
+            | &Instruction::DefaultCallKeySort
+            | &Instruction::DefaultCallSort
+            &Instruction::DefaultCallGetNumber(_) => {
                 let (name, arity) = self.to_name_and_arity();
                 functor!(atom!("call_default"), [atom_as_cell(name), fixnum(arity)])
             }
             //
-            &Instruction::DefaultExecuteTermGreaterThan |
-            &Instruction::DefaultExecuteTermLessThan |
-            &Instruction::DefaultExecuteTermGreaterThanOrEqual |
-            &Instruction::DefaultExecuteTermLessThanOrEqual |
-            &Instruction::DefaultExecuteTermEqual |
-            &Instruction::DefaultExecuteTermNotEqual |
-            &Instruction::DefaultExecuteNumberGreaterThan(..) |
-            &Instruction::DefaultExecuteNumberLessThan(..) |
-            &Instruction::DefaultExecuteNumberGreaterThanOrEqual(..) |
-            &Instruction::DefaultExecuteNumberLessThanOrEqual(..) |
-            &Instruction::DefaultExecuteNumberEqual(..) |
-            &Instruction::DefaultExecuteNumberNotEqual(..) |
-            &Instruction::DefaultExecuteAcyclicTerm |
-            &Instruction::DefaultExecuteArg |
-            &Instruction::DefaultExecuteCompare |
-            &Instruction::DefaultExecuteCopyTerm |
-            &Instruction::DefaultExecuteFunctor |
-            &Instruction::DefaultExecuteGround |
-            &Instruction::DefaultExecuteIs(..) |
-            &Instruction::DefaultExecuteKeySort |
-            &Instruction::DefaultExecuteSort |
-            &Instruction::DefaultExecuteGetNumber(_) => {
+            &Instruction::DefaultExecuteTermGreaterThan
+            | &Instruction::DefaultExecuteTermLessThan
+            | &Instruction::DefaultExecuteTermGreaterThanOrEqual
+            | &Instruction::DefaultExecuteTermLessThanOrEqual
+            | &Instruction::DefaultExecuteTermEqual
+            | &Instruction::DefaultExecuteTermNotEqual
+            | &Instruction::DefaultExecuteNumberGreaterThan(..)
+            | &Instruction::DefaultExecuteNumberLessThan(..)
+            | &Instruction::DefaultExecuteNumberGreaterThanOrEqual(..)
+            | &Instruction::DefaultExecuteNumberLessThanOrEqual(..)
+            | &Instruction::DefaultExecuteNumberEqual(..)
+            | &Instruction::DefaultExecuteNumberNotEqual(..)
+            | &Instruction::DefaultExecuteAcyclicTerm
+            | &Instruction::DefaultExecuteArg
+            | &Instruction::DefaultExecuteCompare
+            | &Instruction::DefaultExecuteCopyTerm
+            | &Instruction::DefaultExecuteFunctor
+            | &Instruction::DefaultExecuteGround
+            | &Instruction::DefaultExecuteIs(..)
+            | &Instruction::DefaultExecuteKeySort
+            | &Instruction::DefaultExecuteSort
+            &Instruction::DefaultExecuteGetNumber(_) => {
                 let (name, arity) = self.to_name_and_arity();
-                functor!(atom!("execute_default"), [atom_as_cell(name), fixnum(arity)])
-            }
-            &Instruction::CallIsAtom(r) |
-            &Instruction::CallIsAtomic(r) |
-            &Instruction::CallIsCompound(r) |
-            &Instruction::CallIsInteger(r) |
-            &Instruction::CallIsNumber(r) |
-            &Instruction::CallIsRational(r) |
-            &Instruction::CallIsFloat(r) |
-            &Instruction::CallIsNonVar(r) |
-            &Instruction::CallIsVar(r) => {
+                functor!(
+                    atom!("execute_default"),
+                    [atom_as_cell(name), fixnum(arity)]
+                )
+            }
+            &Instruction::CallIsAtom(r)
+            | &Instruction::CallIsAtomic(r)
+            | &Instruction::CallIsCompound(r)
+            | &Instruction::CallIsInteger(r)
+            | &Instruction::CallIsNumber(r)
+            | &Instruction::CallIsRational(r)
+            | &Instruction::CallIsFloat(r)
+            | &Instruction::CallIsNonVar(r)
+            | &Instruction::CallIsVar(r) => {
                 let (name, arity) = self.to_name_and_arity();
                 let rt_stub = reg_type_into_functor(r);
 
-                functor!(atom!("call"), [atom_as_cell(name), fixnum(arity), functor(rt_stub)])
-            }
-            &Instruction::ExecuteIsAtom(r) |
-            &Instruction::ExecuteIsAtomic(r) |
-            &Instruction::ExecuteIsCompound(r) |
-            &Instruction::ExecuteIsInteger(r) |
-            &Instruction::ExecuteIsNumber(r) |
-            &Instruction::ExecuteIsRational(r) |
-            &Instruction::ExecuteIsFloat(r) |
-            &Instruction::ExecuteIsNonVar(r) |
-            &Instruction::ExecuteIsVar(r) => {
+                functor!(
+                    atom!("call"),
+                    [atom_as_cell(name), fixnum(arity), functor(rt_stub)]
+                )
+            }
+            &Instruction::ExecuteIsAtom(r)
+            | &Instruction::ExecuteIsAtomic(r)
+            | &Instruction::ExecuteIsCompound(r)
+            | &Instruction::ExecuteIsInteger(r)
+            | &Instruction::ExecuteIsNumber(r)
+            | &Instruction::ExecuteIsRational(r)
+            | &Instruction::ExecuteIsFloat(r)
+            | &Instruction::ExecuteIsNonVar(r)
+            | &Instruction::ExecuteIsVar(r) => {
                 let (name, arity) = self.to_name_and_arity();
                 let rt_stub = reg_type_into_functor(r);
 
-                functor!(atom!("execute"), [atom_as_cell(name), fixnum(arity), functor(rt_stub)])
+                functor!(
+                    atom!("execute"),
+                    [atom_as_cell(name), fixnum(arity), functor(rt_stub)]
+                )
             }
             //
-            &Instruction::CallAtomChars |
-            &Instruction::CallAtomCodes |
-            &Instruction::CallAtomLength |
-            &Instruction::CallBindFromRegister |
-            &Instruction::CallContinuation |
-            &Instruction::CallCharCode |
-            &Instruction::CallCharType |
-            &Instruction::CallCharsToNumber |
-            &Instruction::CallCodesToNumber |
-            &Instruction::CallCopyTermWithoutAttrVars |
-            &Instruction::CallCheckCutPoint |
-            &Instruction::CallClose |
-            &Instruction::CallCopyToLiftedHeap |
-            &Instruction::CallCreatePartialString |
-            &Instruction::CallCurrentHostname |
-            &Instruction::CallCurrentInput |
-            &Instruction::CallCurrentOutput |
-            &Instruction::CallDirectoryFiles |
-            &Instruction::CallFileSize |
-            &Instruction::CallFileExists |
-            &Instruction::CallDirectoryExists |
-            &Instruction::CallDirectorySeparator |
-            &Instruction::CallMakeDirectory |
-            &Instruction::CallMakeDirectoryPath |
-            &Instruction::CallDeleteFile |
-            &Instruction::CallRenameFile |
-            &Instruction::CallFileCopy |
-            &Instruction::CallWorkingDirectory |
-            &Instruction::CallDeleteDirectory |
-            &Instruction::CallPathCanonical |
-            &Instruction::CallFileTime |
-            &Instruction::CallDynamicModuleResolution(..) |
-            &Instruction::CallPrepareCallClause(..) |
-            &Instruction::CallCompileInlineOrExpandedGoal |
-            &Instruction::CallIsExpandedOrInlined |
-            &Instruction::CallGetClauseP |
-            &Instruction::CallInvokeClauseAtP |
-            &Instruction::CallGetFromAttributedVarList |
-            &Instruction::CallPutToAttributedVarList |
-            &Instruction::CallDeleteFromAttributedVarList |
-            &Instruction::CallDeleteAllAttributesFromVar |
-            &Instruction::CallUnattributedVar |
-            &Instruction::CallGetDBRefs |
-            &Instruction::CallKeySortWithConstantVarOrdering |
-            &Instruction::CallInferenceLimitExceeded |
-            &Instruction::CallFetchGlobalVar |
-            &Instruction::CallFirstStream |
-            &Instruction::CallFlushOutput |
-            &Instruction::CallGetByte |
-            &Instruction::CallGetChar |
-            &Instruction::CallGetNChars |
-            &Instruction::CallGetCode |
-            &Instruction::CallGetSingleChar |
-            &Instruction::CallTruncateIfNoLiftedHeapGrowthDiff |
-            &Instruction::CallTruncateIfNoLiftedHeapGrowth |
-            &Instruction::CallGetAttributedVariableList |
-            &Instruction::CallGetAttrVarQueueDelimiter |
-            &Instruction::CallGetAttrVarQueueBeyond |
-            &Instruction::CallGetBValue |
-            &Instruction::CallGetContinuationChunk |
-            &Instruction::CallGetNextOpDBRef |
-            &Instruction::CallLookupDBRef |
-            &Instruction::CallIsPartialString |
-            &Instruction::CallHalt |
-            &Instruction::CallGetLiftedHeapFromOffset |
-            &Instruction::CallGetLiftedHeapFromOffsetDiff |
-            &Instruction::CallGetSCCCleaner |
-            &Instruction::CallHeadIsDynamic |
-            &Instruction::CallInstallSCCCleaner |
-            &Instruction::CallInstallInferenceCounter |
-            &Instruction::CallInferenceCount |
-            &Instruction::CallLiftedHeapLength |
-            &Instruction::CallLoadLibraryAsStream |
-            &Instruction::CallModuleExists |
-            &Instruction::CallNextEP |
-            &Instruction::CallNoSuchPredicate |
-            &Instruction::CallNumberToChars |
-            &Instruction::CallNumberToCodes |
-            &Instruction::CallOpDeclaration |
-            &Instruction::CallOpen |
-            &Instruction::CallSetStreamOptions |
-            &Instruction::CallNextStream |
-            &Instruction::CallPartialStringTail |
-            &Instruction::CallPeekByte |
-            &Instruction::CallPeekChar |
-            &Instruction::CallPeekCode |
-            &Instruction::CallPointsToContinuationResetMarker |
-            &Instruction::CallPutByte |
-            &Instruction::CallPutChar |
-            &Instruction::CallPutChars |
-            &Instruction::CallPutCode |
-            &Instruction::CallReadQueryTerm |
-            &Instruction::CallReadTerm |
-            &Instruction::CallRedoAttrVarBinding |
-            &Instruction::CallRemoveCallPolicyCheck |
-            &Instruction::CallRemoveInferenceCounter |
-            &Instruction::CallResetContinuationMarker |
-            &Instruction::CallRestoreCutPolicy |
-            &Instruction::CallSetCutPoint(..) |
-            &Instruction::CallSetInput |
-            &Instruction::CallSetOutput |
-            &Instruction::CallStoreBacktrackableGlobalVar |
-            &Instruction::CallStoreGlobalVar |
-            &Instruction::CallStreamProperty |
-            &Instruction::CallSetStreamPosition |
-            &Instruction::CallInferenceLevel |
-            &Instruction::CallCleanUpBlock |
-            &Instruction::CallFail |
-            &Instruction::CallGetBall |
-            &Instruction::CallGetCurrentBlock |
-            &Instruction::CallGetCurrentSCCBlock |
-            &Instruction::CallGetCutPoint |
-            &Instruction::CallGetDoubleQuotes |
-            &Instruction::CallGetUnknown |
-            &Instruction::CallInstallNewBlock |
-            &Instruction::CallRandomInteger |
-            &Instruction::CallMaybe |
-            &Instruction::CallCpuNow |
-            &Instruction::CallDeterministicLengthRundown |
-            &Instruction::CallHttpOpen |
-            &Instruction::CallHttpListen |
-            &Instruction::CallHttpAccept |
-            &Instruction::CallHttpAnswer |
-            &Instruction::CallLoadForeignLib |
-            &Instruction::CallForeignCall |
-            &Instruction::CallDefineForeignStruct |
-            &Instruction::CallFfiAllocate |
-            &Instruction::CallFfiReadPtr |
-            &Instruction::CallFfiDeallocate |
-            &Instruction::CallJsEval |
-            &Instruction::CallPredicateDefined |
-            &Instruction::CallStripModule |
-            &Instruction::CallCurrentTime |
-            &Instruction::CallQuotedToken |
-            &Instruction::CallReadFromChars |
-            &Instruction::CallReadTermFromChars |
-            &Instruction::CallResetBlock |
-            &Instruction::CallResetSCCBlock |
-            &Instruction::CallReturnFromVerifyAttr |
-            &Instruction::CallSetBall |
-            &Instruction::CallPushBallStack |
-            &Instruction::CallPopBallStack |
-            &Instruction::CallPopFromBallStack |
-            &Instruction::CallSetCutPointByDefault(..) |
-            &Instruction::CallSetDoubleQuotes |
-            &Instruction::CallSetUnknown |
-            &Instruction::CallSetSeed |
-            &Instruction::CallSkipMaxList |
-            &Instruction::CallSleep |
-            &Instruction::CallSocketClientOpen |
-            &Instruction::CallSocketServerOpen |
-            &Instruction::CallSocketServerAccept |
-            &Instruction::CallSocketServerClose |
-            &Instruction::CallTLSAcceptClient |
-            &Instruction::CallTLSClientConnect |
-            &Instruction::CallSucceed |
-            &Instruction::CallTermAttributedVariables |
-            &Instruction::CallTermVariables |
-            &Instruction::CallTermVariablesUnderMaxDepth |
-            &Instruction::CallTruncateLiftedHeapTo |
-            &Instruction::CallUnifyWithOccursCheck |
-            &Instruction::CallUnwindEnvironments |
-            &Instruction::CallUnwindStack |
-            &Instruction::CallWAMInstructions |
-            &Instruction::CallInlinedInstructions |
-            &Instruction::CallWriteTerm |
-            &Instruction::CallWriteTermToChars |
-            &Instruction::CallScryerPrologVersion |
-            &Instruction::CallCryptoRandomByte |
-            &Instruction::CallCryptoDataHash |
-            &Instruction::CallCryptoHMAC |
-            &Instruction::CallCryptoDataHKDF |
-            &Instruction::CallCryptoPasswordHash |
-            &Instruction::CallCryptoCurveScalarMult |
-            &Instruction::CallCurve25519ScalarMult |
-            &Instruction::CallFirstNonOctet |
-            &Instruction::CallLoadHTML |
-            &Instruction::CallLoadXML |
-            &Instruction::CallGetEnv |
-            &Instruction::CallSetEnv |
-            &Instruction::CallUnsetEnv |
-            &Instruction::CallShell |
-            &Instruction::CallProcessCreate |
-            &Instruction::CallProcessId |
-            &Instruction::CallProcessWait |
-            &Instruction::CallProcessKill |
-            &Instruction::CallProcessRelease |
-            &Instruction::CallPid |
-            &Instruction::CallCharsBase64 |
-            &Instruction::CallDevourWhitespace |
-            &Instruction::CallIsSTOEnabled |
-            &Instruction::CallSetSTOAsUnify |
-            &Instruction::CallSetNSTOAsUnify |
-            &Instruction::CallSetSTOWithErrorAsUnify |
-            &Instruction::CallHomeDirectory |
-            &Instruction::CallDebugHook |
-            &Instruction::CallAddDiscontiguousPredicate |
-            &Instruction::CallAddDynamicPredicate |
-            &Instruction::CallAddMultifilePredicate |
-            &Instruction::CallAddGoalExpansionClause |
-            &Instruction::CallAddTermExpansionClause |
-            &Instruction::CallAddInSituFilenameModule |
-            &Instruction::CallClauseToEvacuable |
-            &Instruction::CallScopedClauseToEvacuable |
-            &Instruction::CallConcludeLoad |
-            &Instruction::CallDeclareModule |
-            &Instruction::CallLoadCompiledLibrary |
-            &Instruction::CallLoadContextSource |
-            &Instruction::CallLoadContextFile |
-            &Instruction::CallLoadContextDirectory |
-            &Instruction::CallLoadContextModule |
-            &Instruction::CallLoadContextStream |
-            &Instruction::CallPopLoadContext |
-            &Instruction::CallPopLoadStatePayload |
-            &Instruction::CallPushLoadContext |
-            &Instruction::CallPushLoadStatePayload |
-            &Instruction::CallUseModule |
-            &Instruction::CallBuiltInProperty |
-            &Instruction::CallMetaPredicateProperty |
-            &Instruction::CallMultifileProperty |
-            &Instruction::CallDiscontiguousProperty |
-            &Instruction::CallDynamicProperty |
-            &Instruction::CallAbolishClause |
-            &Instruction::CallAsserta |
-            &Instruction::CallAssertz |
-            &Instruction::CallRetract |
-            &Instruction::CallIsConsistentWithTermQueue |
-            &Instruction::CallFlushTermQueue |
-            &Instruction::CallRemoveModuleExports |
-            &Instruction::CallAddNonCountedBacktracking |
-            &Instruction::CallPopCount |
-            &Instruction::CallArgv |
-            &Instruction::CallEd25519SignRaw |
-            &Instruction::CallEd25519VerifyRaw |
-            &Instruction::CallEd25519SeedToPublicKey => {
+            &Instruction::CallAtomChars
+            | &Instruction::CallAtomCodes
+            | &Instruction::CallAtomLength
+            | &Instruction::CallBindFromRegister
+            | &Instruction::CallContinuation
+            | &Instruction::CallCharCode
+            | &Instruction::CallCharType
+            | &Instruction::CallCharsToNumber
+            | &Instruction::CallCodesToNumber
+            | &Instruction::CallCopyTermWithoutAttrVars
+            | &Instruction::CallCheckCutPoint
+            | &Instruction::CallClose
+            | &Instruction::CallCopyToLiftedHeap
+            | &Instruction::CallCreatePartialString
+            | &Instruction::CallCurrentHostname
+            | &Instruction::CallCurrentInput
+            | &Instruction::CallCurrentOutput
+            | &Instruction::CallDirectoryFiles
+            | &Instruction::CallFileSize
+            | &Instruction::CallFileExists
+            | &Instruction::CallDirectoryExists
+            | &Instruction::CallDirectorySeparator
+            | &Instruction::CallMakeDirectory
+            | &Instruction::CallMakeDirectoryPath
+            | &Instruction::CallDeleteFile
+            | &Instruction::CallRenameFile
+            | &Instruction::CallFileCopy
+            | &Instruction::CallWorkingDirectory
+            | &Instruction::CallDeleteDirectory
+            | &Instruction::CallPathCanonical
+            | &Instruction::CallFileTime
+            | &Instruction::CallDynamicModuleResolution(..)
+            | &Instruction::CallPrepareCallClause(..)
+            | &Instruction::CallCompileInlineOrExpandedGoal
+            | &Instruction::CallIsExpandedOrInlined
+            | &Instruction::CallGetClauseP
+            | &Instruction::CallInvokeClauseAtP
+            | &Instruction::CallGetFromAttributedVarList
+            | &Instruction::CallPutToAttributedVarList
+            | &Instruction::CallDeleteFromAttributedVarList
+            | &Instruction::CallDeleteAllAttributesFromVar
+            | &Instruction::CallUnattributedVar
+            | &Instruction::CallGetDBRefs
+            | &Instruction::CallKeySortWithConstantVarOrdering
+            | &Instruction::CallInferenceLimitExceeded
+            | &Instruction::CallFetchGlobalVar
+            | &Instruction::CallFirstStream
+            | &Instruction::CallFlushOutput
+            | &Instruction::CallGetByte
+            | &Instruction::CallGetChar
+            | &Instruction::CallGetNChars
+            | &Instruction::CallGetCode
+            | &Instruction::CallGetSingleChar
+            | &Instruction::CallTruncateIfNoLiftedHeapGrowthDiff
+            | &Instruction::CallTruncateIfNoLiftedHeapGrowth
+            | &Instruction::CallGetAttributedVariableList
+            | &Instruction::CallGetAttrVarQueueDelimiter
+            | &Instruction::CallGetAttrVarQueueBeyond
+            | &Instruction::CallGetBValue
+            | &Instruction::CallGetContinuationChunk
+            | &Instruction::CallGetNextOpDBRef
+            | &Instruction::CallLookupDBRef
+            | &Instruction::CallIsPartialString
+            | &Instruction::CallHalt
+            | &Instruction::CallGetLiftedHeapFromOffset
+            | &Instruction::CallGetLiftedHeapFromOffsetDiff
+            | &Instruction::CallGetSCCCleaner
+            | &Instruction::CallHeadIsDynamic
+            | &Instruction::CallInstallSCCCleaner
+            | &Instruction::CallInstallInferenceCounter
+            | &Instruction::CallInferenceCount
+            | &Instruction::CallLiftedHeapLength
+            | &Instruction::CallLoadLibraryAsStream
+            | &Instruction::CallModuleExists
+            | &Instruction::CallNextEP
+            | &Instruction::CallNoSuchPredicate
+            | &Instruction::CallNumberToChars
+            | &Instruction::CallNumberToCodes
+            | &Instruction::CallOpDeclaration
+            | &Instruction::CallOpen
+            | &Instruction::CallSetStreamOptions
+            | &Instruction::CallNextStream
+            | &Instruction::CallPartialStringTail
+            | &Instruction::CallPeekByte
+            | &Instruction::CallPeekChar
+            | &Instruction::CallPeekCode
+            | &Instruction::CallPointsToContinuationResetMarker
+            | &Instruction::CallPutByte
+            | &Instruction::CallPutChar
+            | &Instruction::CallPutChars
+            | &Instruction::CallPutCode
+            | &Instruction::CallReadQueryTerm
+            | &Instruction::CallReadTerm
+            | &Instruction::CallRedoAttrVarBinding
+            | &Instruction::CallRemoveCallPolicyCheck
+            | &Instruction::CallRemoveInferenceCounter
+            | &Instruction::CallResetContinuationMarker
+            | &Instruction::CallRestoreCutPolicy
+            | &Instruction::CallSetCutPoint(..)
+            | &Instruction::CallSetInput
+            | &Instruction::CallSetOutput
+            | &Instruction::CallStoreBacktrackableGlobalVar
+            | &Instruction::CallStoreGlobalVar
+            | &Instruction::CallStreamProperty
+            | &Instruction::CallSetStreamPosition
+            | &Instruction::CallInferenceLevel
+            | &Instruction::CallCleanUpBlock
+            | &Instruction::CallFail
+            | &Instruction::CallGetBall
+            | &Instruction::CallGetCurrentBlock
+            | &Instruction::CallGetCurrentSCCBlock
+            | &Instruction::CallGetCutPoint
+            | &Instruction::CallGetDoubleQuotes
+            | &Instruction::CallGetUnknown
+            | &Instruction::CallInstallNewBlock
+            | &Instruction::CallRandomInteger
+            | &Instruction::CallMaybe
+            | &Instruction::CallCpuNow
+            | &Instruction::CallDeterministicLengthRundown
+            | &Instruction::CallHttpOpen
+            | &Instruction::CallHttpListen
+            | &Instruction::CallHttpAccept
+            | &Instruction::CallHttpAnswer
+            | &Instruction::CallLoadForeignLib
+            | &Instruction::CallForeignCall
+            | &Instruction::CallDefineForeignStruct
+            | &Instruction::CallFfiAllocate
+            | &Instruction::CallFfiReadPtr
+            | &Instruction::CallFfiDeallocate
+            | &Instruction::CallJsEval
+            | &Instruction::CallPredicateDefined
+            | &Instruction::CallStripModule
+            | &Instruction::CallCurrentTime
+            | &Instruction::CallQuotedToken
+            | &Instruction::CallReadFromChars
+            | &Instruction::CallReadTermFromChars
+            | &Instruction::CallResetBlock
+            | &Instruction::CallResetSCCBlock
+            | &Instruction::CallReturnFromVerifyAttr
+            | &Instruction::CallSetBall
+            | &Instruction::CallPushBallStack
+            | &Instruction::CallPopBallStack
+            | &Instruction::CallPopFromBallStack
+            | &Instruction::CallSetCutPointByDefault(..)
+            | &Instruction::CallSetDoubleQuotes
+            | &Instruction::CallSetUnknown
+            | &Instruction::CallSetSeed
+            | &Instruction::CallSkipMaxList
+            | &Instruction::CallSleep
+            | &Instruction::CallSocketClientOpen
+            | &Instruction::CallSocketServerOpen
+            | &Instruction::CallSocketServerAccept
+            | &Instruction::CallSocketServerClose
+            | &Instruction::CallTLSAcceptClient
+            | &Instruction::CallTLSClientConnect
+            | &Instruction::CallSucceed
+            | &Instruction::CallTermAttributedVariables
+            | &Instruction::CallTermVariables
+            | &Instruction::CallTermVariablesUnderMaxDepth
+            | &Instruction::CallTruncateLiftedHeapTo
+            | &Instruction::CallUnifyWithOccursCheck
+            | &Instruction::CallUnwindEnvironments
+            | &Instruction::CallUnwindStack
+            | &Instruction::CallWAMInstructions
+            | &Instruction::CallInlinedInstructions
+            | &Instruction::CallWriteTerm
+            | &Instruction::CallWriteTermToChars
+            | &Instruction::CallScryerPrologVersion
+            | &Instruction::CallCryptoRandomByte
+            | &Instruction::CallCryptoDataHash
+            | &Instruction::CallCryptoHMAC
+            | &Instruction::CallCryptoDataHKDF
+            | &Instruction::CallCryptoPasswordHash
+            | &Instruction::CallCryptoCurveScalarMult
+            | &Instruction::CallCurve25519ScalarMult
+            | &Instruction::CallFirstNonOctet
+            | &Instruction::CallLoadHTML
+            | &Instruction::CallLoadXML
+            | &Instruction::CallGetEnv
+            | &Instruction::CallSetEnv
+            | &Instruction::CallUnsetEnv
+            | &Instruction::CallShell
+            | &Instruction::CallProcessCreate
+            | &Instruction::CallProcessId
+            | &Instruction::CallProcessWait
+            | &Instruction::CallProcessKill
+            | &Instruction::CallProcessRelease
+            | &Instruction::CallPid
+            | &Instruction::CallCharsBase64
+            | &Instruction::CallDevourWhitespace
+            | &Instruction::CallIsSTOEnabled
+            | &Instruction::CallSetSTOAsUnify
+            | &Instruction::CallSetNSTOAsUnify
+            | &Instruction::CallSetSTOWithErrorAsUnify
+            | &Instruction::CallHomeDirectory
+            | &Instruction::CallDebugHook
+            | &Instruction::CallAddDiscontiguousPredicate
+            | &Instruction::CallAddDynamicPredicate
+            | &Instruction::CallAddMultifilePredicate
+            | &Instruction::CallAddGoalExpansionClause
+            | &Instruction::CallAddTermExpansionClause
+            | &Instruction::CallAddInSituFilenameModule
+            | &Instruction::CallClauseToEvacuable
+            | &Instruction::CallScopedClauseToEvacuable
+            | &Instruction::CallConcludeLoad
+            | &Instruction::CallDeclareModule
+            | &Instruction::CallLoadCompiledLibrary
+            | &Instruction::CallLoadContextSource
+            | &Instruction::CallLoadContextFile
+            | &Instruction::CallLoadContextDirectory
+            | &Instruction::CallLoadContextModule
+            | &Instruction::CallLoadContextStream
+            | &Instruction::CallPopLoadContext
+            | &Instruction::CallPopLoadStatePayload
+            | &Instruction::CallPushLoadContext
+            | &Instruction::CallPushLoadStatePayload
+            | &Instruction::CallUseModule
+            | &Instruction::CallBuiltInProperty
+            | &Instruction::CallMetaPredicateProperty
+            | &Instruction::CallMultifileProperty
+            | &Instruction::CallDiscontiguousProperty
+            | &Instruction::CallDynamicProperty
+            | &Instruction::CallAbolishClause
+            | &Instruction::CallAsserta
+            | &Instruction::CallAssertz
+            | &Instruction::CallRetract
+            | &Instruction::CallIsConsistentWithTermQueue
+            | &Instruction::CallFlushTermQueue
+            | &Instruction::CallRemoveModuleExports
+            | &Instruction::CallAddNonCountedBacktracking
+            | &Instruction::CallPopCount
+            | &Instruction::CallArgv
+            | &Instruction::CallEd25519SignRaw
+            | &Instruction::CallEd25519VerifyRaw
+            &Instruction::CallEd25519SeedToPublicKey => {
                 let (name, arity) = self.to_name_and_arity();
                 functor!(atom!("call"), [atom_as_cell(name), fixnum(arity)])
             }
             //
             #[cfg(feature = "crypto-full")]
-            &Instruction::CallCryptoDataEncrypt |
-            &Instruction::CallCryptoDataDecrypt => {
+            &Instruction::CallCryptoDataEncrypt | &Instruction::CallCryptoDataDecrypt => {
                 let (name, arity) = self.to_name_and_arity();
                 functor!(atom!("call"), [atom_as_cell(name), fixnum(arity)])
             }
             //
-            &Instruction::CallBeta |
-            &Instruction::CallBetaI |
-            &Instruction::CallInvBetaI |
-            &Instruction::CallGamma |
-            &Instruction::CallGammP |
-            &Instruction::CallGammQ |
-            &Instruction::CallInvGammP |
-            &Instruction::CallLnGamma |
-            &Instruction::CallErf |
-            &Instruction::CallErfc |
-            &Instruction::CallInvErf |
-            &Instruction::CallInvErfc => {
+            &Instruction::CallBeta
+            | &Instruction::CallBetaI
+            | &Instruction::CallInvBetaI
+            | &Instruction::CallGamma
+            | &Instruction::CallGammP
+            | &Instruction::CallGammQ
+            | &Instruction::CallInvGammP
+            | &Instruction::CallLnGamma
+            | &Instruction::CallErf
+            | &Instruction::CallErfc
+            | &Instruction::CallInvErf
+            &Instruction::CallInvErfc => {
                 let (name, arity) = self.to_name_and_arity();
                 functor!(atom!("call"), [atom_as_cell(name), fixnum(arity)])
             }
-            &Instruction::ExecuteAtomChars |
-            &Instruction::ExecuteAtomCodes |
-            &Instruction::ExecuteAtomLength |
-            &Instruction::ExecuteBindFromRegister |
-            &Instruction::ExecuteContinuation |
-            &Instruction::ExecuteCharCode |
-            &Instruction::ExecuteCharType |
-            &Instruction::ExecuteCharsToNumber |
-            &Instruction::ExecuteCodesToNumber |
-            &Instruction::ExecuteCopyTermWithoutAttrVars |
-            &Instruction::ExecuteCheckCutPoint |
-            &Instruction::ExecuteClose |
-            &Instruction::ExecuteCopyToLiftedHeap |
-            &Instruction::ExecuteCreatePartialString |
-            &Instruction::ExecuteCurrentHostname |
-            &Instruction::ExecuteCurrentInput |
-            &Instruction::ExecuteCurrentOutput |
-            &Instruction::ExecuteDirectoryFiles |
-            &Instruction::ExecuteFileSize |
-            &Instruction::ExecuteFileExists |
-            &Instruction::ExecuteDirectoryExists |
-            &Instruction::ExecuteDirectorySeparator |
-            &Instruction::ExecuteMakeDirectory |
-            &Instruction::ExecuteMakeDirectoryPath |
-            &Instruction::ExecuteDeleteFile |
-            &Instruction::ExecuteRenameFile |
-            &Instruction::ExecuteFileCopy |
-            &Instruction::ExecuteWorkingDirectory |
-            &Instruction::ExecuteDeleteDirectory |
-            &Instruction::ExecutePathCanonical |
-            &Instruction::ExecuteFileTime |
-            &Instruction::ExecuteDynamicModuleResolution(..) |
-            &Instruction::ExecutePrepareCallClause(..) |
-            &Instruction::ExecuteCompileInlineOrExpandedGoal |
-            &Instruction::ExecuteIsExpandedOrInlined |
-            &Instruction::ExecuteGetClauseP |
-            &Instruction::ExecuteInvokeClauseAtP |
-            &Instruction::ExecuteGetFromAttributedVarList |
-            &Instruction::ExecutePutToAttributedVarList |
-            &Instruction::ExecuteDeleteFromAttributedVarList |
-            &Instruction::ExecuteDeleteAllAttributesFromVar |
-            &Instruction::ExecuteUnattributedVar |
-            &Instruction::ExecuteGetDBRefs |
-            &Instruction::ExecuteKeySortWithConstantVarOrdering |
-            &Instruction::ExecuteInferenceLimitExceeded |
-            &Instruction::ExecuteFetchGlobalVar |
-            &Instruction::ExecuteFirstStream |
-            &Instruction::ExecuteFlushOutput |
-            &Instruction::ExecuteGetByte |
-            &Instruction::ExecuteGetChar |
-            &Instruction::ExecuteGetNChars |
-            &Instruction::ExecuteGetCode |
-            &Instruction::ExecuteGetSingleChar |
-            &Instruction::ExecuteTruncateIfNoLiftedHeapGrowthDiff |
-            &Instruction::ExecuteTruncateIfNoLiftedHeapGrowth |
-            &Instruction::ExecuteGetAttributedVariableList |
-            &Instruction::ExecuteGetAttrVarQueueDelimiter |
-            &Instruction::ExecuteGetAttrVarQueueBeyond |
-            &Instruction::ExecuteGetBValue |
-            &Instruction::ExecuteGetContinuationChunk |
-            &Instruction::ExecuteGetNextOpDBRef |
-            &Instruction::ExecuteLookupDBRef |
-            &Instruction::ExecuteIsPartialString |
-            &Instruction::ExecuteHalt |
-            &Instruction::ExecuteGetLiftedHeapFromOffset |
-            &Instruction::ExecuteGetLiftedHeapFromOffsetDiff |
-            &Instruction::ExecuteGetSCCCleaner |
-            &Instruction::ExecuteHeadIsDynamic |
-            &Instruction::ExecuteInstallSCCCleaner |
-            &Instruction::ExecuteInstallInferenceCounter |
-            &Instruction::ExecuteInferenceCount |
-            &Instruction::ExecuteLiftedHeapLength |
-            &Instruction::ExecuteLoadLibraryAsStream |
-            &Instruction::ExecuteModuleExists |
-            &Instruction::ExecuteNextEP |
-            &Instruction::ExecuteNoSuchPredicate |
-            &Instruction::ExecuteNumberToChars |
-            &Instruction::ExecuteNumberToCodes |
-            &Instruction::ExecuteOpDeclaration |
-            &Instruction::ExecuteOpen |
-            &Instruction::ExecuteSetStreamOptions |
-            &Instruction::ExecuteNextStream |
-            &Instruction::ExecutePartialStringTail |
-            &Instruction::ExecutePeekByte |
-            &Instruction::ExecutePeekChar |
-            &Instruction::ExecutePeekCode |
-            &Instruction::ExecutePointsToContinuationResetMarker |
-            &Instruction::ExecutePutByte |
-            &Instruction::ExecutePutChar |
-            &Instruction::ExecutePutChars |
-            &Instruction::ExecutePutCode |
-            &Instruction::ExecuteReadQueryTerm |
-            &Instruction::ExecuteReadTerm |
-            &Instruction::ExecuteRedoAttrVarBinding |
-            &Instruction::ExecuteRemoveCallPolicyCheck |
-            &Instruction::ExecuteRemoveInferenceCounter |
-            &Instruction::ExecuteResetContinuationMarker |
-            &Instruction::ExecuteRestoreCutPolicy |
-            &Instruction::ExecuteSetCutPoint(_) |
-            &Instruction::ExecuteSetInput |
-            &Instruction::ExecuteSetOutput |
-            &Instruction::ExecuteStoreBacktrackableGlobalVar |
-            &Instruction::ExecuteStoreGlobalVar |
-            &Instruction::ExecuteStreamProperty |
-            &Instruction::ExecuteSetStreamPosition |
-            &Instruction::ExecuteInferenceLevel |
-            &Instruction::ExecuteCleanUpBlock |
-            &Instruction::ExecuteFail |
-            &Instruction::ExecuteGetBall |
-            &Instruction::ExecuteGetCurrentBlock |
-            &Instruction::ExecuteGetCurrentSCCBlock |
-            &Instruction::ExecuteGetCutPoint |
-            &Instruction::ExecuteGetDoubleQuotes |
-            &Instruction::ExecuteGetUnknown |
-            &Instruction::ExecuteInstallNewBlock |
-            &Instruction::ExecuteRandomInteger |
-            &Instruction::ExecuteMaybe |
-            &Instruction::ExecuteCpuNow |
-            &Instruction::ExecuteDeterministicLengthRundown |
-            &Instruction::ExecuteHttpOpen |
-            &Instruction::ExecuteHttpListen |
-            &Instruction::ExecuteHttpAccept |
-            &Instruction::ExecuteHttpAnswer |
-            &Instruction::ExecuteLoadForeignLib |
-            &Instruction::ExecuteForeignCall |
-            &Instruction::ExecuteDefineForeignStruct |
-            &Instruction::ExecuteFfiAllocate |
-            &Instruction::ExecuteFfiReadPtr |
-            &Instruction::ExecuteFfiDeallocate |
-            &Instruction::ExecuteJsEval |
-            &Instruction::ExecutePredicateDefined |
-            &Instruction::ExecuteStripModule |
-            &Instruction::ExecuteCurrentTime |
-            &Instruction::ExecuteQuotedToken |
-            &Instruction::ExecuteReadFromChars |
-            &Instruction::ExecuteReadTermFromChars |
-            &Instruction::ExecuteResetBlock |
-            &Instruction::ExecuteResetSCCBlock |
-            &Instruction::ExecuteReturnFromVerifyAttr |
-            &Instruction::ExecuteSetBall |
-            &Instruction::ExecutePushBallStack |
-            &Instruction::ExecutePopBallStack |
-            &Instruction::ExecutePopFromBallStack |
-            &Instruction::ExecuteSetCutPointByDefault(_) |
-            &Instruction::ExecuteSetDoubleQuotes |
-            &Instruction::ExecuteSetUnknown |
-            &Instruction::ExecuteSetSeed |
-            &Instruction::ExecuteSkipMaxList |
-            &Instruction::ExecuteSleep |
-            &Instruction::ExecuteSocketClientOpen |
-            &Instruction::ExecuteSocketServerOpen |
-            &Instruction::ExecuteSocketServerAccept |
-            &Instruction::ExecuteSocketServerClose |
-            &Instruction::ExecuteTLSAcceptClient |
-            &Instruction::ExecuteTLSClientConnect |
-            &Instruction::ExecuteSucceed |
-            &Instruction::ExecuteTermAttributedVariables |
-            &Instruction::ExecuteTermVariables |
-            &Instruction::ExecuteTermVariablesUnderMaxDepth |
-            &Instruction::ExecuteTruncateLiftedHeapTo |
-            &Instruction::ExecuteUnifyWithOccursCheck |
-            &Instruction::ExecuteUnwindEnvironments |
-            &Instruction::ExecuteUnwindStack |
-            &Instruction::ExecuteWAMInstructions |
-            &Instruction::ExecuteInlinedInstructions |
-            &Instruction::ExecuteWriteTerm |
-            &Instruction::ExecuteWriteTermToChars |
-            &Instruction::ExecuteScryerPrologVersion |
-            &Instruction::ExecuteCryptoRandomByte |
-            &Instruction::ExecuteCryptoDataHash |
-            &Instruction::ExecuteCryptoHMAC |
-            &Instruction::ExecuteCryptoDataHKDF |
-            &Instruction::ExecuteCryptoPasswordHash |
-            &Instruction::ExecuteCryptoCurveScalarMult |
-            &Instruction::ExecuteCurve25519ScalarMult |
-            &Instruction::ExecuteFirstNonOctet |
-            &Instruction::ExecuteLoadHTML |
-            &Instruction::ExecuteLoadXML |
-            &Instruction::ExecuteGetEnv |
-            &Instruction::ExecuteSetEnv |
-            &Instruction::ExecuteUnsetEnv |
-            &Instruction::ExecuteShell |
-            &Instruction::ExecuteProcessCreate |
-            &Instruction::ExecuteProcessId |
-            &Instruction::ExecuteProcessWait |
-            &Instruction::ExecuteProcessKill |
-            &Instruction::ExecuteProcessRelease |
-            &Instruction::ExecutePid |
-            &Instruction::ExecuteCharsBase64 |
-            &Instruction::ExecuteDevourWhitespace |
-            &Instruction::ExecuteIsSTOEnabled |
-            &Instruction::ExecuteSetSTOAsUnify |
-            &Instruction::ExecuteSetNSTOAsUnify |
-            &Instruction::ExecuteSetSTOWithErrorAsUnify |
-            &Instruction::ExecuteHomeDirectory |
-            &Instruction::ExecuteDebugHook |
-            &Instruction::ExecuteAddDiscontiguousPredicate |
-            &Instruction::ExecuteAddDynamicPredicate |
-            &Instruction::ExecuteAddMultifilePredicate |
-            &Instruction::ExecuteAddGoalExpansionClause |
-            &Instruction::ExecuteAddTermExpansionClause |
-            &Instruction::ExecuteAddInSituFilenameModule |
-            &Instruction::ExecuteClauseToEvacuable |
-            &Instruction::ExecuteScopedClauseToEvacuable |
-            &Instruction::ExecuteConcludeLoad |
-            &Instruction::ExecuteDeclareModule |
-            &Instruction::ExecuteLoadCompiledLibrary |
-            &Instruction::ExecuteLoadContextSource |
-            &Instruction::ExecuteLoadContextFile |
-            &Instruction::ExecuteLoadContextDirectory |
-            &Instruction::ExecuteLoadContextModule |
-            &Instruction::ExecuteLoadContextStream |
-            &Instruction::ExecutePopLoadContext |
-            &Instruction::ExecutePopLoadStatePayload |
-            &Instruction::ExecutePushLoadContext |
-            &Instruction::ExecutePushLoadStatePayload |
-            &Instruction::ExecuteUseModule |
-            &Instruction::ExecuteBuiltInProperty |
-            &Instruction::ExecuteMetaPredicateProperty |
-            &Instruction::ExecuteMultifileProperty |
-            &Instruction::ExecuteDiscontiguousProperty |
-            &Instruction::ExecuteDynamicProperty |
-            &Instruction::ExecuteAbolishClause |
-            &Instruction::ExecuteAsserta |
-            &Instruction::ExecuteAssertz |
-            &Instruction::ExecuteRetract |
-            &Instruction::ExecuteIsConsistentWithTermQueue |
-            &Instruction::ExecuteFlushTermQueue |
-            &Instruction::ExecuteRemoveModuleExports |
-            &Instruction::ExecuteAddNonCountedBacktracking |
-            &Instruction::ExecutePopCount |
-            &Instruction::ExecuteArgv |
-            &Instruction::ExecuteEd25519SignRaw |
-            &Instruction::ExecuteEd25519VerifyRaw |
-            &Instruction::ExecuteEd25519SeedToPublicKey => {
+            &Instruction::ExecuteAtomChars
+            | &Instruction::ExecuteAtomCodes
+            | &Instruction::ExecuteAtomLength
+            | &Instruction::ExecuteBindFromRegister
+            | &Instruction::ExecuteContinuation
+            | &Instruction::ExecuteCharCode
+            | &Instruction::ExecuteCharType
+            | &Instruction::ExecuteCharsToNumber
+            | &Instruction::ExecuteCodesToNumber
+            | &Instruction::ExecuteCopyTermWithoutAttrVars
+            | &Instruction::ExecuteCheckCutPoint
+            | &Instruction::ExecuteClose
+            | &Instruction::ExecuteCopyToLiftedHeap
+            | &Instruction::ExecuteCreatePartialString
+            | &Instruction::ExecuteCurrentHostname
+            | &Instruction::ExecuteCurrentInput
+            | &Instruction::ExecuteCurrentOutput
+            | &Instruction::ExecuteDirectoryFiles
+            | &Instruction::ExecuteFileSize
+            | &Instruction::ExecuteFileExists
+            | &Instruction::ExecuteDirectoryExists
+            | &Instruction::ExecuteDirectorySeparator
+            | &Instruction::ExecuteMakeDirectory
+            | &Instruction::ExecuteMakeDirectoryPath
+            | &Instruction::ExecuteDeleteFile
+            | &Instruction::ExecuteRenameFile
+            | &Instruction::ExecuteFileCopy
+            | &Instruction::ExecuteWorkingDirectory
+            | &Instruction::ExecuteDeleteDirectory
+            | &Instruction::ExecutePathCanonical
+            | &Instruction::ExecuteFileTime
+            | &Instruction::ExecuteDynamicModuleResolution(..)
+            | &Instruction::ExecutePrepareCallClause(..)
+            | &Instruction::ExecuteCompileInlineOrExpandedGoal
+            | &Instruction::ExecuteIsExpandedOrInlined
+            | &Instruction::ExecuteGetClauseP
+            | &Instruction::ExecuteInvokeClauseAtP
+            | &Instruction::ExecuteGetFromAttributedVarList
+            | &Instruction::ExecutePutToAttributedVarList
+            | &Instruction::ExecuteDeleteFromAttributedVarList
+            | &Instruction::ExecuteDeleteAllAttributesFromVar
+            | &Instruction::ExecuteUnattributedVar
+            | &Instruction::ExecuteGetDBRefs
+            | &Instruction::ExecuteKeySortWithConstantVarOrdering
+            | &Instruction::ExecuteInferenceLimitExceeded
+            | &Instruction::ExecuteFetchGlobalVar
+            | &Instruction::ExecuteFirstStream
+            | &Instruction::ExecuteFlushOutput
+            | &Instruction::ExecuteGetByte
+            | &Instruction::ExecuteGetChar
+            | &Instruction::ExecuteGetNChars
+            | &Instruction::ExecuteGetCode
+            | &Instruction::ExecuteGetSingleChar
+            | &Instruction::ExecuteTruncateIfNoLiftedHeapGrowthDiff
+            | &Instruction::ExecuteTruncateIfNoLiftedHeapGrowth
+            | &Instruction::ExecuteGetAttributedVariableList
+            | &Instruction::ExecuteGetAttrVarQueueDelimiter
+            | &Instruction::ExecuteGetAttrVarQueueBeyond
+            | &Instruction::ExecuteGetBValue
+            | &Instruction::ExecuteGetContinuationChunk
+            | &Instruction::ExecuteGetNextOpDBRef
+            | &Instruction::ExecuteLookupDBRef
+            | &Instruction::ExecuteIsPartialString
+            | &Instruction::ExecuteHalt
+            | &Instruction::ExecuteGetLiftedHeapFromOffset
+            | &Instruction::ExecuteGetLiftedHeapFromOffsetDiff
+            | &Instruction::ExecuteGetSCCCleaner
+            | &Instruction::ExecuteHeadIsDynamic
+            | &Instruction::ExecuteInstallSCCCleaner
+            | &Instruction::ExecuteInstallInferenceCounter
+            | &Instruction::ExecuteInferenceCount
+            | &Instruction::ExecuteLiftedHeapLength
+            | &Instruction::ExecuteLoadLibraryAsStream
+            | &Instruction::ExecuteModuleExists
+            | &Instruction::ExecuteNextEP
+            | &Instruction::ExecuteNoSuchPredicate
+            | &Instruction::ExecuteNumberToChars
+            | &Instruction::ExecuteNumberToCodes
+            | &Instruction::ExecuteOpDeclaration
+            | &Instruction::ExecuteOpen
+            | &Instruction::ExecuteSetStreamOptions
+            | &Instruction::ExecuteNextStream
+            | &Instruction::ExecutePartialStringTail
+            | &Instruction::ExecutePeekByte
+            | &Instruction::ExecutePeekChar
+            | &Instruction::ExecutePeekCode
+            | &Instruction::ExecutePointsToContinuationResetMarker
+            | &Instruction::ExecutePutByte
+            | &Instruction::ExecutePutChar
+            | &Instruction::ExecutePutChars
+            | &Instruction::ExecutePutCode
+            | &Instruction::ExecuteReadQueryTerm
+            | &Instruction::ExecuteReadTerm
+            | &Instruction::ExecuteRedoAttrVarBinding
+            | &Instruction::ExecuteRemoveCallPolicyCheck
+            | &Instruction::ExecuteRemoveInferenceCounter
+            | &Instruction::ExecuteResetContinuationMarker
+            | &Instruction::ExecuteRestoreCutPolicy
+            | &Instruction::ExecuteSetCutPoint(_)
+            | &Instruction::ExecuteSetInput
+            | &Instruction::ExecuteSetOutput
+            | &Instruction::ExecuteStoreBacktrackableGlobalVar
+            | &Instruction::ExecuteStoreGlobalVar
+            | &Instruction::ExecuteStreamProperty
+            | &Instruction::ExecuteSetStreamPosition
+            | &Instruction::ExecuteInferenceLevel
+            | &Instruction::ExecuteCleanUpBlock
+            | &Instruction::ExecuteFail
+            | &Instruction::ExecuteGetBall
+            | &Instruction::ExecuteGetCurrentBlock
+            | &Instruction::ExecuteGetCurrentSCCBlock
+            | &Instruction::ExecuteGetCutPoint
+            | &Instruction::ExecuteGetDoubleQuotes
+            | &Instruction::ExecuteGetUnknown
+            | &Instruction::ExecuteInstallNewBlock
+            | &Instruction::ExecuteRandomInteger
+            | &Instruction::ExecuteMaybe
+            | &Instruction::ExecuteCpuNow
+            | &Instruction::ExecuteDeterministicLengthRundown
+            | &Instruction::ExecuteHttpOpen
+            | &Instruction::ExecuteHttpListen
+            | &Instruction::ExecuteHttpAccept
+            | &Instruction::ExecuteHttpAnswer
+            | &Instruction::ExecuteLoadForeignLib
+            | &Instruction::ExecuteForeignCall
+            | &Instruction::ExecuteDefineForeignStruct
+            | &Instruction::ExecuteFfiAllocate
+            | &Instruction::ExecuteFfiReadPtr
+            | &Instruction::ExecuteFfiDeallocate
+            | &Instruction::ExecuteJsEval
+            | &Instruction::ExecutePredicateDefined
+            | &Instruction::ExecuteStripModule
+            | &Instruction::ExecuteCurrentTime
+            | &Instruction::ExecuteQuotedToken
+            | &Instruction::ExecuteReadFromChars
+            | &Instruction::ExecuteReadTermFromChars
+            | &Instruction::ExecuteResetBlock
+            | &Instruction::ExecuteResetSCCBlock
+            | &Instruction::ExecuteReturnFromVerifyAttr
+            | &Instruction::ExecuteSetBall
+            | &Instruction::ExecutePushBallStack
+            | &Instruction::ExecutePopBallStack
+            | &Instruction::ExecutePopFromBallStack
+            | &Instruction::ExecuteSetCutPointByDefault(_)
+            | &Instruction::ExecuteSetDoubleQuotes
+            | &Instruction::ExecuteSetUnknown
+            | &Instruction::ExecuteSetSeed
+            | &Instruction::ExecuteSkipMaxList
+            | &Instruction::ExecuteSleep
+            | &Instruction::ExecuteSocketClientOpen
+            | &Instruction::ExecuteSocketServerOpen
+            | &Instruction::ExecuteSocketServerAccept
+            | &Instruction::ExecuteSocketServerClose
+            | &Instruction::ExecuteTLSAcceptClient
+            | &Instruction::ExecuteTLSClientConnect
+            | &Instruction::ExecuteSucceed
+            | &Instruction::ExecuteTermAttributedVariables
+            | &Instruction::ExecuteTermVariables
+            | &Instruction::ExecuteTermVariablesUnderMaxDepth
+            | &Instruction::ExecuteTruncateLiftedHeapTo
+            | &Instruction::ExecuteUnifyWithOccursCheck
+            | &Instruction::ExecuteUnwindEnvironments
+            | &Instruction::ExecuteUnwindStack
+            | &Instruction::ExecuteWAMInstructions
+            | &Instruction::ExecuteInlinedInstructions
+            | &Instruction::ExecuteWriteTerm
+            | &Instruction::ExecuteWriteTermToChars
+            | &Instruction::ExecuteScryerPrologVersion
+            | &Instruction::ExecuteCryptoRandomByte
+            | &Instruction::ExecuteCryptoDataHash
+            | &Instruction::ExecuteCryptoHMAC
+            | &Instruction::ExecuteCryptoDataHKDF
+            | &Instruction::ExecuteCryptoPasswordHash
+            | &Instruction::ExecuteCryptoCurveScalarMult
+            | &Instruction::ExecuteCurve25519ScalarMult
+            | &Instruction::ExecuteFirstNonOctet
+            | &Instruction::ExecuteLoadHTML
+            | &Instruction::ExecuteLoadXML
+            | &Instruction::ExecuteGetEnv
+            | &Instruction::ExecuteSetEnv
+            | &Instruction::ExecuteUnsetEnv
+            | &Instruction::ExecuteShell
+            | &Instruction::ExecuteProcessCreate
+            | &Instruction::ExecuteProcessId
+            | &Instruction::ExecuteProcessWait
+            | &Instruction::ExecuteProcessKill
+            | &Instruction::ExecuteProcessRelease
+            | &Instruction::ExecutePid
+            | &Instruction::ExecuteCharsBase64
+            | &Instruction::ExecuteDevourWhitespace
+            | &Instruction::ExecuteIsSTOEnabled
+            | &Instruction::ExecuteSetSTOAsUnify
+            | &Instruction::ExecuteSetNSTOAsUnify
+            | &Instruction::ExecuteSetSTOWithErrorAsUnify
+            | &Instruction::ExecuteHomeDirectory
+            | &Instruction::ExecuteDebugHook
+            | &Instruction::ExecuteAddDiscontiguousPredicate
+            | &Instruction::ExecuteAddDynamicPredicate
+            | &Instruction::ExecuteAddMultifilePredicate
+            | &Instruction::ExecuteAddGoalExpansionClause
+            | &Instruction::ExecuteAddTermExpansionClause
+            | &Instruction::ExecuteAddInSituFilenameModule
+            | &Instruction::ExecuteClauseToEvacuable
+            | &Instruction::ExecuteScopedClauseToEvacuable
+            | &Instruction::ExecuteConcludeLoad
+            | &Instruction::ExecuteDeclareModule
+            | &Instruction::ExecuteLoadCompiledLibrary
+            | &Instruction::ExecuteLoadContextSource
+            | &Instruction::ExecuteLoadContextFile
+            | &Instruction::ExecuteLoadContextDirectory
+            | &Instruction::ExecuteLoadContextModule
+            | &Instruction::ExecuteLoadContextStream
+            | &Instruction::ExecutePopLoadContext
+            | &Instruction::ExecutePopLoadStatePayload
+            | &Instruction::ExecutePushLoadContext
+            | &Instruction::ExecutePushLoadStatePayload
+            | &Instruction::ExecuteUseModule
+            | &Instruction::ExecuteBuiltInProperty
+            | &Instruction::ExecuteMetaPredicateProperty
+            | &Instruction::ExecuteMultifileProperty
+            | &Instruction::ExecuteDiscontiguousProperty
+            | &Instruction::ExecuteDynamicProperty
+            | &Instruction::ExecuteAbolishClause
+            | &Instruction::ExecuteAsserta
+            | &Instruction::ExecuteAssertz
+            | &Instruction::ExecuteRetract
+            | &Instruction::ExecuteIsConsistentWithTermQueue
+            | &Instruction::ExecuteFlushTermQueue
+            | &Instruction::ExecuteRemoveModuleExports
+            | &Instruction::ExecuteAddNonCountedBacktracking
+            | &Instruction::ExecutePopCount
+            | &Instruction::ExecuteArgv
+            | &Instruction::ExecuteEd25519SignRaw
+            | &Instruction::ExecuteEd25519VerifyRaw
+            &Instruction::ExecuteEd25519SeedToPublicKey => {
                 let (name, arity) = self.to_name_and_arity();
                 functor!(atom!("execute"), [atom_as_cell(name), fixnum(arity)])
             }
             //
             #[cfg(feature = "crypto-full")]
-            &Instruction::ExecuteCryptoDataEncrypt |
-            &Instruction::ExecuteCryptoDataDecrypt => {
+            &Instruction::ExecuteCryptoDataEncrypt | &Instruction::ExecuteCryptoDataDecrypt => {
                 let (name, arity) = self.to_name_and_arity();
                 functor!(atom!("execute"), [atom_as_cell(name), fixnum(arity)])
             }
             //
-            &Instruction::ExecuteBeta |
-            &Instruction::ExecuteBetaI |
-            &Instruction::ExecuteInvBetaI |
-            &Instruction::ExecuteGamma |
-            &Instruction::ExecuteGammP |
-            &Instruction::ExecuteGammQ |
-            &Instruction::ExecuteInvGammP |
-            &Instruction::ExecuteLnGamma |
-            &Instruction::ExecuteErf |
-            &Instruction::ExecuteErfc |
-            &Instruction::ExecuteInvErf |
-            &Instruction::ExecuteInvErfc => {
+            &Instruction::ExecuteBeta
+            | &Instruction::ExecuteBetaI
+            | &Instruction::ExecuteInvBetaI
+            | &Instruction::ExecuteGamma
+            | &Instruction::ExecuteGammP
+            | &Instruction::ExecuteGammQ
+            | &Instruction::ExecuteInvGammP
+            | &Instruction::ExecuteLnGamma
+            | &Instruction::ExecuteErf
+            | &Instruction::ExecuteErfc
+            | &Instruction::ExecuteInvErf
+            &Instruction::ExecuteInvErfc => {
                 let (name, arity) = self.to_name_and_arity();
                 functor!(atom!("execute"), [atom_as_cell(name), fixnum(arity)])
             }
@@ -1249,9 +1219,10 @@ impl Instruction {
                 let lvl_stub = lvl.into_functor();
                 let rt_stub = reg_type_into_functor(r);
 
-                functor!(atom!("get_constant"), [functor(lvl_stub),
-                                                    cell(lit),
-                                                    functor(rt_stub)])
+                functor!(
+                    atom!("get_constant"),
+                    [functor(lvl_stub), cell(lit), functor(rt_stub)]
+                )
             }
             &Instruction::GetList(lvl, r) => {
                 let lvl_stub = lvl.into_functor();
@@ -1263,23 +1234,28 @@ impl Instruction {
                 let lvl_stub = lvl.into_functor();
                 let rt_stub = reg_type_into_functor(r);
 
-                functor!(atom!("get_partial_string"), [functor(lvl_stub),
-                                                        string((s.to_string())),
-                                                        functor(rt_stub)])
+                functor!(
+                    atom!("get_partial_string"),
+                    [functor(lvl_stub), string((s.to_string())), functor(rt_stub)]
+                )
             }
             &Instruction::GetStructure(lvl, name, arity, r) => {
                 let lvl_stub = lvl.into_functor();
                 let rt_stub = reg_type_into_functor(r);
 
-                functor!(atom!("get_structure"), [functor(lvl_stub),
-                                                    atom_as_cell(name),
-                                                    fixnum(arity),
-                                                    functor(rt_stub)])
+                functor!(
+                    atom!("get_structure"),
+                    [
+                        functor(lvl_stub),
+                        atom_as_cell(name),
+                        fixnum(arity),
+                        functor(rt_stub)
+                    ]
+                )
             }
             &Instruction::GetValue(r, arg) => {
                 let rt_stub = reg_type_into_functor(r);
-                functor!(atom!("get_value"), [functor(rt_stub),
-                                                fixnum(arg)])
+                functor!(atom!("get_value"), [functor(rt_stub), fixnum(arg)])
             }
             &Instruction::GetVariable(r, arg) => {
                 let rt_stub = reg_type_into_functor(r);
@@ -1310,7 +1286,10 @@ impl Instruction {
                 let lvl_stub = lvl.into_functor();
                 let rt_stub = reg_type_into_functor(r);
 
-                functor!(atom!("put_constant"), [functor(rt_stub), cell(c), functor(lvl_stub)])
+                functor!(
+                    atom!("put_constant"),
+                    [functor(rt_stub), cell(c), functor(lvl_stub)]
+                )
             }
             &Instruction::PutList(lvl, r) => {
                 let lvl_stub = lvl.into_functor();
@@ -1322,28 +1301,28 @@ impl Instruction {
                 let lvl_stub = lvl.into_functor();
                 let rt_stub = reg_type_into_functor(r);
 
-                functor!(atom!("put_partial_string"), [functor(lvl_stub),
-                                                        string((s.to_string())),
-                                                        functor(rt_stub)])
+                functor!(
+                    atom!("put_partial_string"),
+                    [functor(lvl_stub), string((s.to_string())), functor(rt_stub)]
+                )
             }
             &Instruction::PutStructure(name, arity, r) => {
                 let rt_stub = reg_type_into_functor(r);
 
-                functor!(atom!("put_structure"), [atom_as_cell(name),
-                                                    fixnum(arity),
-                                                    functor(rt_stub)])
+                functor!(
+                    atom!("put_structure"),
+                    [atom_as_cell(name), fixnum(arity), functor(rt_stub)]
+                )
             }
             &Instruction::PutValue(r, arg) => {
                 let rt_stub = reg_type_into_functor(r);
 
-                functor!(atom!("put_value"), [functor(rt_stub),
-                                                fixnum(arg)])
+                functor!(atom!("put_value"), [functor(rt_stub), fixnum(arg)])
             }
             &Instruction::PutVariable(r, arg) => {
                 let rt_stub = reg_type_into_functor(r);
 
-                functor!(atom!("put_variable"), [functor(rt_stub),
-                                                    fixnum(arg)])
+                functor!(atom!("put_variable"), [functor(rt_stub), fixnum(arg)])
             }
             &Instruction::SetConstant(c) => {
                 functor!(atom!("set_constant"), [cell(c)])
@@ -1371,20 +1350,21 @@ impl Instruction {
 
     #[allow(dead_code)]
     pub fn is_query_instr(&self) -> bool {
-        matches!(self,
-            &Instruction::GetVariable(..) |
-            &Instruction::PutConstant(..) |
-            &Instruction::PutList(..) |
-            &Instruction::PutPartialString(..) |
-            &Instruction::PutStructure(..) |
-            &Instruction::PutUnsafeValue(..) |
-            &Instruction::PutValue(..) |
-            &Instruction::PutVariable(..) |
-            &Instruction::SetConstant(..) |
-            &Instruction::SetLocalValue(..) |
-            &Instruction::SetVariable(..) |
-            &Instruction::SetValue(..) |
-            &Instruction::SetVoid(..)
+        matches!(
+            self,
+            &Instruction::GetVariable(..)
+                | &Instruction::PutConstant(..)
+                | &Instruction::PutList(..)
+                | &Instruction::PutPartialString(..)
+                | &Instruction::PutStructure(..)
+                | &Instruction::PutUnsafeValue(..)
+                | &Instruction::PutValue(..)
+                | &Instruction::PutVariable(..)
+                | &Instruction::SetConstant(..)
+                | &Instruction::SetLocalValue(..)
+                | &Instruction::SetVariable(..)
+                | &Instruction::SetValue(..)
+                | &Instruction::SetVoid(..)
         )
     }
 }
@@ -1392,15 +1372,15 @@ impl Instruction {
 impl CompareNumber {
     pub fn set_terms(&mut self, l_at_1: ArithmeticTerm, l_at_2: ArithmeticTerm) {
         match self {
-            CompareNumber::NumberGreaterThan(ref mut at_1, ref mut at_2) |
-            CompareNumber::NumberLessThan(ref mut at_1, ref mut at_2) |
-            CompareNumber::NumberGreaterThanOrEqual(ref mut at_1, ref mut at_2) |
-            CompareNumber::NumberLessThanOrEqual(ref mut at_1, ref mut at_2) |
-            CompareNumber::NumberNotEqual(ref mut at_1, ref mut at_2) |
-            CompareNumber::NumberEqual(ref mut at_1, ref mut at_2) => {
+            CompareNumber::NumberGreaterThan(ref mut at_1, ref mut at_2)
+            | CompareNumber::NumberLessThan(ref mut at_1, ref mut at_2)
+            | CompareNumber::NumberGreaterThanOrEqual(ref mut at_1, ref mut at_2)
+            | CompareNumber::NumberLessThanOrEqual(ref mut at_1, ref mut at_2)
+            | CompareNumber::NumberNotEqual(ref mut at_1, ref mut at_2)
+            CompareNumber::NumberEqual(ref mut at_1, ref mut at_2) => {
                 *at_1 = l_at_1;
                 *at_2 = l_at_2;
             }
         }
     }
-}
\ No newline at end of file
+}
index 03049462c4ea41b960dc485e175ed532534efdb8..ae560f1cbfe95e2e7f1dfb99a768618dca3a942a 100644 (file)
@@ -57,7 +57,6 @@ fn rules() {
 #[test]
 #[cfg_attr(miri, ignore = "it takes too long to run")]
 fn setup_call_cleanup_load() {
-    
     load_module_test(
         "src/tests/setup_call_cleanup.pl",
         // spellchecker:ignore-next-line