+-- | Attempt to parse an 'Int' from a 'String'. This is just a 'Maybe'
+-- wrapper around 'reads'.
+parse_int :: String -> Maybe Int
+parse_int s =
+ case (reads s) of
+ [(n,_)] -> Just n
+ _ -> Nothing
+
+set_heartbeat :: String -> Options -> IO Options
+set_heartbeat arg opts = do
+ let new_heartbeat = parse_int arg
+ return opts { opt_heartbeat = new_heartbeat }
+