// check-pass struct LazyLock { data: (Option, fn() -> T), } impl LazyLock { pub const fn new(f: fn() -> T) -> LazyLock { LazyLock { data: (None, f) } } } struct A(Option); impl Default for A { fn default() -> Self { A(None) } } static EMPTY_SET: LazyLock> = LazyLock::new(A::default); fn main() {}