Module Pass.Annotate

module Mixfix = Domain.Mixfix
module Annot = Lang.Pl.Annot
val hints_of_case_exp : Pass__Annotate__.Ctx.t -> Lang.Sl.typ' -> Lang.Il.mixop -> Annot.hints
val hints_of_call_exp : Pass__Annotate__.Ctx.t -> Lang.Il.id -> Annot.hints
val hints_of_hold_instr : Pass__Annotate__.Ctx.t -> Lang.Il.id -> Annot.hints
val hints_of_rule_instr : Pass__Annotate__.Ctx.t -> Lang.Il.id -> Lang.Hints.Input.t -> Annot.hints
val hints_of_result_instr : Pass__Annotate__.Ctx.t -> Lang.Hints.Input.t -> Annot.hints
val hints_of_group_instr : Pass__Annotate__.Ctx.t -> Annot.hints
val hints_of_rel_def : Pass__Annotate__.Ctx.t -> Lang.Il.id -> (Lang.Il.nottyp * Lang.Hints.Input.t) -> Annot.hints
val hints_of_func_def : Pass__Annotate__.Ctx.t -> Lang.Il.id -> Annot.hints
val validate_hint_at : Util.Source.region -> int -> Lang.Hints.Alter.t option -> unit
val validate_annot_alter : Util.Source.region -> Annot.hints -> int -> unit
val validate_annot_split : Util.Source.region -> Annot.hints -> n_in:int -> n_out:int -> unit
val validate_annot_fields : Util.Source.region -> Annot.hints -> int -> unit
val annotate_exp : Pass__Annotate__.Ctx.t -> Lang.Il.exp -> Lang.Pl.exp
val annotate_exps : Pass__Annotate__.Ctx.t -> Lang.Il.exp list -> Lang.Pl.exp list
val annotate_notexp : Pass__Annotate__.Ctx.t -> Lang.Il.notexp -> Lang.Pl.notexp
val annotate_path : Pass__Annotate__.Ctx.t -> Lang.Il.path -> Lang.Pl.path
val annotate_arg : Pass__Annotate__.Ctx.t -> Lang.Il.arg -> Lang.Pl.arg
val annotate_args : Pass__Annotate__.Ctx.t -> Lang.Il.arg list -> Lang.Pl.arg list
val annotate_param : Pass__Annotate__.Ctx.t -> Lang__Sl__.Ast.param' Util.Source.phrase -> Lang.Pl.param
val annotate_params : Pass__Annotate__.Ctx.t -> Lang__Sl__.Ast.param' Util.Source.phrase list -> Lang.Pl.param list
val annotate_holdcase_shared : Pass__Annotate__.Ctx.t -> (Pass__Annotate__.Ctx.t -> (Pass__Annotate__.Ll.Ast.instr', Lang__Sl__.Ast.inote) Util.Source.note_phrase list -> 'instr_tier Lang.Pl.block) -> Pass__Annotate__.Ll.Ast.holdcase -> 'instr_tier Lang.Pl.holdcase
val annotate_guard : Pass__Annotate__.Ctx.t -> Lang__Sl__.Ast.guard -> Lang.Pl.guard
val annotate_case_shared : Pass__Annotate__.Ctx.t -> (Pass__Annotate__.Ctx.t -> (Pass__Annotate__.Ll.Ast.instr', Lang__Sl__.Ast.inote) Util.Source.note_phrase list -> 'instr_tier Lang.Pl.block) -> (Lang__Sl__.Ast.guard * (Pass__Annotate__.Ll.Ast.instr', Lang__Sl__.Ast.inote) Util.Source.note_phrase list) -> 'instr_tier Lang.Pl.case
val annotate_cases_shared : Pass__Annotate__.Ctx.t -> (Pass__Annotate__.Ctx.t -> (Pass__Annotate__.Ll.Ast.instr', Lang__Sl__.Ast.inote) Util.Source.note_phrase list -> 'instr_tier Lang.Pl.block) -> (Lang__Sl__.Ast.guard * (Pass__Annotate__.Ll.Ast.instr', Lang__Sl__.Ast.inote) Util.Source.note_phrase list) list -> 'instr_tier Lang.Pl.case list
val annotate_instr_shared : Pass__Annotate__.Ctx.t -> (Pass__Annotate__.Ctx.t -> (Pass__Annotate__.Ll.Ast.instr', Lang__Sl__.Ast.inote) Util.Source.note_phrase list -> 'instr_tier Lang.Pl.block) -> (Pass__Annotate__.Ctx.t -> (Pass__Annotate__.Ll.Ast.instr', Lang__Sl__.Ast.inote) Util.Source.note_phrase -> 'instr_tier Lang.Pl.instr) -> (Pass__Annotate__.Ll.Ast.instr', Lang__Sl__.Ast.inote) Util.Source.note_phrase -> 'instr_tier Lang.Pl.instr
val annotate_instr_dispatch : Pass__Annotate__.Ctx.t -> (Pass__Annotate__.Ll.Ast.instr', Lang__Sl__.Ast.inote) Util.Source.note_phrase -> Lang.Pl.instr_dispatch Lang.Pl.instr
val annotate_instr_group : Pass__Annotate__.Ctx.t -> (Pass__Annotate__.Ll.Ast.instr', Lang__Sl__.Ast.inote) Util.Source.note_phrase -> Lang.Pl.instr_group Lang.Pl.instr
val annotate_block_dispatch : Pass__Annotate__.Ctx.t -> (Pass__Annotate__.Ll.Ast.instr', Lang__Sl__.Ast.inote) Util.Source.note_phrase list -> Lang.Pl.instr_dispatch Lang.Pl.block
val annotate_block_group : Pass__Annotate__.Ctx.t -> (Pass__Annotate__.Ll.Ast.instr', Lang__Sl__.Ast.inote) Util.Source.note_phrase list -> Lang.Pl.instr_group Lang.Pl.block
val instr_dispatch_of_ll : Pass__Annotate__.Ctx.t -> (Pass__Annotate__.Ll.Ast.instr', Lang__Sl__.Ast.inote) Util.Source.note_phrase -> Lang.Pl.instr_dispatch Lang.Pl.instr
val instr_group_of_ll : Pass__Annotate__.Ctx.t -> (Pass__Annotate__.Ll.Ast.instr', Lang__Sl__.Ast.inote) Util.Source.note_phrase -> Lang.Pl.instr_group Lang.Pl.instr
val annotate_def : Pass__Annotate__.Ctx.t -> Lang__Sl__.Ast.def' Util.Source.phrase -> Lang.Pl.def
val annotate_defs : Pass__Annotate__.Ctx.t -> Lang__Sl__.Ast.def' Util.Source.phrase list -> Lang.Pl.spec
val annotate_spec : Lang__Sl__.Ast.def' Util.Source.phrase list -> Lang.Pl.spec