def create(*args): name = '**' args = [Arg('e1', None), Arg('e2', None)] return PowerFun(name, args)
def create(*args): name = '%%' args = [Arg('e1', None), Arg('e2', None)] return DivModFun(name, args)
def create(*args): name = '*' args = [Arg('e1', None), Arg('e2', None)] return MultiplyFun(name, args)
def create(*args): name = '/' args = [Arg('e1', None), Arg('e2', None)] return DivideFun(name, args)
def create(*args): name = 'c' args = [Arg('...', None)] return VectorFun(name, args)
def create(*args): name = '-' args = [Arg('e1', None), Arg('e2', None)] return SubtractFun(name, args)
def create(*args): name = '!' args = [Arg('x', None)] return NotFun(name, args)
def create(*args): name = 'integer' args = [Arg('length', Atomic(0, types.IntegerType()))] return IntegerFun(name, args)
def create(*args): name = '&' args = [Arg('x', None), Arg('y', None)] return AndFun(name, args)
def create(*args): name = '|' args = [Arg('x', None), Arg('y', None)] return OrFun(name, args)
def create(*args): name = 'list' args = [Arg('...', None)] return ListFun(name, args)
def create(*args): name = '<-' args = [Arg('x', None), Arg('value', None)] return ArrowDefaultAssignFun(name, args)
def create(*args): name = 'logical' args = [Arg('length', Atomic(0, types.IntegerType()))] return LogicalFun(name, args)
def create(*args): name = 'cat' args = [Arg('...', None)] return PowerFun(name, args)
def create(*args): name = '+' args = [Arg('e1', None), Arg('e2', None)] return AddFun(name, args)
def create(*args): name = '[' args = [Arg('...', None)]
def create(*args): name = 'numeric' args = [Arg('length', Atomic(0, types.IntegerType()))] return NumericFun(name, args)