package rotor

  1. Overview
  2. Docs
Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source

Module Identifier.Chain

type 'a t = private
  1. | Atomic : (string, 'a) Atom.t -> 'a t
  2. | InStructure : string * 'a t -> 'a t
  3. | InStructureType : string * 'a t -> 'a t
  4. | InFunctor : string * 'a t -> 'a t
  5. | InFunctorType : string * 'a t -> 'a t
  6. | InParameter : string param_info * 'a t -> 'a t
type _t =
  1. | Ex : 'b Elements.Base.t * 'b t -> _t
type variety =
  1. | InIntf
  2. | InImpl
    (*

    The "variety" of a chain: whether it refers to an element in:

    • an interface (i.e. an explicitly named module type); or
    • an implementation (i.e. a structure).
    *)
include Elements.ModuleType.T0 with type 'a data := 'a t
type module_type_t =
  1. | ST of Elements.Base._structure_type t
  2. | FT of Elements.Base._functor_type t
val mk : (string, 'a) Atom.t -> 'a t
val _mk : string Atom._t -> _t
val cons : (string, 'a) Atom.t -> 'b t -> 'b t
val _cons : (string, 'a) Atom.t -> _t -> _t
val append : 'a t -> 'b t -> 'b t
val _append : 'a t -> _t -> _t
val lift : 'a t -> _t
val build : string Atom._t list -> _t
val of_string : string -> _t
val of_longident : 'b Elements.Base.t -> Compiler.Longident.t -> 'b t
val _of_longident : Elements.Base._t -> Compiler.Longident.t -> _t
val of_path : 'b Elements.Base.t -> Compiler.Path.t -> 'b t
val _of_path : Elements.Base._t -> Compiler.Path.t -> _t
val hd : 'a t -> string Atom._t
val tl : 'a t -> 'a t option
val tl_exn : 'a t -> 'a t
val anchor : 'a t -> (string, 'a) Atom.t
val try_open : 'b Elements.Base.t -> _t -> 'b t
val split_at_interface : 'a t -> module_type_t * 'a t option
val _split_at_interface : 'a t -> _t * 'a t option
val split_at_functor : 'a t -> Elements.Base._functor t * 'a t option
val drop : 'a t -> 'b t -> 'b t option
val variety : 'a t -> variety
val in_functor : 'a t -> bool
val equal : 'a t -> 'a t -> bool
val to_longident : 'a t -> Compiler.Longident.t
val promote : ?by:int -> 'a t -> 'a t
val demote : ?by:int -> 'a t -> 'a t