      originally register the block. The block can take a parameter just like the registration
      block, but it is ignored.
      */
-    public func unregister<P, D>(name name: String? = nil, eval: P -> D) -> Bool {
+    public func unregister<P, D>(name name: String? = nil, @noescape eval: P -> D) -> Bool {
         return Guise.unregister(name: name, container: container, eval: eval)
     }
     

        return Guise.key(type: type, name: name, container: container)
    }
    
    public func key<P, D>(type type: String = String(reflecting: D.self), name: String? = nil, eval: P -> D) -> Guise.Key {
        return Guise.key(type: type, name: name, container: container)
    }
    

     originally register the block. The block can take a parameter just like the registration
     block, but it is ignored.
    */
    public static func unregister<P, D>(name name: String? = nil, container: String? = nil, @noescape eval: P -> D) -> Bool {
        return unregister(type: String(reflecting: D.self), name: name, container: container)
    }
    
