fun timer action period =
    let
        fun loop () =
            action;
            sleep period;
            loop ()
    in
        loop ()
    end