# Module `Alg_structs__.Applicative`

## Seed

`module type Seed = sig ... end`

The

`Seed`

needed to generate an implementation of Applicative

## Interface

`module type S = sig ... end`

## Laws

`module Law : functor (A : S) -> sig ... end`

`Law`

notes the laws that should be obeyed by any instantiation of Applicative in the form of predicates that should be true for any arguments of the appropriate type.

## Constructors

Module functors for creating implementations of Applicative

## Implementations

Implementations for common data structures. See the documentation for each implementation module for an illustrative example.

`module Option : S with type 'a t = 'a Stdlib.Option.t`

`Option`

provides sequencing of partial computations. E.g,

`module List : S with type 'a t = 'a Stdlib.List.t`

`List`

defines applications that work across all possible combinations of the items in the respective lists. This is often used to model non-determinism.

`module Array : S with type 'a t = 'a Stdlib.Array.t`

As

`List`

but using arrays.