 }
 
 extension JSONValue: BooleanType {
-    var boolValue: Bool {
+    public var boolValue: Bool {
         switch self {
         case .JInvalid:
             return false

}

extension JSONValue: Printable {
    var description: String {
        switch self {
        case .JInvalid(let error):
            return error.localizedDescription
        default:
            return _printableString("")
        }
    }
    
    var rawJSONString: String {
        switch self {
        case .JNumber(let value):
            return "\(value)"

            return nil
        }
    }
    public var number: NSNumber? {
        switch self {
        case .JNumber(let value):
            return value
        default:
            return nil
        }
    }
    
    public var double: Double? {
        switch self {
        case .JNumber(let value):
            return value.doubleValue
