Kiselyov, et al.. Backtracking, Interleaving, and Terminating Monad Transformers. ACM Press, 2005, doi:10.1145/1086365.1086390.