[31m[1mERROR[0m[39m: 
  [31m×[0m I can't generate code that will pass the borrow checker *and* match the
  [31m│[0m instructions in your blueprint:
  [31m│[0m - `app::handler` wants to consume `app::B<'_>`
  [31m│[0m - `app::B<'_>` captures a reference to `app::A`
  [31m│[0m - But, at the same time, `app::handler` takes `&mut app::A` as input
  [31m│[0m 
  [31m│[0m You can't borrow a type mutably while an immutable reference to the same
  [31m│[0m type is still active. I can't resolve this conflict.
  [31m│[0m
  [31m│[0m   [36mhelp:[0m Consider changing the signature of `app::handler`.
  [31m│[0m         It takes a mutable reference to `app::A`. Would a shared reference,
  [31m│[0m         `&app::A`, be enough?