from .add import add
from .all import all
from .any import any
from .append import append
from .apply import apply
from .compare import compare
from .complement import complement
from .compose import compose
from .cond import cond
from .const import const
from .curry import curry
from .dec import dec
from .equals import equals
from .F import F
from .filter import filter
from .gt import gt
from .gte import gte
from .has import has
from .head import head
from .identity import identity
from .if_else import if_else
from .inc import inc
from .join import join
from .join_with import join_with
from .lowercase import lowercase
from .lt import lt
from .lte import lte
from .map import map
from .multiply import multiply
from .otherwise import otherwise
from .pipe import pipe
from .pluck import pluck
from .product import product
from .prop import prop
from .reduce import reduce
from .reduce_right import reduce_right
from .reverse import reverse
from .split import split
from .split_with import split_with
from .sum import sum
from .T import T
from .tail import tail
from .tap import tap
from .assoc import assoc
from .abspath import abspath
from .open import open

# @curry
# def flatten(xs):
#     # TODO: test me
#     return reduce(lambda z, y: z + y, [])


# @curry
# def dedupe(xs):
#     # TODO: test me
#     return list(set(xs))




# @curry
# def all(f, xs):
#     return __builtin__.all(f(x) for x in xs)


# @curry
# def elem(x, xs):
#     return x in xs



# @curry
# def both(a, b, xs):
#     return a(xs) and b(xs)
