One possible variant of typing
(core) Move Reading into its own file
(core) Make Reading[D] invariant in D
Merge branch 'simplify-types'