sig
type t = Project_skeleton.t
val ty : t Type.t
val name : string
val descr : t Descr.t
val packed_descr : Structural_descr.pack
val reprs : t list
val pretty_code : Format.formatter -> t -> unit
val internal_pretty_code : Type.precedence -> Format.formatter -> t -> unit
val pretty : Format.formatter -> t -> unit
val varname : t -> string
val mem_project : (Project_skeleton.t -> bool) -> t -> bool
module Datatype :
sig
type t = Project_skeleton.t
val ty : t Type.t
val name : string
val descr : t Descr.t
val packed_descr : Structural_descr.pack
val reprs : t list
val equal : t -> t -> bool
val compare : t -> t -> int
val hash : t -> int
val pretty_code : Format.formatter -> t -> unit
val internal_pretty_code :
Type.precedence -> Format.formatter -> t -> unit
val pretty : Format.formatter -> t -> unit
val varname : t -> string
val mem_project : (Project_skeleton.t -> bool) -> t -> bool
val copy : t -> t
end
type project =
Project_skeleton.t = private {
pid : int;
mutable name : string;
mutable unique_name : string;
}
val create : string -> t
val register_create_hook : (t -> unit) -> unit
exception NoProject
val current : unit -> t
val is_current : t -> bool
val iter_on_projects : (t -> unit) -> unit
val fold_on_projects : ('a -> t -> 'a) -> 'a -> 'a
val find_all : string -> t list
val clear_all : unit -> unit
val get_name : t -> string
val get_unique_name : t -> string
val set_name : t -> string -> unit
exception Unknown_project
val from_unique_name : string -> t
val set_current : ?on:bool -> ?selection:State_selection.t -> t -> unit
val register_after_set_current_hook : user_only:bool -> (t -> unit) -> unit
val on : ?selection:State_selection.t -> t -> ('a -> 'b) -> 'a -> 'b
val copy : ?selection:State_selection.t -> ?src:t -> t -> unit
val create_by_copy :
?selection:State_selection.t -> ?src:t -> last:bool -> string -> t
val create_by_copy_hook : (t -> t -> unit) -> unit
val clear : ?selection:State_selection.t -> ?project:t -> unit -> unit
val register_todo_before_clear : (t -> unit) -> unit
val register_todo_after_clear : (t -> unit) -> unit
exception Cannot_remove of string
val remove : ?project:t -> unit -> unit
val register_before_remove_hook : (t -> unit) -> unit
exception IOError of string
val save : ?selection:State_selection.t -> ?project:t -> string -> unit
val load : ?selection:State_selection.t -> ?name:string -> string -> t
val save_all : ?selection:State_selection.t -> string -> unit
val load_all : ?selection:State_selection.t -> string -> unit
val register_before_load_hook : (unit -> unit) -> unit
val register_after_load_hook : (unit -> unit) -> unit
val register_after_global_load_hook : (unit -> unit) -> unit
val get_current_selection : unit -> State_selection.t
val compare : t -> t -> int
val equal : t -> t -> bool
val hash : t -> int
module Undo :
sig
val breakpoint : unit -> unit
val restore : unit -> unit
val clear_breakpoint : unit -> unit
end
end