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