% construct - Instantiate live processing unit
%
% construct :: 
%    arrow(A:arglist(N), B:arglist(M), S) ~'the arrow to instantiate',
%    {[N]->size}                          ~'the sizes of the inputs'
% -> unit(A,B,S)                          ~'live processing unit structure'.
%
% NB the type size denotes a row vector of array dimensions.
% The type unit(A,B,S) is a structure containing
% values and functions for running the live processing unit. Its fields
% are as follows:
%
% unit(A:arglist(N),B:arglist(M),S) :== struct {
%       starting :: () -> action ();
%       stopping :: () -> action ();
%       dispose  :: () -> action ();
%       set_state :: S -> action ()
%       get_state :: () -> S;
%       viewables :: () -> list(samer.core.Viewable);
%       process   :: A{:} -> B{:}
%    }.

function u=construct(s,sizes_in)
	error('cannot construct system for base arrow class');

