#![allow(dead_code, deprecated, unused_variables, unused_mut)] #![feature(phantom_variance_markers)] use core::marker::{PhantomCovariant, variance}; struct BoundFn where F: Fn(P) -> R, { function: F, parameter: P, return_value: PhantomCovariant, } fn main() { let bound_fn = BoundFn { function: core::convert::identity, parameter: 5u8, return_value: variance(), }; }