$ cargo build Compiling functions-example v0.1.0 (file:///projects/functions-example) error[E0308]: mismatched types --> src/main.rs:2:44 | 2 | let handlers = vec![returns_closure(), returns_initialized_closure(123)]; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected opaque type, found a different opaque type ... 9 | fn returns_closure() -> impl Fn(i32) -> i32 { | ------------------- the expected opaque type ... 13 | fn returns_initialized_closure(init: i32) -> impl Fn(i32) -> i32 { | ------------------- the found opaque type | = note: expected opaque type `impl Fn(i32) -> i32` (opaque type at ) found opaque type `impl Fn(i32) -> i32` (opaque type at ) = note: distinct uses of `impl Trait` result in different opaque types For more information about this error, try `rustc --explain E0308`. error: could not compile `functions-example` (bin "functions-example") due to 1 previous error