3. Optimizations¶
- 3.1. GHC Flags
- 3.2. GHC Optimizations
- 3.3. Library Based Changes
- 3.4. Library Agnostic Changes
- 3.4.1. Ordering Data Constructors
- 3.4.2. Wrangling Lazy Tuples
- 3.4.3. Appropriate Folding
- 3.4.4. Avoid Runtime Checks with Parse Don’t Validate:
- 3.4.5. Using GHC.Exts
- 3.4.6. Inlining Pragma and Friends
- 3.4.7. Specialization
- 3.4.8. Fusion and Rules
- 3.4.9. Unboxing
- 3.4.10. Unpacked Product Types
- 3.4.11. Avoiding Nested Monad Transformers
- 3.4.12. Unroll Monad Transformer Stacks
- 3.4.13. The OneShot Monad Trick
- 3.4.14. Continuation Passing Style
- 3.4.15. Using Levity Polymorphism
- 3.4.16. Using Backpack to Unroll Data Structures