account :: Call -> TwilioIVRCoroutine ()
account call = do
    -- work in the IO monad
    (ZonedTime (LocalTime _ timeOfDay) _) <- lift getZonedTime
    let hours = todHour timeOfDay
    say $ "Good " ++ if (hours < 12) then "morning"
        else if (hours < 20) then "afternoon"
        else "evening"
    user <- signin
    say $ "Your account balance is " ++ (show $ balance user)
    hangup -- Not actually needed
account :: Call -> TwilioIVRCoroutine ()
account call = do
    -- work in the IO monad
    (ZonedTime (LocalTime _ timeOfDay) _) <- lift getZonedTime
    let hours = todHour timeOfDay
    say $ "Good " ++ if (hours < 12) then "morning"
        else if (hours < 20) then "afternoon"
        else "evening"
    user <- signin
    say $ "Your account balance is " ++ (show $ balance user)
    hangup -- Not actually needed
account call = do
    -- work in the IO monad
    (ZonedTime (LocalTime _ timeOfDay) _) <- lift getZonedTime
    let hours = todHour timeOfDay
    say $ "Good " ++ if (hours < 12) then "morning"
        else if (hours < 20) then "afternoon"
        else "evening"
    user <- signin
    say $ "Your account balance is " ++ (show $ balance user)
    hangup -- Not actually needed