package orsetto
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha512=e260412b2dd0f98cfe3dc7ed5c31a694eb31c93cd207c51fa12675b790234ee0ad3bf07d9be17a4dc266fedfe55b14c967cad7bc0c9414063eef8afd59f3d0d1
doc/orsetto.cf/Cf_smonad/index.html
Module Cf_smonad
The state monad and its operators.
Overview
The state monad represents the computation of transtions on its encapsulated state. It can be used as a basic element of a deterministic finite automaton.
Types
module Basis : Cf_monad.Binary.Basis with type ('s, 'r) t := ('s, 'r) tinclude Cf_monad.Binary.Profile with type ('s, 'r) t := ('s, 'r) t
Module inclusions from Cf_monad_core and Cf_seqmonad.
include Cf_monad.Core.Binary.Profile with type ('m, 'r) t := ('m, 'r) t
val return : 'r -> ('m, 'r) tUse return a to apply the binding to a.
Use bind m f to bind f to the value returned by m.
Use map m ~f to return the result of applying f to the value returned by m.
Use product a b to return the monoidal product of a and b.
module Affix : Cf_monad_core.Binary.Affix with type ('m, 'r) t := ('m, 'r) tOpen Affix to include the affix monad operators.
Use disregard m to ignore the value returned by m and apply the unit value to the bound function.
module Infix = AffixDeprecated module alias.
include Cf_seqmonad.Functor.Binary with type ('m, 'r) t := ('m, 'r) t
Use collect s to bind in sequence every monad value in the finite sequence s and collect all the returned values. Returns (n, s) where n is the number of values collected and s is the list of values in reverse order, i.e. from last collected to first collected. Never returns and exhausts all memory if s never terminates.
Operators
val nil : ('s, unit) tA monad that returns unit and performs no operation.
val load : ('s, 's) tA monad that returns the encapsulate state.
val store : 's -> ('s, unit) tUse store s to produce a monad with s as the value of its encapsulated state.
val modify : ('s -> 's) -> ('s, unit) tUse modify f to produce a monad that applies f to the encapsulated state to obtain a new state value, and which returns the unit value as its result when evaluated.
val field : ('s -> 'r) -> ('s, 'r) tUse field f to produce a monad that returns the result of applying f to the value of the encapsulated state.
val eval : ('s, unit) t -> 's -> 'sUse eval m s to evaluate the monad, which produces a function from an initial state s to a final state.