module Update.UpdateEdition ( updateEdition , EditionAction(..) ) where import Char (..) import Model.Edition.Edition (..) import Utils.List (..) type EditionAction = DeleteLast | AddChar KeyCode updateEdition : EditionAction -> Edition -> Edition updateEdition action edition = case action of DeleteLast -> case maybeTail edition.chars of Just tailChars -> { edition | chars <- tailChars } Nothing -> edition AddChar keyCode -> case keyCodeToChar edition.kind keyCode of Just char -> { edition | chars <- char :: edition.chars } Nothing -> edition