     case ExpectedFalse(String)
     case ExpectedEqual(String, String, String)
     case ExpectedNotEqual(String, String, String)
+    case ExpectedNil(String, String)
+    case ExpectedNotNil(String)
 
     public func stringify() -> String {
         switch self {

            throw FailureReason.ExpectedNotEqual(t, String(l), String(r))
        }
    }
}

public enum FailureReason : ErrorType {

            return template(t, l, r)
        case let .ExpectedNotEqual(t, l, r):
            return template(t, l, r)
        case let .ExpectedNil(t, v):
            return template(t, "nil", v)
        case let .ExpectedNotNil(t):
            return template(t, "not nil", "nil")
        }
    }

