On this page:
5.1 Unsafe version of Instructions
5.2 Well-typed version of Instructions
5.3 Instructions that accept a list
7.7

5 Experimental features

5.1 Unsafe version of Instructions

 (require x64asm/unsafe) package: x64asm-lib

This module provide unsafe version 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 version of Instructions

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

This module provide more precisely typed version 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 function no longer accept a keyword context argument, you must provide it explicitly.

5.3 Instructions that accept a list

 (require x64asm/apply) package: x64asm-lib

Since apply cannot be used with keyword arguments in Type Racket, this module provide another version of instructions that accept a list of operands.

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

(-> Context (Listof Operand) Void)