(* Check what opcode is in the formula at slot 3 *) open Nock_lib let () = Eio_main.run (fun env -> let fs = Eio.Stdenv.fs env in let pill_bytes = Eio.Path.(load (fs / "ivory.pill")) |> Bytes.of_string in let pill = Serial.cue pill_bytes in let core = Noun.tail pill in (* Get the formula at slot 3 *) let formula = Noun.slot (Z.of_int 3) core in Printf.printf "Formula (slot 3) mug: 0x%08lx\n" (Noun.mug formula); Printf.printf "Formula is: %s\n" (if Noun.is_cell formula then "cell" else "atom"); if Noun.is_cell formula then begin let h = Noun.head formula in Printf.printf "Formula head is: %s\n" (if Noun.is_cell h then "cell" else "atom"); match h with | Noun.Atom { z; _ } when Z.fits_int z -> Printf.printf "Formula starts with opcode: %d\n" (Z.to_int z) | Noun.Cell _ -> Printf.printf "Formula starts with CELL (distribution)\n" | _ -> Printf.printf "Formula head is large atom\n" end )