# Using d/with on past database value from d/as-of

**URL:** <https://forum.datomic.com/t/using-d-with-on-past-database-value-from-d-as-of/1437>\
**Category:** Peer API\
**Created:** [May 3, 2020, 9:31am UTC](https://forum.datomic.com/t/using-d-with-on-past-database-value-from-d-as-of/1437 "2020-05-03T09:31:34Z")\
**Posts on this page:** 1\
**Showing post:** 2

<div class="post-metadata">

**Author:** ![dustingetz](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.datomic.com/dustingetz/32/56_2.png) [@dustingetz](https://forum.datomic.com/u/dustingetz)\
**Post date:** [May 3, 2020, 1:53pm UTC](https://forum.datomic.com/t/using-d-with-on-past-database-value-from-d-as-of/1437/2 "2020-05-03T13:53:16Z")

</div>

> [@Interactions of d/basis-t, d/as-of, d/with](https://forum.datomic.com/t/interactions-of-d-basis-t-d-as-of-d-with/219):
>
> I was expecting for dbvals to have the same value semantics as Clojure data structures. This would mean I can have multiple timelines. In git parlance, “rewind and branch from past”. I understand that if the branch was pushed it would be a merge. This does not work as I expected. My present understanding is: d/with will return a dbval with the most up-to-date d/basis-t which has been constrained by setting a d/as-of flag. So all dbvals will always have a basis-t of the highest t value known to …

---

_[View the full topic](https://forum.datomic.com/t/using-d-with-on-past-database-value-from-d-as-of/1437)._
