Задачи на generics в Go. Часть 2
Сделайте функцию Max[T constraints.Ordered](a, b T) T.
Сделайте constraint Number как union int | float64 и функцию Sum[T Number](vals ...T) T.
Сделайте generic-структуру Stack[T any] с методами Push и Pop.
Сделайте функцию Filter[T any](s []T, pred func(T) bool) []T.
Используйте []any для хранения значений разных типов (concept).
Сделайте функцию TransformMap[K comparable, V, R any](m map[K]V, f func(V) R) map[K]R.
Используйте reflect.TypeOf для проверки типа (concept).
Сделайте функцию Merge[T any](a, b []T) []T.
Сделайте структуру Repository[T any] с методами Get и Save.
Сделайте constraint с несколькими типами через union: Stringish interface{ ~string | ~[]byte }.