* REPL improvements
  * allow mid-functor newlines
  * : commands
    * help, describe commands
    * edit an atom's trail
* list/eq : [X × X, 2] → [[X] × [X], 2]
* list/zip : [X] × [Y] → [X × Y]
* list/tail : [X] → [X]
* list/append : [X] × [X] → [X]
* rat
* refactoring from the bikeshed: ignore -> !
  * Might not be important since fun/const is the only user!
* Transcendental and other constants
  * Euler's constant e
  * Euler's constant gamma
* Double-negation monad for CPS?
  * Cont is available but not fully developed
    * monads/cont/join, monads/cont/bind, etc.
* fun/name should always start from 1
  * Requires changing some callers
  * Might not be feasible unless we switch to stricter monoidal categories
    * We'd need an equivalence X × 1 → X
* Prove that nat/add is smallest with its behavior
* Streams
  * Monad: X → [N, X]
    * Special case of reader monad
  * Distributive law: [N, X] + 1 → [N, X + 1]
    * Creates a stream+maybe monad: X → [N, X + 1]
* Subtypes?
  * Interval type?
* Cantor's type of bitstrings: N -> 2
* The square type: For a type X, 2 -> X
  * Another special case of reader monad
* Moore machines: For state type Q and input type S, Q × S -> Q
  * Moore transducers: [Q × S, Q] -> [Q × S, Q]
* Mealy machines: For state type Q, input type S, and output type L, Q × S -> Q × L
* Jets
  * how to replace e.g. nat/add?
    * find its subgraph with E-matching?
    * hook the hive to load a specialized routine during codeload?
* Search for more optimizations
  * Some arrows have inferred types that suggest they should be simplifiable
    * X -> X: should be id?
    * X -> 1: should be ignore
    * 1 -> 2: should be t or f
* New int type
  * Current type: quotient of N × N under subtraction
    * big, tricky case analysis, big quotient overlap
  * Proposed type: quotient of N + N gluing zero
    * almost minimal, sign bit, quotient glues exactly two elements into one
* Refactoring tools
  * Find all leaves in a hive
  * Rename an expression and change all callers
