cpdef object identity(object x)


cdef object c_thread_first(object val, object forms)


cdef object c_thread_last(object val, object forms)


cdef class curry:
    cdef readonly object _sigspec
    cdef readonly object _has_unknown_args
    cdef readonly object func
    cdef readonly tuple args
    cdef readonly dict keywords
    cdef public object __doc__
    cdef public object __name__
    cdef public object __module__
    cdef public object __qualname__

cdef class memoize:
    cdef object func
    cdef object cache
    cdef object key
    cdef bint is_unary
    cdef bint may_have_kwargs


cdef class Compose:
    cdef public object first
    cdef public tuple funcs


cdef object c_compose(object funcs)


cdef object c_pipe(object data, object funcs)


cdef class complement:
    cdef object func


cdef class _juxt_inner:
    cdef public tuple funcs


cdef object c_juxt(object funcs)


cpdef object do(object func, object x)


cpdef object flip(object func, object a, object b)


cpdef object return_none(object exc)


cdef class excepts:
    cdef public object exc
    cdef public object func
    cdef public object handler

