% unfolder - arrow to generate sequence by unfolding state
%
% unfolder ::
%    (S -> B, S)  ~'function to state to output and next state',
%    S            ~'initial state'
% -> arrow({},{B},S) ~'arrow from A to B with state of type S'.

function o=unfolder(fn,s0)
	s.fn=fn; s.s0=s0;
	o=class(s,'unfolder',arrow(0,1));
end

