package archi

  1. Overview
  2. Docs
type (_, _, _) components =
  1. | [] : ('ctx, 'ty, 'ty) components
  2. | :: : (string * ('ctx, 'a) Component.t) * ('ctx, 'b, 'ty) components -> ('ctx, 'a -> 'b, 'ty) components
type ('ctx, _, _) t
val make : ('ctx, 'args, unit) components -> ('ctx, unit, [ `stopped ]) t
val make_reusable : lift:'args -> ('ctx, 'args, 'ty) components -> ('ctx, 'ty, [ `stopped ]) t
val start : 'ctx -> ('ctx, 'ty, [ `stopped ]) t -> (('ctx, 'ty, [ `started ]) t, [ `Cycle_found | `Msg of string ]) Stdlib.result Io.t
val stop : ('ctx, 'ty, [ `started ]) t -> (('ctx, 'ty, [ `stopped ]) t, [ `Cycle_found | `Msg of string ]) Stdlib.result Io.t
val get : ('ctx, 'ty, [ `started ]) t -> 'ty