Module Sarek_policy_vocab

type operand_precision =
  1. | Operands_f16
  2. | Operands_bf16
  3. | Operands_bf16x3
type deviation =
  1. | Accumulation_order
  2. | Operand_rounding of operand_precision
  3. | Single_rounding
  4. | Cross_kernel_contraction
type grant =
  1. | Deviation of deviation
  2. | Consent of consent
type optimisation =
  1. | Launch_window
  2. | Epilogue_fusion
  3. | Matrix_rewrite
  4. | Narrowing_proof
  5. | Auto_unroll
type scope =
  1. | Process
  2. | Kernel of string
type refusal =
  1. | Blank_reason
  2. | Default_kernel_name
type evidence =
  1. | Proof of string
  2. | Granted of {
    1. grants : grant list;
    2. reason : string;
    3. lowering : string option;
    }
  3. | Exact_by_construction
type decision =
  1. | Applied of evidence
  2. | Refused of string
type record = {
  1. kernel : string;
  2. target : string;
  3. optimisation : optimisation;
  4. decision : decision;
}
type ignored =
  1. | Generated_name
  2. | Revoked
type event =
  1. | Decision of record
  2. | Gate of {
    1. kernel : string;
    2. target : string;
    3. decision : decision;
    }
  3. | Ignored_grant of {
    1. kernel : string;
    2. grant : grant;
    3. cause : ignored;
    }
type restriction =
  1. | Disable of optimisation
  2. | Revoke of grant
type explain =
  1. | Explain_off
  2. | Explain_stderr
  3. | Explain_unknown of string
val join_reasons : string list -> string
val grant_name : grant -> string
val optimisation_name : optimisation -> string
val all_grants : grant list
val all_optimisations : optimisation list