Inspect/2 output for structs: executable code or structure?

Thanks for the additional context. In terms of tradeoffs I definitely lean strongly toward including more information, even the example of Decimal I think I would prefer seeing the struct itself over Decimal.new(...).

I haven’t seen as many libraries using opaque types and I think that’s probably a good thing. Using them or not seems to be entirely the discretion of the library’s author, but it seems like the best thing from the user’s point of view is to make public structs as transparent as possible and try to keep implementation details deemed inessential as separate as possible.