diff --git a/docs/amaranth/latest/.buildinfo b/docs/amaranth/latest/.buildinfo
index 97932ed1..9daa7a55 100644
--- a/docs/amaranth/latest/.buildinfo
+++ b/docs/amaranth/latest/.buildinfo
@@ -1,4 +1,4 @@
# Sphinx build info version 1
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
-config: daf6797fb3798139525659a3eb6e3aca
+config: a2f61b0e975b6cc71f02fad50855d6ea
tags: 645f666f9bcd5a90fca523b33c5a78b7
diff --git a/docs/amaranth/latest/.doctrees/changes.doctree b/docs/amaranth/latest/.doctrees/changes.doctree
index 23affdb4..8c682f1b 100644
Binary files a/docs/amaranth/latest/.doctrees/changes.doctree and b/docs/amaranth/latest/.doctrees/changes.doctree differ
diff --git a/docs/amaranth/latest/.doctrees/environment.pickle b/docs/amaranth/latest/.doctrees/environment.pickle
index c28b984d..aebc314b 100644
Binary files a/docs/amaranth/latest/.doctrees/environment.pickle and b/docs/amaranth/latest/.doctrees/environment.pickle differ
diff --git a/docs/amaranth/latest/.doctrees/stdlib.doctree b/docs/amaranth/latest/.doctrees/stdlib.doctree
index 7b17ff99..13d82157 100644
Binary files a/docs/amaranth/latest/.doctrees/stdlib.doctree and b/docs/amaranth/latest/.doctrees/stdlib.doctree differ
diff --git a/docs/amaranth/latest/_sources/changes.rst.txt b/docs/amaranth/latest/_sources/changes.rst.txt
index d7e122ba..2b1e6da5 100644
--- a/docs/amaranth/latest/_sources/changes.rst.txt
+++ b/docs/amaranth/latest/_sources/changes.rst.txt
@@ -32,6 +32,7 @@ Apply the following changes to code written against Amaranth 0.4 to migrate it t
* Update uses of ``reset=`` keyword argument to ``init=``
* Convert uses of ``Simulator.add_sync_process`` used as testbenches to ``Simulator.add_testbench``
* Convert other uses of ``Simulator.add_sync_process`` to ``Simulator.add_process``
+* Replace uses of ``amaranth.hdl.Memory`` with ``amaranth.lib.memory.Memory``
Implemented RFCs
@@ -41,12 +42,14 @@ Implemented RFCs
.. _RFC 27: https://amaranth-lang.org/rfcs/0027-simulator-testbenches.html
.. _RFC 39: https://amaranth-lang.org/rfcs/0039-empty-case.html
.. _RFC 43: https://amaranth-lang.org/rfcs/0043-rename-reset-to-init.html
+.. _RFC 45: https://amaranth-lang.org/rfcs/0045-lib-memory.html
.. _RFC 46: https://amaranth-lang.org/rfcs/0046-shape-range-1.html
* `RFC 17`_: Remove ``log2_int``
* `RFC 27`_: Testbench processes for the simulator
* `RFC 39`_: Change semantics of no-argument ``m.Case()``
* `RFC 43`_: Rename ``reset=`` to ``init=``
+* `RFC 45`_: Move ``hdl.Memory`` to ``lib.Memory``
* `RFC 46`_: Change ``Shape.cast(range(1))`` to ``unsigned(0)``
@@ -65,6 +68,7 @@ Language changes
* Changed: the ``reset=`` argument of :class:`Signal`, :meth:`Signal.like`, :class:`amaranth.lib.wiring.Member`, :class:`amaranth.lib.cdc.FFSynchronizer`, and ``m.FSM()`` has been renamed to ``init=``. (`RFC 43`_)
* Changed: :class:`Shape` has been made immutable and hashable.
* Deprecated: :func:`amaranth.utils.log2_int`. (`RFC 17`_)
+* Deprecated: :class:`amaranth.hdl.Memory`. (`RFC 45`_)
* Removed: (deprecated in 0.4) :meth:`Const.normalize`. (`RFC 5`_)
* Removed: (deprecated in 0.4) :class:`Repl`. (`RFC 10`_)
* Removed: (deprecated in 0.4) :class:`ast.Sample`, :class:`ast.Past`, :class:`ast.Stable`, :class:`ast.Rose`, :class:`ast.Fell`.
@@ -75,6 +79,7 @@ Standard library changes
.. currentmodule:: amaranth.lib
+* Added: :mod:`amaranth.lib.memory`. (`RFC 45`_)
* Removed: (deprecated in 0.4) :mod:`amaranth.lib.scheduler`. (`RFC 19`_)
* Removed: (deprecated in 0.4) :class:`amaranth.lib.fifo.FIFOInterface` with ``fwft=False``. (`RFC 20`_)
* Removed: (deprecated in 0.4) :class:`amaranth.lib.fifo.SyncFIFO` with ``fwft=False``. (`RFC 20`_)
diff --git a/docs/amaranth/latest/_sources/stdlib.rst.txt b/docs/amaranth/latest/_sources/stdlib.rst.txt
index 2badf819..53e0b17d 100644
--- a/docs/amaranth/latest/_sources/stdlib.rst.txt
+++ b/docs/amaranth/latest/_sources/stdlib.rst.txt
@@ -4,7 +4,7 @@ Standard library
The :mod:`amaranth.lib` module, also known as the standard library, provides modules that falls into one of the three categories:
1. Modules that will used by essentially all idiomatic Amaranth code, and are necessary for interoperability. This includes :mod:`amaranth.lib.enum` (enumerations), :mod:`amaranth.lib.data` (data structures), and :mod:`amaranth.lib.wiring` (interfaces and components).
-2. Modules that abstract common functionality whose implementation differs between hardware platforms. This includes :mod:`amaranth.lib.cdc`.
+2. Modules that abstract common functionality whose implementation differs between hardware platforms. This includes :mod:`amaranth.lib.cdc`, :mod:`amaranth.lib.memory`.
3. Modules that have essentially one correct implementation and are of broad utility in digital designs. This includes :mod:`amaranth.lib.coding`, :mod:`amaranth.lib.fifo`, and :mod:`amaranth.lib.crc`.
As part of the Amaranth backwards compatibility guarantee, any behaviors described in these documents will not change from a version to another without at least one version including a warning about the impending change. Any nontrivial change to these behaviors must also go through the public review as a part of the `Amaranth Request for Comments process