Parameter Logical.1-P

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.