 			return scanVersion().map { CompatibleWith($0) }
 		} else {
 			return success(Any)
-		}
-	}
-
-	/// Determines whether the given version satisfies this version specifier.
-	public func satisfiedBy(version: Version) -> Bool {
-		switch (self) {
-		case .Any:
-			return true
-
-		case let .Exactly(requirement):
-			return version == requirement
-
-		case let .AtLeast(requirement):
-			return version >= requirement
-
-		case let .CompatibleWith(requirement):
-			return version.major == requirement.major && version >= requirement
 		}
 	}
 }

			return failure()
		}
	}
}

public func ==(lhs: Dependency, rhs: Dependency) -> Bool {
	return lhs.repository == rhs.repository && lhs.version == rhs.version
}

extension Dependency: Printable {

	case CompatibleWith(Version)
	case Exactly(Version)

	/// Determines whether the given version satisfies this version specifier.
	public func satisfiedBy(version: Version) -> Bool {
		switch (self) {
		case .Any:
			return true

		case let .Exactly(requirement):
			return version == requirement

		case let .AtLeast(requirement):
			return version >= requirement

		case let .CompatibleWith(requirement):
			return version.major == requirement.major && version >= requirement
		}
	}
}

extension VersionSpecifier: Scannable {
	/// Attempts to parse a VersionSpecifier.
	public static func fromScanner(scanner: NSScanner) -> Result<VersionSpecifier> {
		func scanVersion() -> Result<Version> {
