* renamed 'scan' to 'act' to avoid confusion with 'scan' from functional
languages like Haskell
+ concat for std::array concatenation