'Produce a string-compiled form of this :class:`.TypeEngine`.
When called with no arguments, uses a "default" dialect
to produce a string result.
:param dialect: a :class:`.Dialect` instance.'

def compile(self, dialect=None):

    if (not dialect):
        dialect = self._default_dialect()
    return dialect.type_compiler.process(self)
