D and DSR are built out of the same functor, parameterized by language. This will become clearer after reading Section A.3.