type simpleStatements = | SimpleSkip | SimpleAssignment of Types.variable * simpleArithmetic | SimpleGuard of simpleBoolean and simpleBoolean = | SimpleBoolean of bool | SimpleBAnd of simpleBoolean * simpleBoolean | SimpleBOr of simpleBoolean * simpleBoolean | SimpleBNot of simpleBoolean | SimpleBCmp of simpleArithmetic * simpleArithmetic | SimpleBCmpLess of simpleArithmetic * simpleArithmetic | SimpleBCmpLessEq of simpleArithmetic * simpleArithmetic | SimpleBCmpGreater of simpleArithmetic * simpleArithmetic | SimpleBCmpGreaterEq of simpleArithmetic * simpleArithmetic and simpleArithmetic = | SimpleVariable of Types.variable | SimpleInteger of int | SimplePlus of simpleArithmetic * simpleArithmetic | SimpleMinus of simpleArithmetic * simpleArithmetic | SimpleTimes of simpleArithmetic * simpleArithmetic | SimpleDivision of simpleArithmetic * simpleArithmetic | SimpleModulo of simpleArithmetic * simpleArithmetic | SimplePower of simpleArithmetic * simpleArithmetic | SimplePowerMod of simpleArithmetic * simpleArithmetic * simpleArithmetic | SimpleRand of simpleArithmetic module Node : sig type t val compare : t -> t -> int end module NodeMap : Map.S with type key = Node.t module NodeSet : Set.S with type elt = Node.t module Cfg : sig type t val pp : out_channel -> t -> unit end val convert : Types.p_exp -> Cfg.t