doSelectProverPath :: ProofState -> ListBox String -> IO ProofState
doSelectProverPath s lb =
    do selected <- getSelection lb :: IO (Maybe [Int])
       return s {selectedProver =
                      maybe Nothing
                            (\ (index : _) ->
                                 Just (Map.keys (proversMap s) !! index))
                            selected
                 }
doSelectProverPath :: ProofState -> ListBox String -> IO ProofState
doSelectProverPath s lb =
    do selected <- getSelection lb :: IO (Maybe [Int])
       return s {selectedProver =
                      maybe Nothing
                            (\ (index : _) ->
                                 Just (Map.keys (proversMap s) !! index))
                            selected
                 }
doSelectProverPath s lb =
    do selected <- getSelection lb :: IO (Maybe [Int])
       return s {selectedProver =
                      maybe Nothing
                            (\ (index : _) ->
                                 Just (Map.keys (proversMap s) !! index))
                            selected
                 }