Module Id.MultiScoped

Ce module utilitaire fournit un type dont les éléments sont des valeurs munies d'un nombre arbitraire (y compris 0) identifiants distingués. Ce module, qui généralise Scoped, peut être utile pour traiter des constructions qui lient simultanément un nombre quelconque d'identifiants.

type 'a t =
  1. | Ret of 'a
  2. | Bind of 'a t Scoped.t

Une valeur b de type t est essentiellement une valeur de type 'a munie d'une liste de variables distinguées. La liste est représentée par une succession de valeurs de type Scoped.t imbriquées.

val pp : (Format.formatter -> 'a -> unit) -> Format.formatter -> 'a t -> unit

Ce type est affichable.

val map : ('a -> 'b) -> 'a t -> 'b t

On peut appliquer une fonction à la valeur sous-jacente et préserver les variables distinguées.

val fold : ('a -> 'b) -> 'a t -> 'b

On peut appliquer une fonction à la valeur sous-jacente en oubliant les variables distinguées.