module Base exposing (..) import Array exposing (Array) import Time exposing (Posix) type WordStatus = Correct | Wrong | Todo | CurrentWord type alias Word = { content : String , status : WordStatus } type alias Model = { begin : Maybe Posix , end : Maybe Posix , words : Array Word , accuracy : Maybe Float , config : Config , currentWord : Int , inputBox : String , inputCorrect : Bool } type alias Config = { punctuation : Bool , capitals : Bool , length : Int } type Msg = Started Time.Posix | Finished Time.Posix | CorrectInput | CorrectSoFar | NextWord | WrongInput | InputChanged String | LoadWords (List String) | WordLengthChanged Int | Redo