aF_j      Safe-InferredmThe data type representing the timer. For now, the action and delay are fixed for the lifetime of the Timer.yIf the MVar is empty, someone if mutating the timer. If the MVar contains Nothing, the timer was not started/initialized. Safe-Inferred3 UtilityyAttempts to start a timer. The started timer will have the given delay and action associated and will be one-shot timer.QIf the timer was initialized before it will be stopped (killed) and started anew.}Returns True if the start was successful, otherwise (e.g. other thread is attempting to manipulate the timer) returns False.yAttempts to start a timer. The started timer will have the given delay and action associated and will be repeated timer.QIf the timer was initialized before it will be stopped (killed) and started anew.}Returns True if the start was successful, otherwise (e.g. other thread is attempting to manipulate the timer) returns False.Attempts to restart already initialized timer. The restarted timer will have the same delay and action associated and will be one-shot timer.Returns True if the restart was successful, otherwise (e.g. other thread is attempting to manipulate the timer or the timer was not initialized) returns False.Attempts to restart already initialized timer. The restarted timer will have the same delay and action associated and will be one-shot timer.Returns True if the restart was successful, otherwise (e.g. other thread is attempting to manipulate the timer or the timer was not initialized) returns False.YExecutes the the given action once after the given delay elapsed, no sooner, maybe later.ZExecutes the the given action repeatedly with at least the given delay between executions.This function is blocking. It waits until it can stop the timer (until there is a value in the MVar), then it kills the timer's thread._After this action completes, the Timer is not innitialized anymore (the MVar contains Nothing). 3Creates a new timer. This does not start the timer.Forks a new thread that runs the supplied action (at least) after the given delay and stores the action, delay and thread id in the immutable TimerImmutable value.Forks a new thread that repeats the supplied action with (at least) the given delay between each execution and stores the action, delay and thread id in the immutable TimerImmutable value.SForks a new thread that runs the supplied action (at least) after the given delay.lForks a new thread that repeats the supplied action with (at least) the given delay between each execution. %The action the timer will start with.$The dealy the timer will start with.%The action the timer will start with.$The dealy the timer will start with.The action to be executed.7The (minimal) time until the execution in microseconds.The action to be executed.'The (minimal) delay between executions. The action to be executed.7The (minimal) time until the execution in microseconds.The action to be executed.7The (minimal) time until the execution in microseconds.      Safe-Inferred Utility Attempts to start a timer. The started timer will have the given delay and action associated with it and will be one-shot timer.QIf the timer was initialized before it will be stopped (killed) and started anew.}Returns True if the start was successful, otherwise (e.g. other thread is attempting to manipulate the timer) returns False. Attempts to start a timer. The started timer will have the given delay and action associated with it and will be repeated timer.QIf the timer was initialized before it will be stopped (killed) and started anew.}Returns True if the start was successful, otherwise (e.g. other thread is attempting to manipulate the timer) returns False. Attempts to restart already initialized timer. The restarted timer will have the same delay and action associated with it and will be one-shot timer.Returns True if the restart was successful, otherwise (e.g. other thread is attempting to manipulate the timer or the timer was not initialized) returns False.Attempts to restart already initialized timer. The restarted timer will have the same delay and action associated with it and will be one-shot timer.Returns True if the restart was successful, otherwise (e.g. other thread is attempting to manipulate the timer or the timer was not initialized) returns False.YExecutes the the given action once after the given delay elapsed, no sooner, maybe later.ZExecutes the the given action repeatedly with at least the given delay between executions.This function is blocking. It waits until it can stop the timer (until there is a value in the MVar), then it kills the timer's thread._After this action completes, the Timer is not innitialized anymore (the MVar contains Nothing).3Creates a new timer. This does not start the timer.Forks a new thread that runs the supplied action (at least) after the given delay and stores the action, delay and thread id in the immutable TimerImmutable value.Forks a new thread that repeats the supplied action with (at least) the given delay between each execution and stores the action, delay and thread id in the immutable TimerImmutable value. SForks a new thread that runs the supplied action (at least) after the given delay.!lForks a new thread that repeats the supplied action with (at least) the given delay between each execution." %The action the timer will start with.$The dealy the timer will start with. %The action the timer will start with.$The dealy the timer will start with. The action to be executed.7The (minimal) time until the execution in microseconds.The action to be executed.'The (minimal) delay between executions.The action to be executed.7The (minimal) time until the execution in microseconds.The action to be executed.7The (minimal) time until the execution in microseconds. !#    "  !#$          timers-0.2.0.3Control.Concurrent.Timer.LiftedControl.Concurrent.TimerControl.Concurrent.Timer.TypesTimerTimerIO oneShotStart repeatedStartoneShotRestartrepeatedRestart oneShotTimer repeatedTimer stopTimernewTimertimerImmutableTimerImmutable timerAction timerDelay timerThreadIDoneShotTimerImmutablerepeatedTimerImmutable oneShotActionrepeatedActionTimerImmutableIOfork