pub trait UpdateField<Tag, M>where
M: MapType,{
type Value;
type Mapper: MapType;
type Output;
// Required method
fn update_field(
self,
_tag: PhantomData<Tag>,
value: <M as MapType>::Map<Self::Value>,
) -> (<Self::Mapper as MapType>::Map<Self::Value>, Self::Output);
}