|
8 | 8 | // Modification Policy: |
9 | 9 | // - Edit this file for project-specific SDS content. |
10 | 10 | // - Keep shared presentation logic in core.typ. |
| 11 | +// Table Ordering: |
| 12 | +// Sort any table whose rows a reader might scan to locate a specific |
| 13 | +// entry — definitions, acronyms, constraints, packages, interfaces, |
| 14 | +// and similar reference tables. Sort alphabetically by the first |
| 15 | +// column. Tables with an inherent sequence (requirement IDs within |
| 16 | +// a section, change history, workflow steps) retain their logical order. |
11 | 17 | // SPDX-License-Identifier: BSD-3-Clause |
12 | 18 | // ============================================================================ |
13 | 19 |
|
@@ -100,19 +106,20 @@ This document covers: |
100 | 106 |
|
101 | 107 | == Dependency Rules |
102 | 108 |
|
| 109 | +// Sort rows alphabetically by the first column. |
103 | 110 | #table( |
104 | 111 | columns: (auto, 1fr, auto), |
105 | 112 | table.header([*Package*], [*Dependencies*], [*SPARK_Mode*]), |
106 | 113 | [Functional], [None], [On], |
107 | | - [Functional.Result], [Functional], [On], |
108 | | - [Functional.Option], [Functional], [On], |
109 | 114 | [Functional.Either], [Functional], [On], |
| 115 | + [Functional.Option], [Functional], [On], |
| 116 | + [Functional.Result], [Functional], [On], |
| 117 | + [Functional.Scoped], [Ada.Finalization], [Off], |
110 | 118 | [Functional.Try], [Ada.Exceptions, Result, Option], [Off], |
111 | 119 | [Functional.Try.Map_To_Result], [Try], [Off], |
112 | 120 | [Functional.Try.Map_To_Result_With_Param], [Try], [Off], |
113 | | - [Functional.Try.To_Result], [Try, Result], [Off], |
114 | 121 | [Functional.Try.To_Option], [Try, Option], [Off], |
115 | | - [Functional.Scoped], [Ada.Finalization], [Off], |
| 122 | + [Functional.Try.To_Result], [Try, Result], [Off], |
116 | 123 | [Functional.Version], [None], [On], |
117 | 124 | ) |
118 | 125 |
|
@@ -145,19 +152,20 @@ src/ |
145 | 152 |
|
146 | 153 | == Package Descriptions |
147 | 154 |
|
| 155 | +// Sort rows alphabetically by the first column. |
148 | 156 | #table( |
149 | 157 | columns: (auto, 1fr, auto), |
150 | 158 | table.header([*Package*], [*Purpose*], [*SPARK*]), |
151 | 159 | [`Functional`], [Root namespace, common declarations.], [On], |
152 | | - [`Functional.Result`], [Success/failure discriminated union with combinators.], [On], |
153 | | - [`Functional.Option`], [Presence/absence discriminated union with combinators.], [On], |
154 | 160 | [`Functional.Either`], [Left/right discriminated union with combinators.], [On], |
| 161 | + [`Functional.Option`], [Presence/absence discriminated union with combinators.], [On], |
| 162 | + [`Functional.Result`], [Success/failure discriminated union with combinators.], [On], |
| 163 | + [`Functional.Scoped`], [RAII guard generics.], [Off], |
155 | 164 | [`Functional.Try`], [Exception-to-Result/Option bridge infrastructure.], [Off], |
156 | 165 | [`Functional.Try.Map_To_Result`], [Declarative exception mapping (no extra parameter).], [Off], |
157 | 166 | [`Functional.Try.Map_To_Result_With_Param`], [Declarative exception mapping (parameterized action).], [Off], |
158 | | - [`Functional.Try.To_Result`], [Procedural exception mapping (legacy).], [Off], |
159 | 167 | [`Functional.Try.To_Option`], [Exception-to-Option for probe operations.], [Off], |
160 | | - [`Functional.Scoped`], [RAII guard generics.], [Off], |
| 168 | + [`Functional.Try.To_Result`], [Procedural exception mapping (legacy).], [Off], |
161 | 169 | [`Functional.Version`], [Library version constants.], [On], |
162 | 170 | ) |
163 | 171 |
|
@@ -299,14 +307,15 @@ Consumers of the Functional library use Result and Option types for all expected |
299 | 307 |
|
300 | 308 | == Module Responsibilities |
301 | 309 |
|
| 310 | +// Sort rows alphabetically by the first column. |
302 | 311 | #table( |
303 | 312 | columns: (auto, 1fr), |
304 | 313 | table.header([*Module*], [*Error Handling Role*]), |
305 | | - [Result], [Carry success/failure values through combinators.], |
306 | | - [Option], [Carry present/absent values through combinators.], |
307 | 314 | [Either], [Carry left/right values through combinators.], |
308 | | - [Try], [Catch exceptions at boundaries and convert to Result or Option.], |
| 315 | + [Option], [Carry present/absent values through combinators.], |
| 316 | + [Result], [Carry success/failure values through combinators.], |
309 | 317 | [Scoped], [Suppress exceptions from cleanup actions to prevent double-exception scenarios.], |
| 318 | + [Try], [Catch exceptions at boundaries and convert to Result or Option.], |
310 | 319 | ) |
311 | 320 |
|
312 | 321 | == Try Usage Guidelines |
@@ -377,14 +386,15 @@ Functional targets a *spark-targeted* assurance posture. Core types (Result, Opt |
377 | 386 |
|
378 | 387 | == Module Assessment |
379 | 388 |
|
| 389 | +// Sort rows alphabetically by the first column. |
380 | 390 | #table( |
381 | 391 | columns: (auto, auto, 1fr), |
382 | 392 | table.header([*Module*], [*SPARK*], [*Notes*]), |
383 | | - [Result], [On], [Pure functional type, fully provable.], |
384 | | - [Option], [On], [Pure functional type, fully provable.], |
385 | 393 | [Either], [On], [Pure functional type, fully provable.], |
386 | | - [Try], [Off], [Exception handling is inherently outside SPARK.], |
| 394 | + [Option], [On], [Pure functional type, fully provable.], |
| 395 | + [Result], [On], [Pure functional type, fully provable.], |
387 | 396 | [Scoped], [Off], [Ada.Finalization is outside SPARK.], |
| 397 | + [Try], [Off], [Exception handling is inherently outside SPARK.], |
388 | 398 | [Version], [On], [Constants only.], |
389 | 399 | ) |
390 | 400 |
|
|
0 commit comments