Sarek_ppx_lib.Sarek_core_primitivesVariance levels in the GPU execution model. Forms a lattice: Uniform ≤ BlockVarying ≤ WarpVarying ≤ ThreadVarying
type primitive = {name : string;typ : Sarek_types.typ;variance : variance;convergence : convergence;purity : purity;category : string;For documentation/grouping
*)}A core primitive definition with compile-time semantics
val primitives : primitive listAll registered core primitives
val find : string -> primitive optionLookup a primitive by name
val find_exn : string -> primitiveCheck if a primitive has warp-level or finer variance (WarpVarying or ThreadVarying)
Check if a primitive requires any convergence (block or warp level)
val variance_of : string -> variance optionGet variance of a named primitive
val primitives_in_category : string -> primitive listGet all primitives in a category
val pp_variance : Stdlib.Format.formatter -> variance -> unitPretty printing
val pp_convergence : Stdlib.Format.formatter -> convergence -> unitval pp_purity : Stdlib.Format.formatter -> purity -> unitval pp_primitive : Stdlib.Format.formatter -> primitive -> unit