'Construct a new ``Compiled`` object.
:param dialect: ``Dialect`` to compile against.
:param statement: ``ClauseElement`` to be compiled.
:param bind: Optional Engine or Connection to compile this
statement against.
:param compile_kwargs: additional kwargs that will be
passed to the initial call to :meth:`.Compiled.process`.
.. versionadded:: 0.8'

def __init__(self, dialect, statement, bind=None, compile_kwargs=util.immutabledict()):

    self.dialect = dialect
    self.bind = bind
    if (statement is not None):
        self.statement = statement
        self.can_execute = statement.supports_execution
        self.string = self.process(self.statement, **compile_kwargs)
