/// <returns>An event that fires on the updated state values.</returns>
/// <example>
/// <code lang="fsharp">
/// open System
///
/// let createTimer interval =
/// let timer = new Timers.Timer(interval)
/// timer.AutoReset <- true
/// timer.Enabled <- true
/// timer.Elapsed
///
/// let timer = createTimer 1000
///
/// let multiplyBy number =
/// fun (timerEvent: Timers.ElapsedEventArgs) -> number * timerEvent.SignalTime./// Second
///
/// let initialState = 2
///
/// let scan = Event.scan multiplyBy initialState timer
///
/// scan.Subscribe(fun x -> printf "%A " x) |> ignore
///
/// Console.ReadLine() |> ignore
/// </code>
/// The sample will output depending on your timestamp. It will multiply the seconds with an initial state of 2: <c>106 5724 314820 17629920 1004905440 -1845026624 -1482388416</c>