push/pop: restore trail, causes, learnts