swer :: Label -> IORef Bool -> IORef String -> IO ()
answer mainLabel hasAnswer lastAnswer = do
    hasAnswer_ <- readIORef hasAnswer
    if hasAnswer_ then writeIORef hasAnswer False else do
        answer_ <- readIORef lastAnswer
        append answer_ mainLabel hasAnswer_


answer :: Label -> IORef Bool -> IORef String -> IO ()
answer mainLabel hasAnswer lastAnswer = do
    hasAnswer_ <- readIORef hasAnswer
    if hasAnswer_ then writeIORef hasAnswer False else do
        answer_ <- readIORef lastAnswer
        append answer_ mainLabel hasAnswer_
answer mainLabel hasAnswer lastAnswer = do
    hasAnswer_ <- readIORef hasAnswer
    if hasAnswer_ then writeIORef hasAnswer False else do
        answer_ <- readIORef lastAnswer
        append answer_ mainLabel hasAnswer_