def conj(head, tail): ''' Prepend an element to a collection, returning a new copy Exact behaviour will differ depending on the collection ''' tail_type = type(tail) return op.concat(tail_type([head]), tail)