     ///
     /// - parameter request: the observed request.
     /// - returns: a ValueObservation.
-    static func forOne<Request: FetchRequest>(_ request: Request) -> ValueObservation<Request.RowDecoder?> where Request.RowDecoder: DatabaseValueConvertible {
+    public static func forOne<Request: FetchRequest>(_ request: Request) -> ValueObservation<Request.RowDecoder?> where Request.RowDecoder: DatabaseValueConvertible {
         return ValueObservation<Request.RowDecoder?>(
             observing: request.databaseRegion,
             fetch: request.fetchOne)

    ///
    /// - parameter request: the observed request.
    /// - returns: a ValueObservation.
    static func forAll<Request: FetchRequest>(_ request: Request) -> ValueObservation<[Request.RowDecoder._Wrapped?]> where Request.RowDecoder: _OptionalProtocol, Request.RowDecoder._Wrapped: DatabaseValueConvertible & StatementColumnConvertible {
        return ValueObservation<[Request.RowDecoder._Wrapped?]>(
            observing: request.databaseRegion,
            fetch: request.fetchAll)

    ///
    /// - parameter request: the observed request.
    /// - returns: a ValueObservation.
    public static func forAll<Request: FetchRequest>(_ request: Request) -> ValueObservation<[Row]> where Request.RowDecoder == Row {
        return ValueObservation<[Row]>(
            observing: request.databaseRegion,
            fetch: request.fetchAll)
