% buffer - returns an arrow that collects several outputs from another arrow
%
% buffer :: 
%    arrow({},{[[N]]},S) ~'arrow with no inputs and one output',
%    L:natural           ~'width of buffer'
% -> arrow({}, {[[N,L]]},S).
function b=buffer(a,width), b=abuffer(a,width);
