Module Puzzle_undo

type 'a t = {
  1. now : 'a;
  2. past : 'a list;
}
val start : 'a -> 'a t
val record : 'a -> 'a t -> 'a t
val undo : 'a t -> 'a t