pub trait EnvironmentProvider<Key: Hash + Eq> {
type Error;
// Required method
fn maybe_get(
&self,
key: &Key,
) -> Result<Option<Cow<'_, PolymorphicType>>, Self::Error>;
// Provided method
fn get(&self, key: &Key) -> Option<Cow<'_, PolymorphicType>>
where Self::Error: Debug { ... }
}