# Functions
NewCanGetT returns a new instance of T.
NewCanSetT returns a new instance of T.
NewHasT returns a new instance of T.
# Structs
Unique satisfies the structural constraint "HasID" *and* the interface constraint "CanGetID.".
UniqueName does *not* satisfiy the structural constraint "HasID," because while UniqueName has the field "ID string," the type also contains the field "Name string."
Structural constraints must match *exactly*.
# Interfaces
CanGetID is an interface constraint satisfied by a type that has a function with the signature "GetID() string".
CanSetID is an interface constraint satisfied by a type that has a function with the signature "GetID(string)".
HasID is a structural constraint satisfied by structs with a single field called "ID" of type "string".