The following is an index of all the architecture decisions taken so far. Whenever a new architecture decision report is created, it must be added to the index regardless of its status. For guidance on how to write reports, please refer to the architecture documentation.
- ADR 1: Use architecture decision reports
- ADR 2: Move towards static analysis
- ADR 3: Use TypeScript as implementation language
- ADR 4: Model browser specific values and computations
- ADR 5: Don't depend on third party code to produce results
- ADR 6: Use pure functions, avoid hidden side effects
- ADR 7: Export/import full namespace, not individual functions
- ADR 8: Use
Option<T>
to model optional values - ADR 9: Use
Result<T, E>
to model errors - ADR 10: Use
Future<T>
to model possibly asynchronous computations - ADR 11: Use serializable trees with parent pointers, and downward immutability
- ADR 12: Use side effect free (monadic) questions
- ADR 13: Use trilean logic for reasoning about possibly unknown results
- ADR 14: Implement our own command line wrapper package
- ADR 15: Use (extended) diagnostic in outcomes
- ADR 16: Use enriched questions (rhetorical questions, optional questions, diagnostic)
- ADR 17: Use mutable
Cache
with weak references for memoization - ADR 18: Use external layout information
- ADR 19: Keep layout information optional