[31m[1mERROR[0m[39m: 
  [31m×[0m I am not smart enough to figure out the concrete type for all the generic
  [31m│[0m parameters in `app::generic`.
  [31m│[0m There should no unassigned generic parameters in post-processing
  [31m│[0m middlewares, but `T` does not seem to have been assigned a concrete type.
  [31m│[0m
  [31m│[0m     ╭─[[36;1;4msrc/lib.rs[0m:34:1]
  [31m│[0m  [2m34[0m │     let mut bp = Blueprint::new();
  [31m│[0m  [2m35[0m │     bp.post_process(f!(crate::generic));
  [31m│[0m     · [35;1m                    ─────────┬────────[0m
  [31m│[0m     ·             [35;1mThe post-processing middleware was registered here[0m
  [31m│[0m  [2m36[0m │     bp.post_process(f!(crate::doubly_generic));
  [31m│[0m     ╰────
  [31m│[0m    ╭─[[36;1;4msrc/lib.rs[0m:7:1]
  [31m│[0m  [2m7[0m │ 
  [31m│[0m  [2m8[0m │ pub fn generic<T>(_response: Response, generic_input: GenericType<T>) -> Response {
  [31m│[0m    · [35;1m               ┬[0m
  [31m│[0m    ·                [35;1m╰── The generic parameter without a concrete type[0m
  [31m│[0m  [2m9[0m │     todo!()
  [31m│[0m    ╰────
  [31m│[0m [36m  help: [0mSpecify the concrete type for `T` when registering the post-
  [31m│[0m         processing middleware against the blueprint:
  [31m│[0m         |  bp.post_process(
  [31m│[0m         |    f!(my_crate::my_middleware::<ConcreteType>),
  [31m│[0m         |  )

[31m[1mERROR[0m[39m: 
  [31m×[0m I am not smart enough to figure out the concrete type for all the generic
  [31m│[0m parameters in `app::doubly_generic`.
  [31m│[0m There should no unassigned generic parameters in post-processing
  [31m│[0m middlewares, but `T` and `S` do not seem to have been assigned a concrete
  [31m│[0m type.
  [31m│[0m
  [31m│[0m     ╭─[[36;1;4msrc/lib.rs[0m:35:1]
  [31m│[0m  [2m35[0m │     bp.post_process(f!(crate::generic));
  [31m│[0m  [2m36[0m │     bp.post_process(f!(crate::doubly_generic));
  [31m│[0m     · [35;1m                    ────────────┬────────────[0m
  [31m│[0m     ·             [35;1mThe post-processing middleware was registered here[0m
  [31m│[0m  [2m37[0m │     bp.post_process(f!(crate::triply_generic));
  [31m│[0m     ╰────
  [31m│[0m     ╭─[[36;1;4msrc/lib.rs[0m:11:1]
  [31m│[0m  [2m11[0m │ 
  [31m│[0m  [2m12[0m │ pub fn doubly_generic<T, S>(
  [31m│[0m     · [35;1m                      ┬[0m[33;1m  ┬[0m
  [31m│[0m     ·                       [35;1m│[0m  [33;1m╰── The generic parameter without a concrete type[0m
  [31m│[0m     ·                       [35;1m╰── The generic parameter without a concrete type[0m
  [31m│[0m  [2m13[0m │     _response: Response,
  [31m│[0m     ╰────
  [31m│[0m [36m  help: [0mSpecify the concrete types for `T` and `S` when registering the
  [31m│[0m         post-processing middleware against the blueprint:
  [31m│[0m         |  bp.post_process(
  [31m│[0m         |    f!(my_crate::my_middleware::<ConcreteType>),
  [31m│[0m         |  )

[31m[1mERROR[0m[39m: 
  [31m×[0m I am not smart enough to figure out the concrete type for all the generic
  [31m│[0m parameters in `app::triply_generic`.
  [31m│[0m There should no unassigned generic parameters in post-processing
  [31m│[0m middlewares, but `T`, `S` and `U` do not seem to have been assigned a
  [31m│[0m concrete type.
  [31m│[0m
  [31m│[0m     ╭─[[36;1;4msrc/lib.rs[0m:36:1]
  [31m│[0m  [2m36[0m │     bp.post_process(f!(crate::doubly_generic));
  [31m│[0m  [2m37[0m │     bp.post_process(f!(crate::triply_generic));
  [31m│[0m     · [35;1m                    ────────────┬────────────[0m
  [31m│[0m     ·             [35;1mThe post-processing middleware was registered here[0m
  [31m│[0m  [2m38[0m │     bp.route(GET, "/home", f!(crate::handler));
  [31m│[0m     ╰────
  [31m│[0m     ╭─[[36;1;4msrc/lib.rs[0m:19:1]
  [31m│[0m  [2m19[0m │ 
  [31m│[0m  [2m20[0m │ pub fn triply_generic<T, S, U>(
  [31m│[0m     · [35;1m                      ┬[0m[33;1m  ┬[0m[32;1m  ┬[0m
  [31m│[0m     ·                       [35;1m│[0m  [33;1m│[0m  [32;1mThe generic parameter without a concrete type[0m
  [31m│[0m     ·                       [35;1m│[0m  [33;1m╰── The generic parameter without a concrete type[0m
  [31m│[0m     ·                       [35;1m╰── The generic parameter without a concrete type[0m
  [31m│[0m  [2m21[0m │     _response: Response,
  [31m│[0m     ╰────
  [31m│[0m [36m  help: [0mSpecify the concrete types for `T`, `S` and `U` when registering the
  [31m│[0m         post-processing middleware against the blueprint:
  [31m│[0m         |  bp.post_process(
  [31m│[0m         |    f!(my_crate::my_middleware::<ConcreteType>),
  [31m│[0m         |  )