lets
` <*>
  + pure Term
  ` <|>
    + try
    | ` <*>
    |   + <*>
    |   | + pure cons
    |   | ` <*>
    |   |   + <*>
    |   |   | + pure (\u1 -> (\u2 -> u1))
    |   |   | ` pure 'a'
    |   |   ` satisfy
    |   ` <*>
    |     + <*>
    |     | + pure cons
    |     | ` <*>
    |     |   + <*>
    |     |   | + pure (\u1 -> (\u2 -> u1))
    |     |   | ` pure 'a'
    |     |   ` satisfy
    |     ` pure Term
    ` try
      ` <*>
        + <*>
        | + pure cons
        | ` <*>
        |   + <*>
        |   | + pure (\u1 -> (\u2 -> u1))
        |   | ` pure 'a'
        |   ` satisfy
        ` <*>
          + <*>
          | + pure cons
          | ` <*>
          |   + <*>
          |   | + pure (\u1 -> (\u2 -> u1))
          |   | ` pure 'b'
          |   ` satisfy
          ` pure Term