[31m[1mERROR[0m[39m: 
  [31m×[0m You can't return a naked generic parameter from a constructor, like `T`
  [31m│[0m in `app::naked`.
  [31m│[0m I don't take into account trait bounds when building your dependency
  [31m│[0m graph. A constructor that returns a naked generic parameter is equivalent,
  [31m│[0m in my eyes, to a constructor that can build **any** type, which is
  [31m│[0m unlikely to be what you want!
  [31m│[0m
  [31m│[0m     ╭─[[36;1;4msrc/lib.rs[0m:23:1]
  [31m│[0m  [2m23[0m │     let mut bp = Blueprint::new();
  [31m│[0m  [2m24[0m │     bp.request_scoped(f!(crate::naked));
  [31m│[0m     · [35;1m                      ────────┬───────[0m
  [31m│[0m     ·                               [35;1m╰── The constructor was registered here[0m
  [31m│[0m  [2m25[0m │     bp.request_scoped(f!(crate::fallible_naked))
  [31m│[0m     ╰────
  [31m│[0m    ╭─[[36;1;4msrc/lib.rs[0m:1:1]
  [31m│[0m  [2m1[0m │ pub fn naked<T>() -> T {
  [31m│[0m    · [35;1m                     ┬[0m
  [31m│[0m    ·                      [35;1m╰── The invalid output type[0m
  [31m│[0m  [2m2[0m │     todo!()
  [31m│[0m    ╰────
  [31m│[0m [36m  help: [0mCan you return a concrete type as output?
  [31m│[0m         Or wrap the generic parameter in a non-generic container? For
  [31m│[0m         example, `T` in `Vec<T>` is not considered to be a naked parameter.

[31m[1mERROR[0m[39m: 
  [31m×[0m You can't return a naked generic parameter from a constructor, like `T` in
  [31m│[0m `app::fallible_naked`.
  [31m│[0m I don't take into account trait bounds when building your dependency
  [31m│[0m graph. A constructor that returns a naked generic parameter is equivalent,
  [31m│[0m in my eyes, to a constructor that can build **any** type, which is
  [31m│[0m unlikely to be what you want!
  [31m│[0m
  [31m│[0m     ╭─[[36;1;4msrc/lib.rs[0m:24:1]
  [31m│[0m  [2m24[0m │     bp.request_scoped(f!(crate::naked));
  [31m│[0m  [2m25[0m │     bp.request_scoped(f!(crate::fallible_naked))
  [31m│[0m     · [35;1m                      ────────────┬────────────[0m
  [31m│[0m     ·                                   [35;1m╰── The constructor was registered here[0m
  [31m│[0m  [2m26[0m │         .error_handler(f!(crate::error_handler));
  [31m│[0m     ╰────
  [31m│[0m    ╭─[[36;1;4msrc/lib.rs[0m:1:1]
  [31m│[0m  [2m1[0m │ pub fn fallible_naked<T>() -> Result<T, FallibleError> {
  [31m│[0m    · [35;1m                              ────────────┬───────────[0m
  [31m│[0m    ·                                           [35;1m╰── The invalid output type[0m
  [31m│[0m  [2m2[0m │     todo!()
  [31m│[0m    ╰────
  [31m│[0m [36m  help: [0mCan you return a concrete type as output?
  [31m│[0m         Or wrap the generic parameter in a non-generic container? For
  [31m│[0m         example, `T` in `Vec<T>` is not considered to be a naked parameter.