package preface

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

Building a Preface_specs.Traversable

Using the minimal definition

Over an Applicative using traverse

Build a Preface_specs.TRAVERSABLE using Preface_specs.Traversable.WITH_TRAVERSE over an Preface_specs.APPLICATIVE.

Standard method, using the minimal definition of an alt to derive its full API.

Over a Monad using traverse

Build a Preface_specs.TRAVERSABLE using Preface_specs.Traversable.WITH_TRAVERSE over a Preface_specs.MONAD.

Standard method, using the minimal definition of an alt to derive its full API.

module Over_monad (M : Preface_specs.MONAD) (Req : Preface_specs.Traversable.WITH_TRAVERSE with type 'a t = 'a M.t) : Preface_specs.TRAVERSABLE with type 'a t = 'a Req.t and type 'a iter = 'a Req.iter

Merging API

Since Preface_specs.TRAVERSABLE can be define for traversing iterable structure being a Preface_specs.MONAD or an Preface_specs.APPLICATIVE, there is some module (like List or Nonempty_list which define Preface_specs.APPLICATIVE or Preface_specs.MONAD modules with in a Preface_specs.TRAVERSABLE module.

Merge Traversable with Monad

Produces a Preface_specs.MONAD module with a Preface_specs.TRAVERSABLE module (which relies on monadic traversal).

module Join_with_monad (I : Preface_specs.MONAD) (T : functor (M : Preface_specs.MONAD) -> Preface_specs.TRAVERSABLE with type 'a t = 'a M.t and type 'a iter = 'a I.t) : Preface_specs.Traversable.API_OVER_MONAD with type 'a t = 'a I.t

Merge Traversable with Applicative

Produces a Preface_specs.APPLICATIVE module with a Preface_specs.TRAVERSABLE module (which relies on applicative traversal).

Manual construction

Advanced way to build a Preface_specs.TRAVERSABLE, constructing and assembling a component-by-component of Preface_specs.TRAVERSABLE. (In order to provide your own implementation for some features.)

Grouping of all components

module Via (C : Preface_specs.Traversable.CORE) (O : Preface_specs.Traversable.OPERATION with type 'a t = 'a C.t and type 'a iter = 'a C.iter) : Preface_specs.TRAVERSABLE with type 'a t = 'a C.t and type 'a iter = 'a C.iter

Building Core

Deriving Operation