// Copyright 2021 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package p4 type Pair[T1 interface{ M() }, T2 ~int] struct { f1 T1 f2 T2 } func NewPair[T1 interface{ M() }, T2 ~int](v1 T1, v2 T2) Pair[T1, T2] { return Pair[T1, T2]{f1: v1, f2: v2} } func (p Pair[X1, _]) First() X1 { return p.f1 } func (p Pair[_, X2]) Second() X2 { return p.f2 } // Deprecated: Use something else. func Clone[S ~[]T, T any](s S) S { return append(S(nil), s...) }