     return r.resolve(service)!
 }
 
+/** Binary operator ~> equivalent to `r.resolve(Service.Type, name: "ServiceName")!`
+ 
+ Usage: `SomeClass(dependencyA: r ~> (DependencyA.self, name: "ServiceName"))`
+ - Parameters:
+ - r: Resolver
+ - service: Type of service to resolve.
+ 
+ - Returns: The resolved service type instance.
+ - Important: Fails on unresolvable service.
+ */
+public func ~> <Service>(r: ResolverType, o: (service: Service.Type, name: String)) -> Service {
+    return r.resolve(o.service, name: o.name)!
+}
+
 /** Binary operator ~> equivalent to `r.resolve(Service.Type, argument: Arg1)!`
  
  Usage: `SomeClass(dependencyA: r ~> (DependencyA.self, argument: arg))`

public func ~> <Service, Arg1, Arg2>(r: ResolverType, o: (Service.Type, arguments: (Arg1, Arg2)) ) -> Service {
    return r.resolve(o.0, arguments: o.arguments)!
}

 */
public func ~> <Service, Arg1>(r: ResolverType, o: (service: Service.Type, argument: Arg1) ) -> Service {
    return r.resolve(o.service, argument: o.argument)!
}

/** Binary operator ~> equivalent to `r.resolve(Service.Type, name: String, argument: Arg1)!`
 
 Usage: `SomeClass(dependencyA: r ~> (DependencyA.self, name: "ServiceName", argument: arg))`
 - Parameters:
 - r: Resolver
 - o.service: Type of service to resolve.
 - o.argument: Argument to pass
 
 - Returns: The resolved service type instance.
 - Important: Fails on unresolvable service.
 */
public func ~> <Service, Arg1>(r: ResolverType, o: (service: Service.Type, name: String, argument: Arg1) ) -> Service {
    return r.resolve(o.service, name: o.name, argument: o.argument)!
}

/** Binary operator ~> equivalent to `r.resolve(Service.Type, arguments: (Arg1, Arg2))!`
