diff --git a/.gitignore b/.gitignore index d8a1130..adcd499 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,6 @@ # Ignore Parcel folders .cache/ /dist/ + +# Ignore personal repo files +regen-toc.sh diff --git a/assets/visuals/Halogen-v5.graphml b/assets/visuals/Halogen-v5.graphml index 9d429af..b848c74 100644 --- a/assets/visuals/Halogen-v5.graphml +++ b/assets/visuals/Halogen-v5.graphml @@ -68,7 +68,7 @@ - + component waits for events @@ -136,7 +136,7 @@ - + child's message is received @@ -316,7 +316,7 @@ component the Root? - + Program code outside of Root Component @@ -325,7 +325,7 @@ component the Root? - + @@ -344,10 +344,10 @@ component the Root? - + - Via HalogenIO.subscribe, + Via HalogenIO.subscribe, top-level component's message is received and passed to external listener @@ -363,7 +363,7 @@ and passed to external listener - + Via HalogenIO.query, an external Query @@ -379,6 +379,26 @@ which may send back information + + + + + + + Via HalogenIO.dispose, Halogen will start at the +root component and use a depth-first +traversal to remove components, +running finalizers (if any) + + + + + + + + + + @@ -455,7 +475,7 @@ into top-level component - + What does the HalogenM @@ -464,7 +484,7 @@ computation do? - + @@ -515,7 +535,6 @@ computation do? - @@ -534,7 +553,6 @@ one or more children - @@ -575,7 +593,7 @@ via `handleAction` - + Maybe ActionType @@ -592,10 +610,10 @@ via `handleAction` - + - which gets ignored + which gets ignored @@ -607,7 +625,6 @@ via `handleAction` - @@ -680,6 +697,77 @@ into each child + + + + + + + Component has children? + + + + + + + + + + + + + + + + + Child's `finalize` function +returns +Maybe (ActionType) + + + + + + + + + + + + + + + + + Component attempts to +remove each component + + + + + + + + + + + + + + + + + Component is removed from DOM + + + + + + + + + + @@ -725,7 +813,8 @@ produces - which gets mapped to + which gets +mapped to @@ -859,7 +948,7 @@ produces - Nothing + Nothing @@ -874,10 +963,13 @@ produces - + + + + - Yes + Yes @@ -888,7 +980,7 @@ produces - + @@ -948,7 +1040,9 @@ produces - + + + @@ -980,7 +1074,7 @@ produces - which gets mapped to + which gets mapped to @@ -998,7 +1092,7 @@ produces - Nothing + Nothing @@ -1016,7 +1110,7 @@ produces - + @@ -1035,13 +1129,11 @@ produces - - - - + + - + Just ActionValue @@ -1059,13 +1151,13 @@ produces - - + + - + - Just (ActionValue) + Just (ActionValue) @@ -1082,21 +1174,20 @@ produces - - - - - - + + + + + - + - Just (ActionValue) + Just (ActionValue) - + @@ -1110,7 +1201,7 @@ produces - and then + and then @@ -1128,7 +1219,7 @@ produces - and then + and then @@ -1185,7 +1276,12 @@ produces - + + + + + + @@ -1301,6 +1397,163 @@ are rendered + + + + + + + Yes + + + + + + + + + + + + + + + + + + No + + + + + + + + + + + + + + + + + + + + + and then + + + + + + + + + + + + Nothing + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + (eventually, this will hit a component without children +and then run this on its siblings, and then parents) + + + + + + + + + + + + + + + + + + + + + (and then for its sibling +or its parent if there +aren't anymore siblings) + + + + + + + + + + + + + + + + + + + + + + + + Just a + + + + + + + + + + + diff --git a/assets/visuals/Halogen-v5.svg b/assets/visuals/Halogen-v5.svg index 4a7342b..a7d8435 100644 --- a/assets/visuals/Halogen-v5.svg +++ b/assets/visuals/Halogen-v5.svg @@ -1,17 +1,17 @@ - + - + - + - + @@ -35,11 +35,11 @@ component's initial rendering - + - - component waits for events + + component waits for events @@ -63,11 +63,11 @@ Maybe ActionType - + - - child's message is received + + child's message is received @@ -149,13 +149,14 @@ produces - + - which gets mapped to + which gets + mapped to Nothing @@ -181,46 +182,56 @@ Yes - - + + Nothing - - + + No - - + + - Program code outside of Root Component - (using HalogenIO record type: `io`) - + Program code outside of Root Component + (using HalogenIO record type: `io`) + - + - - Via HalogenIO.subscribe, - top-level component's message is received - and passed to external listener + + Via HalogenIO.subscribe, + top-level component's message is received + and passed to external listener - + - - Via HalogenIO.query, an external Query - is made on the root component, - which may send back information - - - Yes + + Via HalogenIO.query, an external Query + is made on the root component, + which may send back information + + + + + + + Via HalogenIO.dispose, Halogen will start at the + root component and use a depth-first + traversal to remove components, + running finalizers (if any) + + + Yes @@ -251,13 +262,13 @@ - + What does the HalogenM computation do? - + @@ -298,18 +309,18 @@ via `handleAction` - + - - Maybe ActionType + + Maybe ActionType - + - - which gets ignored + + which gets ignored @@ -321,10 +332,10 @@ via child's `handleQuery` - + - + Does component have children? @@ -343,16 +354,47 @@ Nothing else occurs - - - and then - - - and then + + + + + + + Component has children? + + + + + + + Child's `finalize` function + returns + Maybe (ActionType) + + + + + + + Component attempts to + remove each component + + + + + + + Component is removed from DOM + + + and then + + + and then - - + + @@ -361,29 +403,29 @@ Just (ActionValue) - - + + Just ActionValue - - - Just (ActionValue) - - - - - which gets mapped to - - - Just (ActionValue) - - - Nothing + + + Just (ActionValue) + + + + + which gets mapped to + + + Just (ActionValue) + + + Nothing - + - - + + @@ -405,6 +447,32 @@ No + + + + + No + + + Just a + + + Yes + + + (eventually, this will hit a component without children + and then run this on its siblings, and then parents) + + + and then + + + Nothing + + + (and then for its sibling + or its parent if there + aren't anymore siblings) diff --git a/src/07-Halogen-Control-Flow.md b/src/07-Halogen-Control-Flow.md index 5a79de8..20fc8fb 100644 --- a/src/07-Halogen-Control-Flow.md +++ b/src/07-Halogen-Control-Flow.md @@ -1,5 +1,3 @@ # Halogen Control Flow -This version does not yet include `io.dispose`. - ![Halogen-v5](../assets/visuals/Halogen-v5.svg) diff --git a/table-of-contents.md b/table-of-contents.md index dc57f46..53a8145 100644 --- a/table-of-contents.md +++ b/table-of-contents.md @@ -4,179 +4,179 @@ ## src -- [ReadMe.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/ReadMe.md) - - [Outline](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/ReadMe.md#Outline) - - [Compilation and Viewing Instructions](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/ReadMe.md#Compilation-and-Viewing-Instructions) +- [ReadMe.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/ReadMe.md) + - [Outline](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/ReadMe.md#Outline) + - [Compilation and Viewing Instructions](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/ReadMe.md#Compilation-and-Viewing-Instructions) - 01 Static HTML - - [01 Static HTML.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/01-Static-HTML/01-Static-HTML.md) - - [Compiling Instructions](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/01-Static-HTML/01-Static-HTML.md#Compiling-Instructions) - - [02 Static HTML.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/01-Static-HTML/02-Static-HTML.purs) - - [03 Adding Properties.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/01-Static-HTML/03-Adding-Properties.md) - - [The `HH.value_` Pattern](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/01-Static-HTML/03-Adding-Properties.md#The-HHvalue_-Pattern) - - [Adding Properties](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/01-Static-HTML/03-Adding-Properties.md#Adding-Properties) - - [Compiling Instructions](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/01-Static-HTML/03-Adding-Properties.md#Compiling-Instructions) - - [04 Adding Properties.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/01-Static-HTML/04-Adding-Properties.purs) - - [05 Adding CSS.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/01-Static-HTML/05-Adding-CSS.md) - - [Explaining how `purescript-css` and `purescript-halogen-css` work together](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/01-Static-HTML/05-Adding-CSS.md#Explaining-how-purescript-css-and-purescript-halogen-css-work-together) - - [CSS' single and multi key-pair syntax](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/01-Static-HTML/05-Adding-CSS.md#CSS-single-and-multi-key-pair-syntax) - - [Adding CSS](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/01-Static-HTML/05-Adding-CSS.md#Adding-CSS) - - [Compiling Instructions](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/01-Static-HTML/05-Adding-CSS.md#Compiling-Instructions) - - [06 Adding CSS.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/01-Static-HTML/06-Adding-CSS.purs) + - [01 Static HTML.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/01-Static-HTML/01-Static-HTML.md) + - [Compiling Instructions](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/01-Static-HTML/01-Static-HTML.md#Compiling-Instructions) + - [02 Static HTML.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/01-Static-HTML/02-Static-HTML.purs) + - [03 Adding Properties.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/01-Static-HTML/03-Adding-Properties.md) + - [The `HH.value_` Pattern](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/01-Static-HTML/03-Adding-Properties.md#The-HHvalue_-Pattern) + - [Adding Properties](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/01-Static-HTML/03-Adding-Properties.md#Adding-Properties) + - [Compiling Instructions](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/01-Static-HTML/03-Adding-Properties.md#Compiling-Instructions) + - [04 Adding Properties.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/01-Static-HTML/04-Adding-Properties.purs) + - [05 Adding CSS.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/01-Static-HTML/05-Adding-CSS.md) + - [Explaining how `purescript-css` and `purescript-halogen-css` work together](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/01-Static-HTML/05-Adding-CSS.md#Explaining-how-purescript-css-and-purescript-halogen-css-work-together) + - [CSS' single and multi key-pair syntax](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/01-Static-HTML/05-Adding-CSS.md#CSS-single-and-multi-key-pair-syntax) + - [Adding CSS](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/01-Static-HTML/05-Adding-CSS.md#Adding-CSS) + - [Compiling Instructions](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/01-Static-HTML/05-Adding-CSS.md#Compiling-Instructions) + - [06 Adding CSS.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/01-Static-HTML/06-Adding-CSS.purs) - 02 Dynamic HTML - - [01 Adding State.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/02-Dynamic-HTML/01-Adding-State.md) - - [Compiling Instructions](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/02-Dynamic-HTML/01-Adding-State.md#Compiling-Instructions) - - [02 Adding State.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/02-Dynamic-HTML/02-Adding-State.purs) - - [03 Understanding Monads.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/02-Dynamic-HTML/03-Understanding-Monads.md) - - [Longer Deeper Overview of Monads](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/02-Dynamic-HTML/03-Understanding-Monads.md#Longer-Deeper-Overview-of-Monads) - - [Brief High-Level Overview of Monads](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/02-Dynamic-HTML/03-Understanding-Monads.md#Brief-High-Level-Overview-of-Monads) - - [`Box`-like Types](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/02-Dynamic-HTML/03-Understanding-Monads.md#Box-like-Types) - - [`Do` Syntax](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/02-Dynamic-HTML/03-Understanding-Monads.md#Do-Syntax) - - [Basic](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/02-Dynamic-HTML/03-Understanding-Monads.md#Basic) - - [Requirements for the Last Monadic Computation in Do Notation](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/02-Dynamic-HTML/03-Understanding-Monads.md#Requirements-for-the-Last-Monadic-Computation-in-Do-Notation) - - [Adding `Let` and `Discard`](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/02-Dynamic-HTML/03-Understanding-Monads.md#Adding-Let-and-Discard) - - [Different `Monadic` Box Types](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/02-Dynamic-HTML/03-Understanding-Monads.md#Different-Monadic-Box-Types) - - [Monad Transformers](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/02-Dynamic-HTML/03-Understanding-Monads.md#Monad-Transformers) - - [The Problem](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/02-Dynamic-HTML/03-Understanding-Monads.md#The-Problem) - - [A Solution](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/02-Dynamic-HTML/03-Understanding-Monads.md#A-Solution) - - [Replacing `Box` with Monad Transformers](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/02-Dynamic-HTML/03-Understanding-Monads.md#Replacing-Box-with-Monad-Transformers) - - [The Problem of Composing Monadic Types](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/02-Dynamic-HTML/03-Understanding-Monads.md#The-Problem-of-Composing-Monadic-Types) - - [04 Adding Event Handling.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/02-Dynamic-HTML/04-Adding-Event-Handling.md) - - [Compiling Instructions](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/02-Dynamic-HTML/04-Adding-Event-Handling.md#Compiling-Instructions) - - [05 Adding Event Handling.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/02-Dynamic-HTML/05-Adding-Event-Handling.purs) - - [06 Referring to Elements.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/02-Dynamic-HTML/06-Referring-to-Elements.md) - - [Idiomatically using `H.getHTMLElementRef`](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/02-Dynamic-HTML/06-Referring-to-Elements.md#Idiomatically-using-HgetHTMLElementRef) - - [Full Example](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/02-Dynamic-HTML/06-Referring-to-Elements.md#Full-Example) - - [Compiling Instructions](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/02-Dynamic-HTML/06-Referring-to-Elements.md#Compiling-Instructions) - - [06 Referring to Elements.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/02-Dynamic-HTML/06-Referring-to-Elements.purs) - - [11 Prevent Default and Stop Propagation.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/02-Dynamic-HTML/11-Prevent-Default-and-Stop-Propagation.md) - - [Full Solution](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/02-Dynamic-HTML/11-Prevent-Default-and-Stop-Propagation.md#Full-Solution) + - [01 Adding State.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/02-Dynamic-HTML/01-Adding-State.md) + - [Compiling Instructions](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/02-Dynamic-HTML/01-Adding-State.md#Compiling-Instructions) + - [02 Adding State.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/02-Dynamic-HTML/02-Adding-State.purs) + - [03 Understanding Monads.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/02-Dynamic-HTML/03-Understanding-Monads.md) + - [Longer Deeper Overview of Monads](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/02-Dynamic-HTML/03-Understanding-Monads.md#Longer-Deeper-Overview-of-Monads) + - [Brief High-Level Overview of Monads](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/02-Dynamic-HTML/03-Understanding-Monads.md#Brief-High-Level-Overview-of-Monads) + - [`Box`-like Types](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/02-Dynamic-HTML/03-Understanding-Monads.md#Box-like-Types) + - [`Do` Syntax](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/02-Dynamic-HTML/03-Understanding-Monads.md#Do-Syntax) + - [Basic](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/02-Dynamic-HTML/03-Understanding-Monads.md#Basic) + - [Requirements for the Last Monadic Computation in Do Notation](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/02-Dynamic-HTML/03-Understanding-Monads.md#Requirements-for-the-Last-Monadic-Computation-in-Do-Notation) + - [Adding `Let` and `Discard`](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/02-Dynamic-HTML/03-Understanding-Monads.md#Adding-Let-and-Discard) + - [Different `Monadic` Box Types](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/02-Dynamic-HTML/03-Understanding-Monads.md#Different-Monadic-Box-Types) + - [Monad Transformers](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/02-Dynamic-HTML/03-Understanding-Monads.md#Monad-Transformers) + - [The Problem](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/02-Dynamic-HTML/03-Understanding-Monads.md#The-Problem) + - [A Solution](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/02-Dynamic-HTML/03-Understanding-Monads.md#A-Solution) + - [Replacing `Box` with Monad Transformers](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/02-Dynamic-HTML/03-Understanding-Monads.md#Replacing-Box-with-Monad-Transformers) + - [The Problem of Composing Monadic Types](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/02-Dynamic-HTML/03-Understanding-Monads.md#The-Problem-of-Composing-Monadic-Types) + - [04 Adding Event Handling.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/02-Dynamic-HTML/04-Adding-Event-Handling.md) + - [Compiling Instructions](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/02-Dynamic-HTML/04-Adding-Event-Handling.md#Compiling-Instructions) + - [05 Adding Event Handling.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/02-Dynamic-HTML/05-Adding-Event-Handling.purs) + - [06 Referring to Elements.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/02-Dynamic-HTML/06-Referring-to-Elements.md) + - [Idiomatically using `H.getHTMLElementRef`](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/02-Dynamic-HTML/06-Referring-to-Elements.md#Idiomatically-using-HgetHTMLElementRef) + - [Full Example](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/02-Dynamic-HTML/06-Referring-to-Elements.md#Full-Example) + - [Compiling Instructions](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/02-Dynamic-HTML/06-Referring-to-Elements.md#Compiling-Instructions) + - [06 Referring to Elements.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/02-Dynamic-HTML/06-Referring-to-Elements.purs) + - [11 Prevent Default and Stop Propagation.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/02-Dynamic-HTML/11-Prevent-Default-and-Stop-Propagation.md) + - [Full Solution](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/02-Dynamic-HTML/11-Prevent-Default-and-Stop-Propagation.md#Full-Solution) - 03 Parent Child Relationships - - [ReadMe.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/03-Parent-Child-Relationships/ReadMe.md) - - [How to Read This Folder](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/03-Parent-Child-Relationships/ReadMe.md#How-to-Read-This-Folder) - - [Capability-Based Components](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/03-Parent-Child-Relationships/ReadMe.md#Capability-Based-Components) - - [Rendering](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/03-Parent-Child-Relationships/ReadMe.md#Rendering) - - [Initial Rendering](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/03-Parent-Child-Relationships/ReadMe.md#Initial-Rendering) - - [Each Re-Render Thereafter](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/03-Parent-Child-Relationships/ReadMe.md#Each-Re-Render-Thereafter) - - [Parent-Child Communication](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/03-Parent-Child-Relationships/ReadMe.md#Parent-Child-Communication) - - [Child to Parent Communication](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/03-Parent-Child-Relationships/ReadMe.md#Child-to-Parent-Communication) - - [Parent to Child Communication](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/03-Parent-Child-Relationships/ReadMe.md#Parent-to-Child-Communication) - - [The Problem of Multiple Children and the Solution of Slot Addresses](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/03-Parent-Child-Relationships/ReadMe.md#The-Problem-of-Multiple-Children-and-the-Solution-of-Slot-Addresses) - - [What is a `slot`?](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/03-Parent-Child-Relationships/ReadMe.md#What-is-a-slot) - - [A Note on Children's `Child Slots`](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/03-Parent-Child-Relationships/ReadMe.md#A-Note-on-Childrens-Child-Slots) - - [How Do We Refer to the Slot's Label?](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/03-Parent-Child-Relationships/ReadMe.md#How-Do-We-Refer-to-the-Slots-Label) - - [A note on the `Slot Index` type](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/03-Parent-Child-Relationships/ReadMe.md#A-note-on-the-Slot-Index-type) + - [ReadMe.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/03-Parent-Child-Relationships/ReadMe.md) + - [How to Read This Folder](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/03-Parent-Child-Relationships/ReadMe.md#How-to-Read-This-Folder) + - [Capability-Based Components](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/03-Parent-Child-Relationships/ReadMe.md#Capability-Based-Components) + - [Rendering](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/03-Parent-Child-Relationships/ReadMe.md#Rendering) + - [Initial Rendering](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/03-Parent-Child-Relationships/ReadMe.md#Initial-Rendering) + - [Each Re-Render Thereafter](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/03-Parent-Child-Relationships/ReadMe.md#Each-Re-Render-Thereafter) + - [Parent-Child Communication](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/03-Parent-Child-Relationships/ReadMe.md#Parent-Child-Communication) + - [Child to Parent Communication](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/03-Parent-Child-Relationships/ReadMe.md#Child-to-Parent-Communication) + - [Parent to Child Communication](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/03-Parent-Child-Relationships/ReadMe.md#Parent-to-Child-Communication) + - [The Problem of Multiple Children and the Solution of Slot Addresses](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/03-Parent-Child-Relationships/ReadMe.md#The-Problem-of-Multiple-Children-and-the-Solution-of-Slot-Addresses) + - [What is a `slot`?](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/03-Parent-Child-Relationships/ReadMe.md#What-is-a-slot) + - [A Note on Children's `Child Slots`](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/03-Parent-Child-Relationships/ReadMe.md#A-Note-on-Childrens-Child-Slots) + - [How Do We Refer to the Slot's Label?](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/03-Parent-Child-Relationships/ReadMe.md#How-Do-We-Refer-to-the-Slots-Label) + - [A note on the `Slot Index` type](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/03-Parent-Child-Relationships/ReadMe.md#A-note-on-the-Slot-Index-type) - 01 Childlike Components - - [01 Input Only.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/03-Parent-Child-Relationships/01-Childlike-Components/01-Input-Only.md) - - [Compiling Instructions](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/03-Parent-Child-Relationships/01-Childlike-Components/01-Input-Only.md#Compiling-Instructions) - - [02 Input Only.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/03-Parent-Child-Relationships/01-Childlike-Components/02-Input-Only.purs) - - [03 Message Only.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/03-Parent-Child-Relationships/01-Childlike-Components/03-Message-Only.md) - - [Compiling Instructions](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/03-Parent-Child-Relationships/01-Childlike-Components/03-Message-Only.md#Compiling-Instructions) - - [04 Message Only.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/03-Parent-Child-Relationships/01-Childlike-Components/04-Message-Only.purs) - - [05 Query Only.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/03-Parent-Child-Relationships/01-Childlike-Components/05-Query-Only.md) - - [Compiling Instructions](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/03-Parent-Child-Relationships/01-Childlike-Components/05-Query-Only.md#Compiling-Instructions) - - [06 Query Only.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/03-Parent-Child-Relationships/01-Childlike-Components/06-Query-Only.purs) - - [07 All: No Halogen Types.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/03-Parent-Child-Relationships/01-Childlike-Components/07-All--No-Halogen-Types.md) - - [Compiling Instructions](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/03-Parent-Child-Relationships/01-Childlike-Components/07-All--No-Halogen-Types.md#Compiling-Instructions) - - [08 All: No Halogen Types.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/03-Parent-Child-Relationships/01-Childlike-Components/08-All--No-Halogen-Types.purs) - - [11 All: With Halogen Types.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/03-Parent-Child-Relationships/01-Childlike-Components/11-All--With-Halogen-Types.md) - - [The `Eval` label](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/03-Parent-Child-Relationships/01-Childlike-Components/11-All--With-Halogen-Types.md#The-Eval-label) - - [Compiling Instructions](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/03-Parent-Child-Relationships/01-Childlike-Components/11-All--With-Halogen-Types.md#Compiling-Instructions) - - [12 All: With Halogen Types.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/03-Parent-Child-Relationships/01-Childlike-Components/12-All--With-Halogen-Types.purs) + - [01 Input Only.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/03-Parent-Child-Relationships/01-Childlike-Components/01-Input-Only.md) + - [Compiling Instructions](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/03-Parent-Child-Relationships/01-Childlike-Components/01-Input-Only.md#Compiling-Instructions) + - [02 Input Only.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/03-Parent-Child-Relationships/01-Childlike-Components/02-Input-Only.purs) + - [03 Message Only.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/03-Parent-Child-Relationships/01-Childlike-Components/03-Message-Only.md) + - [Compiling Instructions](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/03-Parent-Child-Relationships/01-Childlike-Components/03-Message-Only.md#Compiling-Instructions) + - [04 Message Only.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/03-Parent-Child-Relationships/01-Childlike-Components/04-Message-Only.purs) + - [05 Query Only.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/03-Parent-Child-Relationships/01-Childlike-Components/05-Query-Only.md) + - [Compiling Instructions](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/03-Parent-Child-Relationships/01-Childlike-Components/05-Query-Only.md#Compiling-Instructions) + - [06 Query Only.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/03-Parent-Child-Relationships/01-Childlike-Components/06-Query-Only.purs) + - [07 All: No Halogen Types.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/03-Parent-Child-Relationships/01-Childlike-Components/07-All--No-Halogen-Types.md) + - [Compiling Instructions](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/03-Parent-Child-Relationships/01-Childlike-Components/07-All--No-Halogen-Types.md#Compiling-Instructions) + - [08 All: No Halogen Types.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/03-Parent-Child-Relationships/01-Childlike-Components/08-All--No-Halogen-Types.purs) + - [11 All: With Halogen Types.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/03-Parent-Child-Relationships/01-Childlike-Components/11-All--With-Halogen-Types.md) + - [The `Eval` label](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/03-Parent-Child-Relationships/01-Childlike-Components/11-All--With-Halogen-Types.md#The-Eval-label) + - [Compiling Instructions](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/03-Parent-Child-Relationships/01-Childlike-Components/11-All--With-Halogen-Types.md#Compiling-Instructions) + - [12 All: With Halogen Types.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/03-Parent-Child-Relationships/01-Childlike-Components/12-All--With-Halogen-Types.purs) - 02 Parentlike Components - - [01 Basic Container.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/03-Parent-Child-Relationships/02-Parentlike-Components/01-Basic-Container.md) - - [Compiling Instructions](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/03-Parent-Child-Relationships/02-Parentlike-Components/01-Basic-Container.md#Compiling-Instructions) - - [02 Basic Container.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/03-Parent-Child-Relationships/02-Parentlike-Components/02-Basic-Container.purs) + - [01 Basic Container.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/03-Parent-Child-Relationships/02-Parentlike-Components/01-Basic-Container.md) + - [Compiling Instructions](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/03-Parent-Child-Relationships/02-Parentlike-Components/01-Basic-Container.md#Compiling-Instructions) + - [02 Basic Container.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/03-Parent-Child-Relationships/02-Parentlike-Components/02-Basic-Container.purs) - 03 Single Child - - [01 Input Only.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/03-Parent-Child-Relationships/02-Parentlike-Components/03-Single-Child/01-Input-Only.md) - - [Compiling Instructions](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/03-Parent-Child-Relationships/02-Parentlike-Components/03-Single-Child/01-Input-Only.md#Compiling-Instructions) - - [02 Input Only.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/03-Parent-Child-Relationships/02-Parentlike-Components/03-Single-Child/02-Input-Only.purs) - - [03 Message Only.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/03-Parent-Child-Relationships/02-Parentlike-Components/03-Single-Child/03-Message-Only.md) - - [Compiling Instructions](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/03-Parent-Child-Relationships/02-Parentlike-Components/03-Single-Child/03-Message-Only.md#Compiling-Instructions) - - [04 Message Only.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/03-Parent-Child-Relationships/02-Parentlike-Components/03-Single-Child/04-Message-Only.purs) - - [05 Query Only.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/03-Parent-Child-Relationships/02-Parentlike-Components/03-Single-Child/05-Query-Only.md) - - [Compiling Instructions](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/03-Parent-Child-Relationships/02-Parentlike-Components/03-Single-Child/05-Query-Only.md#Compiling-Instructions) - - [06 Query Only.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/03-Parent-Child-Relationships/02-Parentlike-Components/03-Single-Child/06-Query-Only.purs) + - [01 Input Only.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/03-Parent-Child-Relationships/02-Parentlike-Components/03-Single-Child/01-Input-Only.md) + - [Compiling Instructions](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/03-Parent-Child-Relationships/02-Parentlike-Components/03-Single-Child/01-Input-Only.md#Compiling-Instructions) + - [02 Input Only.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/03-Parent-Child-Relationships/02-Parentlike-Components/03-Single-Child/02-Input-Only.purs) + - [03 Message Only.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/03-Parent-Child-Relationships/02-Parentlike-Components/03-Single-Child/03-Message-Only.md) + - [Compiling Instructions](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/03-Parent-Child-Relationships/02-Parentlike-Components/03-Single-Child/03-Message-Only.md#Compiling-Instructions) + - [04 Message Only.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/03-Parent-Child-Relationships/02-Parentlike-Components/03-Single-Child/04-Message-Only.purs) + - [05 Query Only.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/03-Parent-Child-Relationships/02-Parentlike-Components/03-Single-Child/05-Query-Only.md) + - [Compiling Instructions](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/03-Parent-Child-Relationships/02-Parentlike-Components/03-Single-Child/05-Query-Only.md#Compiling-Instructions) + - [06 Query Only.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/03-Parent-Child-Relationships/02-Parentlike-Components/03-Single-Child/06-Query-Only.purs) - 04 Multiple Children - - [01 Revealing Child Slots.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/03-Parent-Child-Relationships/02-Parentlike-Components/04-Multiple-Children/01-Revealing-Child-Slots.md) - - [Rendering a Child using Slots](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/03-Parent-Child-Relationships/02-Parentlike-Components/04-Multiple-Children/01-Revealing-Child-Slots.md#Rendering-a-Child-using-Slots) - - [Quering a Child using slots](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/03-Parent-Child-Relationships/02-Parentlike-Components/04-Multiple-Children/01-Revealing-Child-Slots.md#Quering-a-Child-using-slots) - - [Compiling Instructions](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/03-Parent-Child-Relationships/02-Parentlike-Components/04-Multiple-Children/01-Revealing-Child-Slots.md#Compiling-Instructions) - - [02 Revealing Child Slots.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/03-Parent-Child-Relationships/02-Parentlike-Components/04-Multiple-Children/02-Revealing-Child-Slots.purs) - - [03 Multiple Slots.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/03-Parent-Child-Relationships/02-Parentlike-Components/04-Multiple-Children/03-Multiple-Slots.md) - - [Compiling Instructions](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/03-Parent-Child-Relationships/02-Parentlike-Components/04-Multiple-Children/03-Multiple-Slots.md#Compiling-Instructions) - - [04 Multiple Slots.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/03-Parent-Child-Relationships/02-Parentlike-Components/04-Multiple-Children/04-Multiple-Slots.purs) + - [01 Revealing Child Slots.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/03-Parent-Child-Relationships/02-Parentlike-Components/04-Multiple-Children/01-Revealing-Child-Slots.md) + - [Rendering a Child using Slots](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/03-Parent-Child-Relationships/02-Parentlike-Components/04-Multiple-Children/01-Revealing-Child-Slots.md#Rendering-a-Child-using-Slots) + - [Querying a Child using slots](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/03-Parent-Child-Relationships/02-Parentlike-Components/04-Multiple-Children/01-Revealing-Child-Slots.md#Querying-a-Child-using-slots) + - [Compiling Instructions](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/03-Parent-Child-Relationships/02-Parentlike-Components/04-Multiple-Children/01-Revealing-Child-Slots.md#Compiling-Instructions) + - [02 Revealing Child Slots.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/03-Parent-Child-Relationships/02-Parentlike-Components/04-Multiple-Children/02-Revealing-Child-Slots.purs) + - [03 Multiple Slots.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/03-Parent-Child-Relationships/02-Parentlike-Components/04-Multiple-Children/03-Multiple-Slots.md) + - [Compiling Instructions](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/03-Parent-Child-Relationships/02-Parentlike-Components/04-Multiple-Children/03-Multiple-Slots.md#Compiling-Instructions) + - [04 Multiple Slots.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/03-Parent-Child-Relationships/02-Parentlike-Components/04-Multiple-Children/04-Multiple-Slots.purs) - 04 Lifecycle - - [01 Lifecycle.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/04-Lifecycle/01-Lifecycle.md) - - [The Initialize and Finalize Hooks](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/04-Lifecycle/01-Lifecycle.md#The-Initialize-and-Finalize-Hooks) - - [Handling the Hooks](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/04-Lifecycle/01-Lifecycle.md#Handling-the-Hooks) - - [Top-Level Component Bug](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/04-Lifecycle/01-Lifecycle.md#Top-Level-Component-Bug) - - [Compiling Instructions](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/04-Lifecycle/01-Lifecycle.md#Compiling-Instructions) - - [Child Lifecycle Component](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/04-Lifecycle/01-Lifecycle.md#Child-Lifecycle-Component) - - [Parent Lifecycle Component](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/04-Lifecycle/01-Lifecycle.md#Parent-Lifecycle-Component) - - [02 Child Lifecycle.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/04-Lifecycle/02-Child-Lifecycle.purs) - - [03 Parent Lifecycle.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/04-Lifecycle/03-Parent-Lifecycle.purs) -- [05 ComponentTemplate A.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/05-ComponentTemplate-A.purs) -- [05 ComponentTemplate B.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/05-ComponentTemplate-B.purs) + - [01 Lifecycle.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/04-Lifecycle/01-Lifecycle.md) + - [The Initialize and Finalize Hooks](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/04-Lifecycle/01-Lifecycle.md#The-Initialize-and-Finalize-Hooks) + - [Handling the Hooks](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/04-Lifecycle/01-Lifecycle.md#Handling-the-Hooks) + - [Top-Level Component Bug](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/04-Lifecycle/01-Lifecycle.md#Top-Level-Component-Bug) + - [Compiling Instructions](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/04-Lifecycle/01-Lifecycle.md#Compiling-Instructions) + - [Child Lifecycle Component](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/04-Lifecycle/01-Lifecycle.md#Child-Lifecycle-Component) + - [Parent Lifecycle Component](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/04-Lifecycle/01-Lifecycle.md#Parent-Lifecycle-Component) + - [02 Child Lifecycle.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/04-Lifecycle/02-Child-Lifecycle.purs) + - [03 Parent Lifecycle.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/04-Lifecycle/03-Parent-Lifecycle.purs) +- [05 ComponentTemplate A.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/05-ComponentTemplate-A.purs) +- [05 ComponentTemplate B.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/05-ComponentTemplate-B.purs) - 06 Driver - - [ReadMe.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/06-Driver/ReadMe.md) - - [Running a component with `runUI`](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/06-Driver/ReadMe.md#Running-a-component-with-runUI) - - [Communicating with the top-level component via the `HalogenIO` type (a record)](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/06-Driver/ReadMe.md#Communicating-with-the-top-level-component-via-the-HalogenIO-type-a-record) - - [Sending Queries into the Top-Level Component](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/06-Driver/ReadMe.md#Sending-Queries-into-the-Top-Level-Component) - - [Subscribing to Messages Raised by the Top-Level Component](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/06-Driver/ReadMe.md#Subscribing-to-Messages-Raised-by-the-Top-Level-Component) - - [Disposing a Top-Level Component](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/06-Driver/ReadMe.md#Disposing-a-Top-Level-Component) - - [01 Running Components.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/06-Driver/01-Running-Components.md) - - [Compiling Instructions](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/06-Driver/01-Running-Components.md#Compiling-Instructions) - - [02 Running Components.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/06-Driver/02-Running-Components.purs) - - [03 Embedding Components.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/06-Driver/03-Embedding-Components.md) - - [Compiling Instructions](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/06-Driver/03-Embedding-Components.md#Compiling-Instructions) - - [04 Embedding Components.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/06-Driver/04-Embedding-Components.purs) - - [11 Querying Components.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/06-Driver/11-Querying-Components.md) - - [Compiling Instructions](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/06-Driver/11-Querying-Components.md#Compiling-Instructions) - - [12 Querying Components.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/06-Driver/12-Querying-Components.purs) - - [13 Subscribing to Messages.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/06-Driver/13-Subscribing-to-Messages.md) - - [Compiling Instructions](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/06-Driver/13-Subscribing-to-Messages.md#Compiling-Instructions) - - [14 Subscribing to Messages.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/06-Driver/14-Subscribing-to-Messages.purs) - - [15 Disposing Components.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/06-Driver/15-Disposing-Components.md) - - [Compiling Instructions](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/06-Driver/15-Disposing-Components.md#Compiling-Instructions) - - [16 Disposing Components.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/06-Driver/16-Disposing-Components.purs) -- [07 Halogen Control Flow.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/07-Halogen-Control-Flow.md) + - [ReadMe.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/06-Driver/ReadMe.md) + - [Running a component with `runUI`](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/06-Driver/ReadMe.md#Running-a-component-with-runUI) + - [Communicating with the top-level component via the `HalogenIO` type (a record)](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/06-Driver/ReadMe.md#Communicating-with-the-top-level-component-via-the-HalogenIO-type-a-record) + - [Sending Queries into the Top-Level Component](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/06-Driver/ReadMe.md#Sending-Queries-into-the-Top-Level-Component) + - [Subscribing to Messages Raised by the Top-Level Component](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/06-Driver/ReadMe.md#Subscribing-to-Messages-Raised-by-the-Top-Level-Component) + - [Disposing a Top-Level Component](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/06-Driver/ReadMe.md#Disposing-a-Top-Level-Component) + - [01 Running Components.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/06-Driver/01-Running-Components.md) + - [Compiling Instructions](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/06-Driver/01-Running-Components.md#Compiling-Instructions) + - [02 Running Components.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/06-Driver/02-Running-Components.purs) + - [03 Embedding Components.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/06-Driver/03-Embedding-Components.md) + - [Compiling Instructions](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/06-Driver/03-Embedding-Components.md#Compiling-Instructions) + - [04 Embedding Components.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/06-Driver/04-Embedding-Components.purs) + - [11 Querying Components.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/06-Driver/11-Querying-Components.md) + - [Compiling Instructions](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/06-Driver/11-Querying-Components.md#Compiling-Instructions) + - [12 Querying Components.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/06-Driver/12-Querying-Components.purs) + - [13 Subscribing to Messages.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/06-Driver/13-Subscribing-to-Messages.md) + - [Compiling Instructions](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/06-Driver/13-Subscribing-to-Messages.md#Compiling-Instructions) + - [14 Subscribing to Messages.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/06-Driver/14-Subscribing-to-Messages.purs) + - [15 Disposing Components.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/06-Driver/15-Disposing-Components.md) + - [Compiling Instructions](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/06-Driver/15-Disposing-Components.md#Compiling-Instructions) + - [16 Disposing Components.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/06-Driver/16-Disposing-Components.purs) +- [07 Halogen Control Flow.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/07-Halogen-Control-Flow.md) - 08 Going Deeper - - [01 A Different Monad.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/08-Going-Deeper/01-A-Different-Monad.md) - - [Don't Use `StateT` as the `MonadType` in a component.](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/08-Going-Deeper/01-A-Different-Monad.md#Dont-Use-StateT-as-the-MonadType-in-a-component) - - [Compiling Instructions](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/08-Going-Deeper/01-A-Different-Monad.md#Compiling-Instructions) - - [ReaderT](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/08-Going-Deeper/01-A-Different-Monad.md#ReaderT) - - [Run](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/08-Going-Deeper/01-A-Different-Monad.md#Run) - - [02 A Different Monad: ReaderT.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/08-Going-Deeper/02-A-Different-Monad--ReaderT.purs) - - [03 A Different Monad: Run.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/08-Going-Deeper/03-A-Different-Monad--Run.purs) - - [04 Forking Threads.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/08-Going-Deeper/04-Forking-Threads.md) - - [Compiling Instructions](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/08-Going-Deeper/04-Forking-Threads.md#Compiling-Instructions) - - [05 Forking Threads.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/08-Going-Deeper/05-Forking-Threads.purs) - - [06 Various Tips and Tricks.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/08-Going-Deeper/06-Various-Tips-and-Tricks.md) - - [Calling `handleAction`/`handleQuery` within itself.](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/08-Going-Deeper/06-Various-Tips-and-Tricks.md#Calling-handleActionhandleQuery-within-itself) - - [Using `HH.text ""` as an empty placeholder HTML value](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/08-Going-Deeper/06-Various-Tips-and-Tricks.md#Using-HHtext--as-an-empty-placeholder-HTML-value) - - [A better way to assign multiple CSS classes](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/08-Going-Deeper/06-Various-Tips-and-Tricks.md#A-better-way-to-assign-multiple-CSS-classes) -- [09 Where Do We Go From Here.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/09-Where-Do-We-Go-From-Here.md) - - [Other Libraries Used in/with Halogen](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/09-Where-Do-We-Go-From-Here.md#Other-Libraries-Used-inwith-Halogen) - - [Other Examples / Projects](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/09-Where-Do-We-Go-From-Here.md#Other-Examples--Projects) - - [Halogen Ecosystem](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/09-Where-Do-We-Go-From-Here.md#Halogen-Ecosystem) - - [Tutorials for Halogen Libraries](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/09-Where-Do-We-Go-From-Here.md#Tutorials-for-Halogen-Libraries) + - [01 A Different Monad.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/08-Going-Deeper/01-A-Different-Monad.md) + - [Don't Use `StateT` as the `MonadType` in a component.](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/08-Going-Deeper/01-A-Different-Monad.md#Dont-Use-StateT-as-the-MonadType-in-a-component) + - [Compiling Instructions](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/08-Going-Deeper/01-A-Different-Monad.md#Compiling-Instructions) + - [ReaderT](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/08-Going-Deeper/01-A-Different-Monad.md#ReaderT) + - [Run](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/08-Going-Deeper/01-A-Different-Monad.md#Run) + - [02 A Different Monad: ReaderT.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/08-Going-Deeper/02-A-Different-Monad--ReaderT.purs) + - [03 A Different Monad: Run.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/08-Going-Deeper/03-A-Different-Monad--Run.purs) + - [04 Forking Threads.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/08-Going-Deeper/04-Forking-Threads.md) + - [Compiling Instructions](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/08-Going-Deeper/04-Forking-Threads.md#Compiling-Instructions) + - [05 Forking Threads.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/08-Going-Deeper/05-Forking-Threads.purs) + - [06 Various Tips and Tricks.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/08-Going-Deeper/06-Various-Tips-and-Tricks.md) + - [Calling `handleAction`/`handleQuery` within itself.](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/08-Going-Deeper/06-Various-Tips-and-Tricks.md#Calling-handleActionhandleQuery-within-itself) + - [Using `HH.text ""` as an empty placeholder HTML value](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/08-Going-Deeper/06-Various-Tips-and-Tricks.md#Using-HHtext--as-an-empty-placeholder-HTML-value) + - [A better way to assign multiple CSS classes](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/08-Going-Deeper/06-Various-Tips-and-Tricks.md#A-better-way-to-assign-multiple-CSS-classes) +- [09 Where Do We Go From Here.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/09-Where-Do-We-Go-From-Here.md) + - [Other Libraries Used in/with Halogen](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/09-Where-Do-We-Go-From-Here.md#Other-Libraries-Used-inwith-Halogen) + - [Other Examples / Projects](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/09-Where-Do-We-Go-From-Here.md#Other-Examples--Projects) + - [Halogen Ecosystem](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/09-Where-Do-We-Go-From-Here.md#Halogen-Ecosystem) + - [Tutorials for Halogen Libraries](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/09-Where-Do-We-Go-From-Here.md#Tutorials-for-Halogen-Libraries) - Scaffolding - DynamicRenderer - - [StateAndEval.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/Scaffolding/DynamicRenderer/StateAndEval.purs) - - [StateOnly.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/Scaffolding/DynamicRenderer/StateOnly.purs) + - [StateAndEval.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/Scaffolding/DynamicRenderer/StateAndEval.purs) + - [StateOnly.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/Scaffolding/DynamicRenderer/StateOnly.purs) - Lifecycle - - [LifecycleRenderer.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/Scaffolding/Lifecycle/LifecycleRenderer.purs) + - [LifecycleRenderer.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/Scaffolding/Lifecycle/LifecycleRenderer.purs) - ParentChildRenderer - ChildlikeComponents - - [AllRenderer.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/Scaffolding/ParentChildRenderer/ChildlikeComponents/AllRenderer.purs) - - [InputOnlyRenderer.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/Scaffolding/ParentChildRenderer/ChildlikeComponents/InputOnlyRenderer.purs) - - [MessageOnlyRenderer.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/Scaffolding/ParentChildRenderer/ChildlikeComponents/MessageOnlyRenderer.purs) - - [QueryOnlyRenderer.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/Scaffolding/ParentChildRenderer/ChildlikeComponents/QueryOnlyRenderer.purs) + - [AllRenderer.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/Scaffolding/ParentChildRenderer/ChildlikeComponents/AllRenderer.purs) + - [InputOnlyRenderer.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/Scaffolding/ParentChildRenderer/ChildlikeComponents/InputOnlyRenderer.purs) + - [MessageOnlyRenderer.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/Scaffolding/ParentChildRenderer/ChildlikeComponents/MessageOnlyRenderer.purs) + - [QueryOnlyRenderer.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/Scaffolding/ParentChildRenderer/ChildlikeComponents/QueryOnlyRenderer.purs) - ParentlikeComponents - - [BasicContainerRenderer.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/Scaffolding/ParentChildRenderer/ParentlikeComponents/BasicContainerRenderer.purs) - - [MultipleChildrenMultiSlotsRenderer.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/Scaffolding/ParentChildRenderer/ParentlikeComponents/MultipleChildrenMultiSlotsRenderer.purs) - - [MultipleChildrenRevealSlotsRenderer.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/Scaffolding/ParentChildRenderer/ParentlikeComponents/MultipleChildrenRevealSlotsRenderer.purs) - - [SingleChildInputOnlyRenderer.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/Scaffolding/ParentChildRenderer/ParentlikeComponents/SingleChildInputOnlyRenderer.purs) - - [SingleChildMessageOnlyRenderer.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/Scaffolding/ParentChildRenderer/ParentlikeComponents/SingleChildMessageOnlyRenderer.purs) - - [SingleChildQueryOnly.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/Scaffolding/ParentChildRenderer/ParentlikeComponents/SingleChildQueryOnly.purs) - - [StaticRenderer.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.3/src/Scaffolding/StaticRenderer.purs) + - [BasicContainerRenderer.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/Scaffolding/ParentChildRenderer/ParentlikeComponents/BasicContainerRenderer.purs) + - [MultipleChildrenMultiSlotsRenderer.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/Scaffolding/ParentChildRenderer/ParentlikeComponents/MultipleChildrenMultiSlotsRenderer.purs) + - [MultipleChildrenRevealSlotsRenderer.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/Scaffolding/ParentChildRenderer/ParentlikeComponents/MultipleChildrenRevealSlotsRenderer.purs) + - [SingleChildInputOnlyRenderer.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/Scaffolding/ParentChildRenderer/ParentlikeComponents/SingleChildInputOnlyRenderer.purs) + - [SingleChildMessageOnlyRenderer.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/Scaffolding/ParentChildRenderer/ParentlikeComponents/SingleChildMessageOnlyRenderer.purs) + - [SingleChildQueryOnly.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/Scaffolding/ParentChildRenderer/ParentlikeComponents/SingleChildQueryOnly.purs) + - [StaticRenderer.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/Scaffolding/StaticRenderer.purs)