Just to complement the solutions above…
All of them produce the same result:
1> lists:flatten([[K, V] || K := V <- #{a => b, c => d, e => f, g => h, i => j, l => m}]).
[c,d,i,j,a,b,l,m,e,f,g,h]
2> lists:append([[K, V] || K := V <- #{a => b, c => d, e => f, g => h, i => j, l => m}]).
[c,d,i,j,a,b,l,m,e,f,g,h]
3> [ X || K := V <- #{a => b, c => d, e => f, g => h, i => j, l => m}, X <- [K, V] ].
[c,d,i,j,a,b,l,m,e,f,g,h]
But as expected, using list comprehension is much faster:
./erlperf \
'lists:flatten([[K, V] || K := V <- #{a => b, c => d, e => f, g => h, i => j, l => m}]).' \
'lists:append([[K, V] || K := V <- #{a => b, c => d, e => f, g => h, i => j, l => m}]).' \
'[ X || K := V <- #{a => b, c => d, e => f, g => h, i => j, l => m}, X <- [K, V] ].'
Code || QPS Time Rel
[ X || K := V <- #{a => b, c => d, e => f, g => h, i => j, l => m}, X <- [K, V] ]. 1 9910 Ki 100 ns 100%
lists:append([[K, V] || K := V <- #{a => b, c => d, e => f, g => h, i => j, l => m}]). 1 3501 Ki 285 ns 35%
lists:flatten([[K, V] || K := V <- #{a => b, c => d, e => f, g => h, i => j, l => m}]). 1 3010 Ki 332 ns 30%
Anyway, I don’t know if there is any limitation, but IMO support for adding multiple elements should be a nice addition to list comprehension.