A projection boilerplate and helpers.
fetch() :: (String.t(), module() -> Result.t(term(), any()))
load(String.t(), module(), fetch(), (any() -> any())) :: any()