General Associated Types Emulation - GAT Rust General Associated Types emulation together with functional style traits like Functor, Applicative, Bifunctor, Monoid, Monad. Why tho? Because learning, because I can, also, why not? Require nightly compiler