'Compose symbol on inputs.
This call mutates the current symbol.
Parameters
args:
provide positional arguments
kwargs:
provide keyword arguments
Returns
the resulting symbol'

def _compose(self, *args, **kwargs):

    name = kwargs.pop('name', None)
    if name:
        name = c_str(name)
    if ((len(args) != 0) and (len(kwargs) != 0)):
        raise TypeError('compose    only    accept    input    Symbols                                                                    either    as    positional    or    keyword    arguments,    not    both')
    for arg in args:
        if (not isinstance(arg, SymbolBase)):
            raise TypeError('Compose    expect    `Symbol`    as    arguments')
    for val in kwargs.values():
        if (not isinstance(val, SymbolBase)):
            raise TypeError('Compose    expect    `Symbol`    as    arguments')
    num_args = (len(args) + len(kwargs))
    if (len(kwargs) != 0):
        keys = c_array(ctypes.c_char_p, [c_str(key) for key in kwargs])
        args = c_array(SymbolHandle, [s.handle for s in kwargs.values()])
    else:
        keys = None
        args = c_array(SymbolHandle, [s.handle for s in args])
    check_call(_LIB.NNSymbolCompose(self.handle, name, num_args, keys, args))
