This is certainly not a joke, just like the implementation of the monodar monad is not a joke. Unlike the simple type a you get all the useful instances, and you get an extra bottom that gives the singleton tuple much closer to the semantics of the other types of tuples.
One use case is the same as monad-identity, generalization. You have an applicative / monadic function that has the type of polymorphic functor. For example, many useful packages, such as enumerator support, work on the selected monad selected by the user. The slightly different OneTuple semantics (compared to Identity ) can be very useful when you have a complex data dependency or want to use extra laziness that Identity does not give you.
ertes
source share