    source-entity :- Entity
    target-entity :- Entity
    source-record :- t/RecordSchema
+   denorm-rel-kw :- s/Keyword
    denorm-rel :- t/DenormalizationRelationshipSchema
    denorm-op :- DenormalizeOp]
   (with-context deferred-context

                             (st/map #(denormalize-to-target-record
                                       session
                                       source-entity
                                       (-> % :target deref-target-entity)
                                       source-record
                                       denorm-rel
                                       %

   target-entity :- Entity
   source-record :- t/RecordSchema
   denorm-rel :- t/DenormalizationRelationshipSchema]
  (with-context deferred-context
    (mlet [:let [[fk fk-val] (foreign-key-val source-entity source-record denorm-rel)]

          trs (m/select-buffered
               session
               target-entity
               fk
               fk-val)]

      (return deferred-context trs))))

(defn only-error
  "given a Deferred keep only errors, otherwise returning Deferred<nil>"
