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