Задачи на generics в Go. Часть 4
Сделайте generic-структуру Response[T any] с полями Data T и Err error.
Сделайте тип Result[T, E any] с вариантами успеха и ошибки через struct.
Сделайте функцию FilterType[T any](items []any) []T с type assertion.
Сделайте интерфейс Mapper[I, O any] с методом Map(I) O.
Сделайте структуру TypedKey[T any] с полем Name string.
Сделайте generic-функцию-фабрику NewBox[T any](v T) Box[T].
Сделайте метод Keys[K comparable, V any](m map[K]V) []K как функцию.
Сделайте иерархию статусов через typed constants + generic Response[T].
Сделайте функцию CloneSlice[T any](s []T) []T через copy.
Итоговая generic-задача: Repository + Result + обработка ошибок.