':param types: a sequence of sub types in this collection'

def __init__(self, types, **kwargs):

    instances = []
    for t in types:
        inheritance_comparator = (issubclass if isinstance(t, type) else isinstance)
        if (not inheritance_comparator(t, Column)):
            raise ValidationError(('%s    is    not    a    column    class' % (t,)))
        if (t.db_type is None):
            raise ValidationError(('%s    is    an    abstract    type' % (t,)))
        inst = (t() if isinstance(t, type) else t)
        if isinstance(t, BaseCollectionColumn):
            inst._freeze_db_type()
        instances.append(inst)
    self.types = instances
    super(BaseCollectionColumn, self).__init__(**kwargs)
