'Implements the copy.deepcopy() interface
:param memo:
A dict for memoization
:return:
A new deep copy of the Concat object and all child objects'

def __deepcopy__(self, memo):

    new_obj = self.__class__()
    memo[id(self)] = new_obj
    new_obj._copy(self, copy.deepcopy)
    return new_obj
