array::difference function
surface: allow quasis etc. in append