     
     /// Create and schedule a timer that will call `block` repeatedly in specified time intervals.
     
+    @discardableResult
     public class func every(_ interval: TimeInterval, _ block: () -> Void) -> Timer {
         let timer = Timer.new(every: interval, block)
         timer.start()

    
    /// Create and schedule a timer that will call `block` once after the specified time.
    
    public class func after(_ interval: TimeInterval, _ block: () -> Void) -> Timer {
        let timer = Timer.new(after: interval, block)
        timer.start()

    /// Create and schedule a timer that will call `block` repeatedly in specified time intervals.
    /// (This variant also passes the timer instance to the block)
    
    @nonobjc @discardableResult
    public class func every(_ interval: TimeInterval, _ block: (Timer) -> Void) -> Timer {
        let timer = Timer.new(every: interval, block)
        timer.start()
        return timer
