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