% aparallel - Parallel application of arrows to multiple inputs
%
% aparallel :: 
%    arrow( A1@typelist(N1), B1@typelist(M1), C1) ~'arrow with N1 inputs, M1 outputs',
%	  arrow( A2@typelist(N2), B2@typelist(M2), C2) ~'arrow with N2 inputs, M2 outputs',
% -> arrow( [A1,A2], [B1,B2],cell {C1,C2})      ~'arrow with N1+N2 ins, M1+M2 outs'.
%
% The list of inputs of the second arrow is concatenated to those
% of the first. Ditto the ouputs. State is cell array pair of
% states of the two component arrows.

function o=aparallel(a1,a2)
	s.a1=a1;
	s.a2=a2;
	o=class(s,'aparallel',arrow(nargin(a1)+nargin(a2),nargout(a1)+nargout(a2)));
end
