labels can have description text
initial cut at lifting a fold operation into a process
moral equivalent of the state monad