Challenge 1 — Solution Task: Declare var ErrEmptyName = errors.New("name cannot be empty"). Write a function greet(name string) error that returns this sentinel (wrapped with fmt.Errorf and extra context "greet: %w") if name is "". Use errors.Is to check the result and print an appropriate message. package main import ( "errors" "fmt" ) var ErrEmptyName = errors.New("name cannot be empty") func greet(name string) error { if name == "" { return fmt.Errorf("greet: %w", ErrEmptyName) } fmt.Println("Hello,", name) return nil } func main() { err := greet("") if errors.Is(err, ErrEmptyName) { fmt.Println("Validation failed: name was empty.") } else if err != nil { fmt.Println("Unexpected error:", err) } } Expected output: Validation failed: name was empty. Notes: - err here is actually "greet: name cannot be empty", a wrapped version of ErrEmptyName — a plain err == ErrEmptyName comparison would incorrectly return false. - errors.Is(err, ErrEmptyName) correctly unwraps err and finds ErrEmptyName underneath, returning true. - greet("Philip") would instead print "Hello, Philip" and return nil, never reaching either error-handling branch.