* renamed 'scan' to 'act' to avoid confusion with 'scan' from
functionals languages
+ concat for concatenating std::arrays