 //
 
 import Foundation
+import LlamaKit
 
 public struct Dependency {
 	public var repository: Repository

public enum VersionSpecifier {
	case Exactly(Version)
}

	public let major: Int
	public let minor: Int
	public let patch: Int

	init(major: Int, minor: Int, patch: Int) {
		self.major = major
		self.minor = minor
		self.patch = patch
	}

	static func fromString(specifier: String) -> Result<Version> {
		let components = split(specifier, { $0 == "." }, allowEmptySlices: false)
		if components.count < 3 {
			return failure()
		}

		let major = components[0].toInt()
		if major == nil {
			return failure()
		}

		let minor = components[1].toInt()
		let patch = components[2].toInt()

		return success(self(major: major!, minor: minor ?? 0, patch: patch ?? 0))
	}
}

public func <(lhs: Version, rhs: Version) -> Bool {
