On this page:
5.1 Unsafe variants of Instructions
5.2 Well-typed variants of Instructions
5.3 Instructions that accept a mandatory context argument
8.12

5 Experimental features🔗ℹ

5.1 Unsafe variants of Instructions🔗ℹ

 (require x64asm/unsafe) package: x64asm-lib

This module provide unsafe variants of instructions that skip argument dispatching and some checking.

Examples:
> (require x64asm/unsafe)
> (:print-type mov:Eb-Gb)

(-> Context (U Mref Reg) Reg Void)

5.2 Well-typed variants of Instructions🔗ℹ

 (require x64asm/well-typed) package: x64asm-lib

This module provide more precisely typed variants of instructions.

Examples:
> (require x64asm/well-typed)
> (:print-type mov)

(case->

 (-> Context (U GPR Mref) GPR Void)

 (-> Context GPR (U GPR Mref) Void)

 (-> Context GPR Seg Void)

 (-> Context Mref Seg Void)

 (-> Context Seg (U GPR Mref) Void)

 (-> Context GPR Offset Void)

 (-> Context Offset GPR Void)

 (-> Context GPR Imm Void)

 (-> Context (U GPR Mref) Imm Void))

Noted that these functions no longer accept a keyword context argument, you must provide it explicitly.

5.3 Instructions that accept a mandatory context argument🔗ℹ

 (require x64asm/plain) package: x64asm-lib

Since apply cannot be used with keyword arguments in Type Racket, this module provide variants of instructions that accept a mandatory context argument.

Examples:
> (require x64asm/plain)
> (:print-type mov)

(-> Context Operand * Void)