# A good bit of philosophical advice

**URL:** <https://forums.swift.org/t/a-good-bit-of-philosophical-advice/74315>\
**Category:** Using Swift\
**Tags:** type-system\
**Created:** [September 2, 2024, 2:07am UTC](https://forums.swift.org/t/a-good-bit-of-philosophical-advice/74315 "2024-09-02T02:07:46Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![ibex](https://sea2.discourse-cdn.com/swift/user_avatar/forums.swift.org/ibex/32/30439_2.png) [@ibex](https://forums.swift.org/u/ibex)\
**Post date:** [September 2, 2024, 2:07am UTC](https://forums.swift.org/t/a-good-bit-of-philosophical-advice/74315/1 "2024-09-02T02:07:46Z")

</div>

Thank you, @Slava_Pestov

> [@Instantiate associatedtype from outside of protocol](https://forums.swift.org/t/instantiate-associatedtype-from-outside-of-protocol/74311/6):
>
> A good bit of philosophical advice is to design your architecture around what the type system can express, instead of trying to go the other way around.
> 
> There will always exist “reasonable” patterns that a static type checker cannot “prove”, pretty much because of the halting problem.
