archives

Real Haskell projects query

This might be of interest around here.

How do you call such a design pattern

I wonder how you would name a design pattern, where you implement a "module" behaviour by function of the following form

f : State x Command -> State x (array of ExternalCommand)

or (equivalently)

f : State x Command x ([] -> ExternalCommand) -> State

where
- State, Command, and ExternalCommand are purely data (no resources nor functions)
- ExternalCommand is likely to describe operations on (external) resources
- in the second form, ExternalCommand-s should be processed after evaluating f (they could be queued externally)