What is the name of this technique/pattern?

I notice that this pattern shows up quite frequently in the Swift world but I don't know what its name is.

  1. define a new type that conforms to a protocol
  2. solely use the new type as a unique value to create a new "thing"
extension VerticalAlignment {
    struct CustomAlignment: AlignmentID {...}

    static let customAlignment = VerticalAlignment(CustomAlignment.self)
}
What is the name of this technique/pattern?
 
 
Q