[Haskell] PersistentDocument: A library for dealing with undo and file management in Haskell