I\'m not even sure this is possible in any kind of monad; does it violate monad laws? But it seems like something that should be possible in some kind of construct or other. S
Use a monad transformer to stack on a WriterT that counts how many >>'s and >>='s have been applied to the underlying monad.
>>
>>=