halfway optimized mconcat to traverse list of gls only once