'Construct a :class:`.Function`.
The :data:`.func` construct is normally used to construct
new :class:`.Function` instances.'

def __init__(self, name, *clauses, **kw):

    self.packagenames = (kw.pop('packagenames', None) or [])
    self.name = name
    self._bind = kw.get('bind', None)
    self.type = sqltypes.to_instance(kw.get('type_', None))
    FunctionElement.__init__(self, *clauses, **kw)
