sig
  val ident :
    ?attrs:Ptree.attr list -> ?loc:Loc.position -> string -> Ptree.ident
  val qualid : string list -> Ptree.qualid
  val const : ?kind:Number.int_literal_kind -> int -> Constant.constant
  val unit_binder : ?loc:Loc.position -> unit -> Ptree.binder list
  val one_binder :
    ?loc:Loc.position ->
    ?ghost:bool -> ?pty:Ptree.pty -> string -> Ptree.binder list
  val term : ?loc:Loc.position -> Ptree.term_desc -> Ptree.term
  val tconst : ?loc:Loc.position -> int -> Ptree.term
  val tvar : ?loc:Loc.position -> Ptree.qualid -> Ptree.term
  val tapp :
    ?loc:Loc.position -> Ptree.qualid -> Ptree.term list -> Ptree.term
  val pat : ?loc:Loc.position -> Ptree.pat_desc -> Ptree.pattern
  val pat_var : ?loc:Loc.position -> Ptree.ident -> Ptree.pattern
  val expr : ?loc:Loc.position -> Ptree.expr_desc -> Ptree.expr
  val econst : ?loc:Loc.position -> int -> Ptree.expr
  val eapp :
    ?loc:Loc.position -> Ptree.qualid -> Ptree.expr list -> Ptree.expr
  val eapply : ?loc:Loc.position -> Ptree.expr -> Ptree.expr -> Ptree.expr
  val evar : ?loc:Loc.position -> Ptree.qualid -> Ptree.expr
  val empty_spec : Ptree.spec
  val use : ?loc:Loc.position -> import:bool -> string list -> Ptree.decl
  module F :
    sig
      type state
      val create : unit -> Ptree_helpers.F.state
      val begin_module :
        Ptree_helpers.F.state ->
        ?loc:Loc.position -> string -> Ptree_helpers.F.state
      val use :
        Ptree_helpers.F.state ->
        ?loc:Loc.position ->
        import:bool -> string list -> Ptree_helpers.F.state
      val add_prop :
        Ptree_helpers.F.state ->
        Decl.prop_kind ->
        ?loc:Loc.position -> string -> Ptree.term -> Ptree_helpers.F.state
      val begin_let :
        Ptree_helpers.F.state ->
        ?ghost:bool ->
        ?ret_type:Ptree.pty ->
        string -> Ptree.binder list -> Ptree_helpers.F.state
      val add_pre :
        Ptree_helpers.F.state -> Ptree.term -> Ptree_helpers.F.state
      val add_post :
        Ptree_helpers.F.state -> Ptree.term -> Ptree_helpers.F.state
      val add_body :
        Ptree_helpers.F.state -> Ptree.expr -> Ptree_helpers.F.state
      val end_module : Ptree_helpers.F.state -> Ptree_helpers.F.state
      val get_mlw_file : Ptree_helpers.F.state -> Ptree.mlw_file
    end
  module I :
    sig
      val begin_module : ?loc:Loc.position -> string -> unit
      val use : ?loc:Loc.position -> import:bool -> string list -> unit
      val add_prop :
        Decl.prop_kind -> ?loc:Loc.position -> string -> Ptree.term -> unit
      val begin_let :
        ?ghost:bool ->
        ?ret_type:Ptree.pty -> string -> Ptree.binder list -> unit
      val add_pre : Ptree.term -> unit
      val add_post : Ptree.term -> unit
      val add_body : Ptree.expr -> unit
      val end_module : unit -> unit
      val get_mlw_file : unit -> Ptree.mlw_file
    end
end