with this formulation, we can build up Smart Constructors and compose them to create more specific queries. For example, suppose we want to find all public posts by User 2 tagged “Haskell” and “Code” posted less than 7 days ago, that I (User 1) liked. Some Smart Constructors can help here: