Add an explicit TopLevelFlag to FamilyDecl
Similar to LexicalFixity, the flag keeps track of whether a FamilyDecl was declared at the top level or as an associated type.
This simplifies pretty-printing.
As an unexpected bonus, it reduces compile-time memory usage (in my local compile)
Performance Metrics (test environment: local):
T12234(optasm) compile_time/bytes allocated 77844224.000
(baseline @ HEAD~2) 79620216.000 [decreased, -2.2%]
T12425(optasm) compile_time/bytes allocated 132384800.000
(baseline @ HEAD~2) 134023808.000 [decreased, -1.2%]
T13035(normal) compile_time/bytes allocated 119133312.000
(baseline @ HEAD~2) 120843728.000 [decreased, -1.4%]
T5837(normal) compile_time/bytes allocated 49912328.000
(baseline @ HEAD~2) 51603824.000 [decreased, -3.3%]
Some stats have changed If this is expected, allow changes by appending the git commit message with this:
Metric Decrease:
T12234
T12425
T13035
T5837