Module Textual.Instr

type t =
  1. | Load of {
    1. id : Ident.t;
    2. exp : Exp.t;
    3. typ : Typ.t option;
    4. loc : Location.t;
    }
    (*

    id <- *exp with *exp:typ

    *)
  2. | Store of {
    1. exp1 : Exp.t;
    2. typ : Typ.t option;
    3. exp2 : Exp.t;
    4. loc : Location.t;
    }
    (*

    *exp1 <- exp2 with exp2:typ

    *)
  3. | Prune of {
    1. exp : Exp.t;
    2. loc : Location.t;
    }
    (*

    assume exp

    *)
  4. | Let of {
    1. id : Ident.t;
    2. exp : Exp.t;
    3. loc : Location.t;
    }
    (*

    id = exp

    *)
val loc : t -> Location.t
val pp : F.formatter -> t -> unit