Optimise concatenating a list to an empty list
Optimise concatenating a list to an empty list

More precisely, in concatLists, if all lists except one are empty,
then just return the non-empty list.  This reduces the number of list
element allocations by 32% when evaluating a NixOS system
configuration.

tchajed/nix,vizanto/nix,garbas/nix,puffnfresh/nix,layus/nix,edolstra/nix,acowley/nix,joelmo/nix,peti/nix,nbp/nix,bjornfor/nix,vcunat/nix,jcumming/nix,tchajed/nix,edolstra/nix,offlinehacker/nix,nbp/nix,shlevy/nix,rowhit/nix,jcumming/nix,NixOS/nix,garbas/nix,bjornfor/nix,aucampia/nix,layus/nix,rycee/nix,nbp/nix,bjornfor/nix,acowley/nix,shlevy/nix,offlinehacker/nix,joelmo/nix,aucampia/nix,offlinehacker/nix,gebner/nix,garbas/nix,jcumming/nix,peti/nix,zimbatm/nix,rowhit/nix,ysangkok/nix,bennofs/nix,zimbatm/nix,peti/nix,acowley/nix,garbas/nix,gebner/nix,rycee/nix,dtzWill/nix,shlevy/nix,dtzWill/nix,ttuegel/nix,rycee/nix,bennofs/nix,pikajude/nix,shlevy/nix,rowhit/nix,layus/nix,offlinehacker/nix,garbas/nix,ehmry/nix,vizanto/nix,gebner/nix,pikajude/nix,wmertens/nix,bjornfor/nix,wmertens/nix,vcunat/nix,aucampia/nix,rycee/nix,layus/nix,vizanto/nix,rowhit/nix,zimbatm/nix,ysangkok/nix,ehmry/nix,joelmo/nix,jcumming/nix,NixOS/nix,NixOS/nix,aucampia/nix,ehmry/nix,ehmry/nix,bennofs/nix,gridaphobe/nix,rycee/nix,dtzWill/nix,ehmry/nix,peti/nix,ttuegel/nix,edolstra/nix,shlevy/nix,wmertens/nix,nbp/nix,joelmo/nix,gridaphobe/nix,puffnfresh/nix,gridaphobe/nix,edolstra/nix,tchajed/nix,tchajed/nix,peti/nix,gridaphobe/nix,dtzWill/nix,acowley/nix,ttuegel/nix,dezgeg/nix,NixOS/nix,wmertens/nix,layus/nix,ysangkok/nix,ttuegel/nix,edolstra/nix,puffnfresh/nix,vizanto/nix,bennofs/nix,dezgeg/nix,dezgeg/nix,puffnfresh/nix,NixOS/nix,vcunat/nix,dtzWill/nix,ehmry/nix,dezgeg/nix,dezgeg/nix,vcunat/nix,zimbatm/nix,pikajude/nix,gebner/nix