lets
` <*>
  + pure GHC.Show.show
  ` <*>
    + <*>
    | + pure (\x_0 -> \x_1 -> x_0)
    | ` <|>
    |   + <|>
    |   | + <*>
    |   | | + <*>
    |   | | | + pure (\x_0 -> \x_1 -> x_0)
    |   | | | ` pure 'a'
    |   | | ` satisfy
    |   | ` <*>
    |   |   + <*>
    |   |   | + pure (\x_0 -> \x_1 -> x_0)
    |   |   | ` pure 'b'
    |   |   ` satisfy
    |   ` <*>
    |     + <*>
    |     | + pure (\x_0 -> \x_1 -> x_0)
    |     | ` pure 'c'
    |     ` satisfy
    ` <*>
      + <*>
      | + pure (\x_0 -> \x_1 -> x_0)
      | ` pure 'd'
      ` satisfy