Generalized Heat Engine — LessWrong