Use cases for literate programming