     public class func keys<T, U>(dictionary: [T: U]) -> [T] {
         var result : [T] = []
         for (key, _) in dictionary {
-            result.insert(key, atIndex: 0)
+            result.append(key)
         }
         return result
     }

    /// :param function Function to be called that does not take any params.
    /// :return Function that can be called n times after which the callback function is called.
    public class func after<T>(n: Int, function: () -> T) -> (() -> T?) {
        let f = self.after(n) { (params: (Any?...)) -> T? in
            return function()
        }
        return { f()? }


public typealias $ = Dollar


