Not : Type -> Type  `Not x` is an alias for `x -> Void`, indicating that any term of type `x`
  leads to a contradiction. It can be used in conjunction with `void` or
  `absurd`.
  Totality: total
  Visibility: public exportthe : (0 a : Type) -> a -> a  Manually assign a type to an expression.
  @ a the type to assign
  @ x the element to get the type
  Totality: total
  Visibility: public exportid : a -> a  Identity function.
  Totality: total
  Visibility: public exportdup : a -> (a, a)  Function that duplicates its input
  Totality: total
  Visibility: public exportconst : a -> b -> a  Constant function.  Ignores its second argument.
  Totality: total
  Visibility: public export(.) : (b -> c) -> (a -> b) -> a -> c  Function composition.
  Totality: total
  Visibility: public export
  Fixity Declaration: infixr operator, level 9(.:) : (c -> d) -> (a -> b -> c) -> a -> b -> d  Composition of a two-argument function with a single-argument one.
  `(.:)` is like `(.)` but the second argument and the result are two-argument functions.
  This operator is also known as "blackbird operator".
  Totality: total
  Visibility: public export
  Fixity Declaration: infixr operator, level 9on : (b -> b -> c) -> (a -> b) -> a -> a -> c  `on b u x y` runs the binary function b on the results of applying
  unary function u to two arguments x and y. From the opposite perspective,
  it transforms two inputs and combines the outputs.
  
  ```idris example
  ((+) `on` f) x y = f x + f y
  ```
  
  Typical usage:
  
  ```idris example
  sortBy (compare `on` fst).
  ```
  Totality: total
  Visibility: public export
  Fixity Declaration: infixl operator, level 0flip : (a -> b -> c) -> b -> a -> c  Takes in the first two arguments in reverse order.
  @ f the function to flip
  Totality: total
  Visibility: public exportapply : (a -> b) -> a -> b  Function application.
  Totality: total
  Visibility: public exportcurry : ((a, b) -> c) -> a -> b -> c-   Totality: total
  Visibility: public export uncurry : (a -> b -> c) -> (a, b) -> c-   Totality: total
  Visibility: public export ($) : {0 b : a -> Type} -> ((x : a) -> b x) -> (x : a) -> b x  ($) is compiled specially to shortcut any tricky unification issues, but if
  it did have a type this is what it would be, and it might be useful to
  use directly sometimes (e.g. in higher order functions)
  Totality: total
  Visibility: public export
  Fixity Declaration: infixr operator, level 0cong : (0 f : (t -> u)) -> (0 _ : a = b) -> f a = f b  Equality is a congruence.
  Totality: total
  Visibility: public exportcong2 : (0 f : (t1 -> t2 -> u)) -> (0 _ : a = b) -> (0 _ : c = d) -> f a c = f b d  Two-holed congruence.
  Totality: total
  Visibility: exportdepCong : {0 p : a -> Type} -> (0 f : ((x : a) -> p x)) -> x1 = x2 -> f x1 = f x2  Dependent version of `cong`.
  Totality: total
  Visibility: public exportdepCong2 : {0 p : a -> Type} -> {0 q : (x : a) -> p x -> Type} -> (0 f : ((x : a) -> (y : p x) -> q x y)) -> x1 = x2 -> y1 = y2 -> f x1 y1 = f x2 y2  Dependent version of `cong2`.
  Totality: total
  Visibility: public exportirrelevantEq : (0 _ : a = b) -> a = b  Irrelevant equalities can always be made relevant
  Totality: total
  Visibility: exportdata Bool : Type  Boolean Data Type.
  Totality: total
  Visibility: public export
  Constructors:
  False : Bool   True : Bool
  Hints:
  Eq Bool   Ord Bool   Show Bool   Uninhabited (True = False)   Uninhabited (False = True)
not : Bool -> Bool  Boolean NOT.
  Totality: total
  Visibility: public export(&&) : Bool -> Lazy Bool -> Bool  Boolean AND only evaluates the second argument if the first is `True`.
  Totality: total
  Visibility: public export
  Fixity Declaration: infixr operator, level 5(||) : Bool -> Lazy Bool -> Bool  Boolean OR only evaluates the second argument if the first is `False`.
  Totality: total
  Visibility: public export
  Fixity Declaration: infixr operator, level 4ifThenElse : Bool -> Lazy a -> Lazy a -> a  Non-dependent if-then-else
  Totality: total
  Visibility: public exportintToBool : Int -> Bool-   Totality: total
  Visibility: public export data List : Type -> Type  Generic lists.
  Totality: total
  Visibility: public export
  Constructors:
  Nil : List a  Empty list
   (::) : a -> List a -> List a  A non-empty list, consisting of a head element and the rest of the list.
  Hints:
  Alternative List   Applicative List   Eq a => Eq (List a)   Foldable List   Functor List   Monad List   Monoid (List a)   Ord a => Ord (List a)   Semigroup (List a)   Show a => Show (List a)   Traversable List
data SnocList : Type -> Type  Snoc lists.
  Totality: total
  Visibility: public export
  Constructors:
  Lin : SnocList a  Empty snoc-list
   (:<) : SnocList a -> a -> SnocList a  A non-empty snoc-list, consisting of the rest of the snoc-list and the final element.
  Hints:
  Eq a => Eq (SnocList a)   Ord a => Ord (SnocList a)