Implement Prototype[T comparable](values []T) []T by scanning earlier retained values (O(n²)); Solve[T comparable] uses a membership map for expected O(n). Return the first occurrence of each distinct value in original order, comparing by Go ==. Inputs are concrete comparable values with safe equality; no interface values containing uncomparable dynamic data. Return a detached nonnil empty slice for nil/empty input. Preserve original storage; do not sort or coerce types. Named types and pointer identity must be preserved. Extra memory O(number of unique values).
Edit exercise.go; retain the public types and signatures. prototype and final are separate stages. The executable tests recover panics as failures, report named checks, and exit nonzero on any failure. A successful run must execute at least one check. Tests use logical time or explicit synchronization where relevant.
Complete the starter code, then run the checks.
Results and errors will appear here.