% cpfields - Copy selected fields from one structure to another
%
% cpfields :: 
%    C:{[N]->string}   ~'fields names to copy', 
%    struct A          ~'struct with field names in A', 
%    struct B          ~'struct with field names in B'
% -> struct union(B,C) ~'struct with fields B union C' :-
%  	subset(C,A)      ~'target fields must be in A'.
function B=cpfields(fields,A,B)
	B=foldl(@(b,fn)setfield(b,fn,getfield(A,fn)),B,fields);
		
