!import[lilith.bootstrap, [py, lil]]

!def[lil, lilith.bootstrap.lil]
lilith.bootstrap.lil

!def[py, lilith.bootstrap.lil]
lilith.bootstrap.py

!def[abs, py]
return abs
!def[delattr, py]
return delattr
!def[hash, py]
return hash
!def[set, py]
return set
!def[all, py]
return all
!def[dict, py]
return dict
!def[min, py]
return min
!def[any, py]
return any
!def[dir, py]
return dir
!def[hex, py]
return hex
!def[next, py]
return next
!def[slice, py]
return slice
!def[ascii, py]
return ascii
!def[divmod, py]
return divmod
!def[id, py]
return id
!def[object, py]
return object
!def[sorted, py]
return sorted
!def[bin, py]
return bin
!def[enumerate, py]
return enumerate
!def[input, py]
return input
!def[oct, py]
return oct
!def[staticmethod, py]
return staticmethod
!def[bool, py]
return bool
!def[eval, py]
return eval
!def[int, py]
return int
!def[open, py]
return open
!def[str, py]
return str
!def[breakpoint, py]
return breakpoint
!def[exec, py]
return exec
!def[isinstance, py]
return isinstance
!def[ord, py]
return ord
!def[sum, py]
return sum
!def[bytearray, py]
return bytearray
!def[filter, py]
return filter
!def[issubclass, py]
return issubclass
!def[pow, py]
return pow
!def[super, py]
return super
!def[bytes, py]
return bytes
!def[float, py]
return float
!def[iter, py]
return iter
!def[print, py]
return print
!def[tuple, py]
return tuple
!def[callable, py]
return callable
!def[format, py]
return format
!def[len, py]
return len
!def[property, py]
return property
!def[type, py]
return type
!def[chr, py]
return chr
!def[frozenset, py]
return frozenset
!def[list, py]
return list
!def[range, py]
return range
!def[vars, py]
return vars
!def[classmethod, py]
return classmethod
!def[getattr, py]
return getattr
!def[locals, py]
return locals
!def[repr, py]
return repr
!def[zip, py]
return zip
!def[compile, py]
return compile
!def[map, py]
return map
!def[reversed, py]
return reversed
!def[complex, py]
return complex
!def[hasattr, py]
return hasattr
!def[max, py]
return max
!def[round, py]
return round

!def[add, py]
return lambda *args: sum([0] + (args or []))

!def[sub, py]
return lambda x, *ys: if not ys 0 - x else x - sum(ys)

!def[mul, py]
from functools import reduce
return lambda *args: reduce(lambda x, y: x * y, 1, args)

!def[mod, py]
return lambda x, y: x % y

!def[xor, py]
return lambda x, y: x ^ y

!def[shr, py]
return lambda x, y: x >> y

!def[shl, py]
return lambda x, y: x << y
