# Alloy Authors - Practical Alloy - Subset signatures (Highlights) ![rw-book-cover|256](https://readwise-assets.s3.amazonaws.com/static/images/article2.74d541386bbf.png) ## Metadata **Review**:: [readwise.io](https://readwise.io/bookreview/50865013) **Source**:: #from/readwise #from/reader **Zettel**:: #zettel/fleeting **Status**:: #x **Authors**:: [[Alloy Authors]] **Full Title**:: Practical Alloy - Subset signatures **Category**:: #articles #readwise/articles **Category Icon**:: 📰 **URL**:: [practicalalloy.github.io](https://practicalalloy.github.io/chapters/structural-topics/topics/subset-signatures/index.html) **Host**:: [[practicalalloy.github.io]] **Highlighted**:: [[2025-04-25]] **Created**:: [[2025-04-26]] ## Highlights - That is not always the case, and in fact subset signatures can be used to encode powerful patterns, including something that resembles multiple inheritance. ([View Highlight](https://read.readwise.io/read/01jsp1pydaag071jqjhm3976sb)) ^881771628 - The key idea would be to declare all three signatures as subsets of the `Tag` signature, and then use a fact to encode the type hierarchy constraints, namely the fact that `Tag` is abstract and that `Alert` is the set of tags that are both shapes and labels ([View Highlight](https://read.readwise.io/read/01jsp3annenpf7bffddmdh2gkk)) ^881778329 - On a last note, due to all the flexibility of subset signatures, particularly the fact that they may contain atoms from unrelated signatures, they cannot be extended, only contain other subset signatures. ([View Highlight](https://read.readwise.io/read/01jsp5czh3nh9hbs0nex3zb894)) ^881786073