|
|
@ -18,6 +18,7 @@ module rec Var : sig
|
|
|
|
include Ses.Var_intf.VAR with type t = private Trm.t
|
|
|
|
include Ses.Var_intf.VAR with type t = private Trm.t
|
|
|
|
|
|
|
|
|
|
|
|
val of_ : Trm.t -> t
|
|
|
|
val of_ : Trm.t -> t
|
|
|
|
|
|
|
|
val of_trm : Trm.t -> t option
|
|
|
|
end = struct
|
|
|
|
end = struct
|
|
|
|
module T = struct
|
|
|
|
module T = struct
|
|
|
|
type t = Trm.t [@@deriving compare, equal, sexp]
|
|
|
|
type t = Trm.t [@@deriving compare, equal, sexp]
|
|
|
@ -36,6 +37,7 @@ end = struct
|
|
|
|
include Ses.Var0.Make (T)
|
|
|
|
include Ses.Var0.Make (T)
|
|
|
|
|
|
|
|
|
|
|
|
let of_ v = v |> check T.invariant
|
|
|
|
let of_ v = v |> check T.invariant
|
|
|
|
|
|
|
|
let of_trm = function Trm.Var _ as v -> Some v | _ -> None
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
and Arith0 :
|
|
|
|
and Arith0 :
|
|
|
|