Signatures summarize
the name of the type(s)
names of operations over those type(s)
the operation(s) argument and result types
Signatures can be written down formally in most programming languages that support ADTs.