updateStateGetSelectedGoals :: ProofState
        -> ListBox String
        -> IO ProofState
updateStateGetSelectedGoals s lb =
    do sel <- getSelection lb :: IO (Maybe [Int])
       return s {selectedGoals =
                      maybe [] (map (toGoals s !!)) sel}
updateStateGetSelectedGoals :: ProofState
        -> ListBox String
        -> IO ProofState
updateStateGetSelectedGoals s lb =
    do sel <- getSelection lb :: IO (Maybe [Int])
       return s {selectedGoals =
                      maybe [] (map (toGoals s !!)) sel}
updateStateGetSelectedGoals s lb =
    do sel <- getSelection lb :: IO (Maybe [Int])
       return s {selectedGoals =
                      maybe [] (map (toGoals s !!)) sel}