Interfaces
An interface type is a set of method signatures. Any type that implements those methods satisfies the interface — automatically.
A variable of interface type can hold any value that implements the required methods.
Note: There’s an intentional error on line 22. Vertex (the value type) doesn’t implement Abser because Abs is defined on *Vertex (the pointer type). Try it: run the code and read the compile error, then fix it by changing a = v to a = &v.