Module type Logic_monad.Param

The monad is parametrised in the types of state, environment and writer.

type e

Read only

type w

Write only

val wunit : w

w must be a monoid

val wprod : w -> w -> w
type s

Read-write

type u

Update-only. Essentially a writer on u->u.

val uunit : u

u must be pointed.