Structural types

The structural keyword specifies that the type being defined is a structural type. Structural types may have different names but are equivalent if they share the same data constructor and type constructor structure. In Unison the following are the same:

structural type Optional a = None | Some a
structural type Maybe x = None | Just x

They can be referenced by either name in a codebase.

The unique keyword introduces a unique type, explained in the language reference here.