Current Rust has not HKT (a.k.a Higher Kinded type) support.
With HKT being implemented in the future, we can write something like
fn produce_ref<'a,R,T>(a: &'a SomeType) -> R<T> , where
R can be
Arc etc, but
R cannot be an
& because we cant represent
& borrow in the
So, what about change
& borrow to
BorrowMut<T>, and make
&mut syntax be a syntax surgar of
BorrowMut<T> ? It is more symmetric and HTK friendly.