<div class="product-page-section table-of-contents meap-contents" style="box-sizing: border-box; margin-bottom: 36px; color: rgb(51, 51, 51); font-family: Lato, -apple-system, BlinkMacSystemFont, "avenir next", avenir, "helvetica neue", helvetica, Ubuntu, roboto, noto, "segoe ui", arial, sans-serif; font-size: 17.25px;"> <h2 class="header" style="box-sizing: border-box; line-height: 1.1; color: inherit; margin: 0px 0px 10px; font-size: 27px; text-transform: lowercase;"><span style="box-sizing: border-box;">table of contents</span></h2> <a id="show-hide" style="box-sizing: border-box; color: rgb(0, 0, 0); font-size: 13px; font-weight: lighter; cursor: pointer;"><span class="fas fa-toggle-off" style="box-sizing: border-box; -webkit-font-smoothing: antialiased; display: inline-block; font-variant-numeric: normal; font-variant-east-asian: normal; text-rendering: auto; line-height: 1; font-family: "Font Awesome 5 Free"; font-weight: 900; color: rgb(64, 127, 191);"></span> detailed TOC</a> <a name="toc" class="anchor" style="box-sizing: border-box; color: rgb(64, 127, 191); visibility: hidden; display: block; position: relative;"></a> <div class="toc" style="box-sizing: border-box; padding-top: 0px; user-select: none; margin-bottom: 0px; padding-bottom: 0px;"> <h1 id="part_id_1" class="sect0" style="box-sizing: border-box; font-size: 18px; margin: 19px 0px 0px; line-height: 22px; color: inherit; text-transform: uppercase; border-bottom: thin solid rgb(119, 119, 119); padding-bottom: 0.25em;">PART 1: INTRODUCTION TO FUNCTIONAL DECLARATIVE DESIGN</h1> <div class="sect1 available" style="box-sizing: border-box; font-weight: bold; text-transform: uppercase; margin-top: 19px;"> <span class="book_actions" style="box-sizing: border-box;"><a class="view-in-livebook" href="https://livebook.manning.com/book/functional-design-and-architecture/chapter-1?origin=product-toc" title="Read in liveBook" target="_blank" style="box-sizing: border-box; color: rgb(51, 51, 51); text-decoration-line: none; display: block; float: right;"><span class="sr-only" style="box-sizing: border-box; border: 0px; clip: rect(0px, 0px, 0px, 0px); height: 1px; margin: -1px; overflow: hidden; padding: 0px; position: absolute; width: 1px;">READ IN LIVEBOOK</span></a></span> <h2 id="chapter_id_1" data-toggle="tooltip" data-placement="left" title="" data-original-title="Available" style="box-sizing: border-box; line-height: 22px; color: inherit; margin: 0px; font-size: 15px; cursor: pointer;"><a href="https://livebook.manning.com/book/functional-design-and-architecture/chapter-1?origin=product-toc" title="Read in liveBook" class="read-in-livebook" target="_blank" style="box-sizing: border-box; color: rgb(64, 127, 191); text-decoration-line: none;"><span class="leading-number" style="box-sizing: border-box; margin-right: 0.5em; display: inline-block; white-space: nowrap;">1</span>WHAT IS SOFTWARE DESIGN?</a><a class="toc-controllo toc-expando" style="box-sizing: border-box; margin: -0.5em -0.5em -0.5em 0px; padding: 0.5em; cursor: pointer;"><span class="fa fa-caret-right expando" title="Expand" style="box-sizing: border-box; -webkit-font-smoothing: antialiased; display: inline-block; font-variant-numeric: normal; font-variant-east-asian: normal; text-rendering: auto; line-height: 1; font-family: "Font Awesome 5 Free";"></span></a></h2> </div> <div class="sect1 available" style="box-sizing: border-box; font-weight: bold; text-transform: uppercase; margin-top: 6px;"> <span class="book_actions" style="box-sizing: border-box;"><a class="view-in-livebook" href="https://livebook.manning.com/book/functional-design-and-architecture/chapter-2?origin=product-toc" title="Read in liveBook" target="_blank" style="box-sizing: border-box; color: rgb(51, 51, 51); text-decoration-line: none; display: block; float: right;"><span class="sr-only" style="box-sizing: border-box; border: 0px; clip: rect(0px, 0px, 0px, 0px); height: 1px; margin: -1px; overflow: hidden; padding: 0px; position: absolute; width: 1px;">READ IN LIVEBOOK</span></a></span> <h2 id="chapter_id_2" data-toggle="tooltip" data-placement="left" title="" data-original-title="Available" style="box-sizing: border-box; line-height: 22px; color: inherit; margin: 0px; font-size: 15px; cursor: pointer;"><a href="https://livebook.manning.com/book/functional-design-and-architecture/chapter-2?origin=product-toc" title="Read in liveBook" class="read-in-livebook" target="_blank" style="box-sizing: border-box; color: rgb(64, 127, 191); text-decoration-line: none;"><span class="leading-number" style="box-sizing: border-box; margin-right: 0.5em; display: inline-block; white-space: nowrap;">2</span>THE BASICS OF FUNCTIONAL DECLARATIVE DESIGN</a><a class="toc-controllo toc-expando" style="box-sizing: border-box; margin: -0.5em -0.5em -0.5em 0px; padding: 0.5em; cursor: pointer;"><span class="fa fa-caret-right expando" title="Expand" style="box-sizing: border-box; -webkit-font-smoothing: antialiased; display: inline-block; font-variant-numeric: normal; font-variant-east-asian: normal; text-rendering: auto; line-height: 1; font-family: "Font Awesome 5 Free";"></span></a></h2> </div> <h1 id="part_id_2" class="sect0" style="box-sizing: border-box; font-size: 18px; margin: 19px 0px 0px; line-height: 22px; color: inherit; text-transform: uppercase; border-bottom: thin solid rgb(119, 119, 119); padding-bottom: 0.25em;">PART 2: MINIMUM VIABLE PRODUCT</h1> <div class="sect1 available" style="box-sizing: border-box; font-weight: bold; text-transform: uppercase; margin-top: 19px;"> <span class="book_actions" style="box-sizing: border-box;"><a class="view-in-livebook" href="https://livebook.manning.com/book/functional-design-and-architecture/chapter-3?origin=product-toc" title="Read in liveBook" target="_blank" style="box-sizing: border-box; color: rgb(51, 51, 51); text-decoration-line: none; display: block; float: right;"><span class="sr-only" style="box-sizing: border-box; border: 0px; clip: rect(0px, 0px, 0px, 0px); height: 1px; margin: -1px; overflow: hidden; padding: 0px; position: absolute; width: 1px;">READ IN LIVEBOOK</span></a></span> <h2 id="chapter_id_3" data-toggle="tooltip" data-placement="left" title="" data-original-title="Available" style="box-sizing: border-box; line-height: 22px; color: inherit; margin: 0px; font-size: 15px; cursor: pointer;"><a href="https://livebook.manning.com/book/functional-design-and-architecture/chapter-3?origin=product-toc" title="Read in liveBook" class="read-in-livebook" target="_blank" style="box-sizing: border-box; color: rgb(64, 127, 191); text-decoration-line: none;"><span class="leading-number" style="box-sizing: border-box; margin-right: 0.5em; display: inline-block; white-space: nowrap;">3</span>DRAFTING THE MVP APPLICATION</a><a class="toc-controllo toc-expando" style="box-sizing: border-box; margin: -0.5em -0.5em -0.5em 0px; padding: 0.5em; cursor: pointer;"><span class="fa fa-caret-right expando" title="Expand" style="box-sizing: border-box; -webkit-font-smoothing: antialiased; display: inline-block; font-variant-numeric: normal; font-variant-east-asian: normal; text-rendering: auto; line-height: 1; font-family: "Font Awesome 5 Free";"></span></a></h2> </div> <div class="sect1 available" style="box-sizing: border-box; font-weight: bold; text-transform: uppercase; margin-top: 6px;"> <span class="book_actions" style="box-sizing: border-box;"><a class="view-in-livebook" href="https://livebook.manning.com/book/functional-design-and-architecture/chapter-4?origin=product-toc" title="Read in liveBook" target="_blank" style="box-sizing: border-box; color: rgb(51, 51, 51); text-decoration-line: none; display: block; float: right;"><span class="sr-only" style="box-sizing: border-box; border: 0px; clip: rect(0px, 0px, 0px, 0px); height: 1px; margin: -1px; overflow: hidden; padding: 0px; position: absolute; width: 1px;">READ IN LIVEBOOK</span></a></span> <h2 id="chapter_id_4" data-toggle="tooltip" data-placement="left" title="" data-original-title="Available" style="box-sizing: border-box; line-height: 22px; color: inherit; margin: 0px; font-size: 15px; cursor: pointer;"><a href="https://livebook.manning.com/book/functional-design-and-architecture/chapter-4?origin=product-toc" title="Read in liveBook" class="read-in-livebook" target="_blank" style="box-sizing: border-box; color: rgb(64, 127, 191); text-decoration-line: none;"><span class="leading-number" style="box-sizing: border-box; margin-right: 0.5em; display: inline-block; white-space: nowrap;">4</span>END-TO-END DESIGN</a><a class="toc-controllo toc-expando" style="box-sizing: border-box; margin: -0.5em -0.5em -0.5em 0px; padding: 0.5em; cursor: pointer;"><span class="fa fa-caret-right expando" title="Expand" style="box-sizing: border-box; -webkit-font-smoothing: antialiased; display: inline-block; font-variant-numeric: normal; font-variant-east-asian: normal; text-rendering: auto; line-height: 1; font-family: "Font Awesome 5 Free";"></span></a></h2> </div> <h1 id="part_id_3" class="sect0" style="box-sizing: border-box; font-size: 18px; margin: 19px 0px 0px; line-height: 22px; color: inherit; text-transform: uppercase; border-bottom: thin solid rgb(119, 119, 119); padding-bottom: 0.25em;">PART 3: DOMAIN-DRIVEN DESIGN</h1> <div class="sect1 available" style="box-sizing: border-box; font-weight: bold; text-transform: uppercase; margin-top: 19px;"> <span class="book_actions" style="box-sizing: border-box;"><a class="view-in-livebook" href="https://livebook.manning.com/book/functional-design-and-architecture/chapter-5?origin=product-toc" title="Read in liveBook" target="_blank" style="box-sizing: border-box; color: rgb(51, 51, 51); text-decoration-line: none; display: block; float: right;"><span class="sr-only" style="box-sizing: border-box; border: 0px; clip: rect(0px, 0px, 0px, 0px); height: 1px; margin: -1px; overflow: hidden; padding: 0px; position: absolute; width: 1px;">READ IN LIVEBOOK</span></a></span> <h2 id="chapter_id_5" data-toggle="tooltip" data-placement="left" title="" data-original-title="Available" style="box-sizing: border-box; line-height: 22px; color: inherit; margin: 0px; font-size: 15px; cursor: pointer;"><a href="https://livebook.manning.com/book/functional-design-and-architecture/chapter-5?origin=product-toc" title="Read in liveBook" class="read-in-livebook" target="_blank" style="box-sizing: border-box; color: rgb(64, 127, 191); text-decoration-line: none;"><span class="leading-number" style="box-sizing: border-box; margin-right: 0.5em; display: inline-block; white-space: nowrap;">5</span>EMBEDDED DOMAIN-SPECIFIC LANGUAGES</a><a class="toc-controllo toc-expando" style="box-sizing: border-box; margin: -0.5em -0.5em -0.5em 0px; padding: 0.5em; cursor: pointer;"><span class="fa fa-caret-right expando" title="Expand" style="box-sizing: border-box; -webkit-font-smoothing: antialiased; display: inline-block; font-variant-numeric: normal; font-variant-east-asian: normal; text-rendering: auto; line-height: 1; font-family: "Font Awesome 5 Free";"></span></a></h2> </div> <div class="sect1 available" style="box-sizing: border-box; font-weight: bold; text-transform: uppercase; margin-top: 6px;"> <span class="book_actions" style="box-sizing: border-box;"><a class="view-in-livebook" href="https://livebook.manning.com/book/functional-design-and-architecture/chapter-6?origin=product-toc" title="Read in liveBook" target="_blank" style="box-sizing: border-box; color: rgb(51, 51, 51); text-decoration-line: none; display: block; float: right;"><span class="sr-only" style="box-sizing: border-box; border: 0px; clip: rect(0px, 0px, 0px, 0px); height: 1px; margin: -1px; overflow: hidden; padding: 0px; position: absolute; width: 1px;">READ IN LIVEBOOK</span></a></span> <h2 id="chapter_id_6" data-toggle="tooltip" data-placement="left" title="" data-original-title="Available" style="box-sizing: border-box; line-height: 22px; color: inherit; margin: 0px; font-size: 15px; cursor: pointer;"><a href="https://livebook.manning.com/book/functional-design-and-architecture/chapter-6?origin=product-toc" title="Read in liveBook" class="read-in-livebook" target="_blank" style="box-sizing: border-box; color: rgb(64, 127, 191); text-decoration-line: none;"><span class="leading-number" style="box-sizing: border-box; margin-right: 0.5em; display: inline-block; white-space: nowrap;">6</span>DOMAIN MODELING WITH FREE MONADS</a><a class="toc-controllo toc-expando" style="box-sizing: border-box; margin: -0.5em -0.5em -0.5em 0px; padding: 0.5em; cursor: pointer;"><span class="fa fa-caret-right expando" title="Expand" style="box-sizing: border-box; -webkit-font-smoothing: antialiased; display: inline-block; font-variant-numeric: normal; font-variant-east-asian: normal; text-rendering: auto; line-height: 1; font-family: "Font Awesome 5 Free";"></span></a></h2> </div> <h1 id="part_id_4" class="sect0" style="box-sizing: border-box; font-size: 18px; margin: 19px 0px 0px; line-height: 22px; color: inherit; text-transform: uppercase; border-bottom: thin solid rgb(119, 119, 119); padding-bottom: 0.25em;">PART 4: STATEFUL AND REACTIVE APPLICATIONS</h1> <div class="sect1" style="box-sizing: border-box; font-weight: bold; text-transform: uppercase; margin-top: 19px;"> <h2 id="chapter_id_7" style="box-sizing: border-box; line-height: 22px; color: inherit; margin: 0px; font-size: 15px;">7 APPLICATION STATE</h2> </div> <div class="sect1" style="box-sizing: border-box; font-weight: bold; text-transform: uppercase; margin-top: 6px;"> <h2 id="chapter_id_8" style="box-sizing: border-box; line-height: 22px; color: inherit; margin: 0px; font-size: 15px;">8 REACTIVE APPLICATIONS (TODO: THE SIMULATOR)</h2> </div> <h1 id="part_id_5" class="sect0" style="box-sizing: border-box; font-size: 18px; margin: 19px 0px 0px; line-height: 22px; color: inherit; text-transform: uppercase; border-bottom: thin solid rgb(119, 119, 119); padding-bottom: 0.25em;">PART 5: DESIGNING REAL-WORLD SOFTWARE</h1> <div class="sect1" style="box-sizing: border-box; font-weight: bold; text-transform: uppercase; margin-top: 19px;"> <h2 id="chapter_id_9" style="box-sizing: border-box; line-height: 22px; color: inherit; margin: 0px; font-size: 15px;">9 MULTITHREADING AND CONCURRENCY</h2> </div> <div class="sect1" style="box-sizing: border-box; font-weight: bold; text-transform: uppercase; margin-top: 6px;"> <h2 id="chapter_id_10" style="box-sizing: border-box; line-height: 22px; color: inherit; margin: 0px; font-size: 15px;">10 PERSISTENCE</h2> </div> <div class="sect1" style="box-sizing: border-box; font-weight: bold; text-transform: uppercase; margin-top: 6px;"> <h2 id="chapter_id_11" style="box-sizing: border-box; line-height: 22px; color: inherit; margin: 0px; font-size: 15px;">11 BUSINESS LOGIC DESIGN</h2> </div> <div class="sect1" style="box-sizing: border-box; font-weight: bold; text-transform: uppercase; margin-top: 6px;"> <h2 id="chapter_id_12" style="box-sizing: border-box; line-height: 22px; color: inherit; margin: 0px; font-size: 15px;">12 TESTING</h2> </div> <h1 id="part" class="sect0" style="box-sizing: border-box; font-size: 18px; margin: 19px 0px 0px; line-height: 22px; color: inherit; text-transform: uppercase; border-bottom: thin solid rgb(119, 119, 119); padding-bottom: 0.25em;">APPENDIXES</h1> <div class="sect1" style="box-sizing: border-box; font-weight: bold; text-transform: uppercase; margin-top: 19px;"> <h2 id="_plenty_of_monads" style="box-sizing: border-box; line-height: 22px; color: inherit; margin: 0px; font-size: 15px;">APPENDIX A: PLENTY OF MONADS</h2> </div> <div class="sect1" style="box-sizing: border-box; font-weight: bold; text-transform: uppercase; margin-top: 6px;"> <h2 id="_layering_subsystems_with_a_monadic_stack" style="box-sizing: border-box; line-height: 22px; color: inherit; margin: 0px; font-size: 15px;">APPENDIX B: LAYERING SUBSYSTEMS WITH A MONADIC STACK</h2> </div> <div class="sect1" style="box-sizing: border-box; font-weight: bold; text-transform: uppercase; margin-top: 6px;"> <h2 id="_word_statistics_example_with_monad_transformers" style="box-sizing: border-box; line-height: 22px; color: inherit; margin: 0px; font-size: 15px;">APPENDIX C: WORD STATISTICS EXAMPLE WITH MONAD TRANSFORMERS</h2> </div> <div class="sect1" style="box-sizing: border-box; font-weight: bold; text-transform: uppercase; margin-top: 6px;"> <h2 id="_application_architectures_in_haskell_and_scala" style="box-sizing: border-box; line-height: 22px; color: inherit; margin: 0px; font-size: 15px;">APPENDIX D: APPLICATION ARCHITECTURES IN HASKELL AND SCALA</h2> </div> <div class="sect1" style="box-sizing: border-box; font-weight: bold; text-transform: uppercase; margin-top: 6px;"> <h2 id="_the_mvar_request_response_pattern" style="box-sizing: border-box; line-height: 22px; color: inherit; margin: 0px; font-size: 15px;">APPENDIX E: THE MVAR REQUEST-RESPONSE PATTERN</h2> </div> <div class="sect1" style="box-sizing: border-box; font-weight: bold; text-transform: uppercase; margin-top: 6px;"> <h2 id="_free_monadic_edsl_for_an_interactive_fiction_game" style="box-sizing: border-box; line-height: 22px; color: inherit; margin: 0px; font-size: 15px;">APPENDIX F: FREE MONADIC EDSL FOR AN INTERACTIVE FICTION GAME</h2> </div> <div class="sect1" style="box-sizing: border-box; font-weight: bold; text-transform: uppercase; margin-top: 6px;"> <h2 id="_haskell_and_purescript" style="box-sizing: border-box; line-height: 22px; color: inherit; margin: 0px; font-size: 15px;">APPENDIX G: HASKELL AND PURESCRIPT</h2> </div> </div> </div>