Union

This should work and fully optimized, but for the moment it needs a patch in macaque (see ocsigen/macaque#13) as it fails at runtime