Applicative issue or documentation problem
The operator (<*) from Control.Applicative (Hackage base-4.15.0.0 docs) seems to introduce an odd asymmetry.
test1 = (+) <$> (Just 2) <*> (Just 3)
test2 = (+) <$> (Just 2) *> (Just 3)
test3 = (+) <$> (Just 2) <* (Just 3)
When executed test1 returns (Just 5), test2 returns (Just 3), because the first argument is ignored, as the documentation says it should be, but test3 fails with a Show instance error, because it is typed as Maybe (Integer -> Integer), and not Maybe Integer like the other two cases. The documentation seems to suggest that in the case of test3 the second argument should be ignored, and the result should be (Just 2). The signature deduced for test3 makes sense if you think in terms of sections like (2+), but by this reasoning test2 should fail because it introduces the section (+3). There is an asymmetry?