Describir: Program Slicing Based on Monadic Semantics