 extension UInt8: ValueType {
     public static func value(object: Any) throws -> UInt8 {
         guard let value = object as? UInt else {
-            throw Error.TypeMismatch(expected: _Value.self, actual: object.dynamicType)
+            throw Error.TypeMismatch(expected: Value.self, actual: object.dynamicType)
         }
         return UInt8(value)
     }

extension Int16: ValueType {
    public static func value(object: Any) throws -> Int16 {
        guard let value = object as? Int else {
            throw Error.TypeMismatch(expected: _Value.self, actual: object.dynamicType)
        }
        return Int16(value)
    }

// MARK: - ValueType

public protocol ValueType {
    typealias Value = Self
    
    static func value(object: Any) throws -> Value
}

extension ValueType {
    public static func value(object: Any) throws -> Value {
        guard let objectValue = object as? Value else {
            throw Error.TypeMismatch(expected: Value.self, actual: object.dynamicType)
        }
        return objectValue
    }
