lets
` <*>
  + pure GHC.Show.show
  ` <|>
    + try
    | ` <*>
    |   + <*>
    |   | + <*>
    |   | | + pure (\x_0 -> \x_1 -> \x_2 -> (GHC.Types.:) 'a' ((GHC.Types.:) 'b' ((GHC.Types.:) 'c' GHC.Types.[])))
    |   | | ` satisfy ((GHC.Classes.==) 'a')
    |   | ` satisfy ((GHC.Classes.==) 'b')
    |   ` satisfy ((GHC.Classes.==) 'c')
    ` try
      ` <*>
        + <*>
        | + pure (\x_0 -> \x_1 -> (GHC.Types.:) 'd' ((GHC.Types.:) 'e' GHC.Types.[]))
        | ` satisfy ((GHC.Classes.==) 'd')
        ` satisfy ((GHC.Classes.==) 'e')