diff --git a/.travis.yml b/.travis.yml index ed28e61..391a821 100644 --- a/.travis.yml +++ b/.travis.yml @@ -21,7 +21,7 @@ install: # helpful as to how to do that - npm i -g npm # Also update NPM - - npm i -g purescript@0.13.0 spago@0.8.3 parcel + - npm i -g purescript@0.13.0 spago@0.8.5 parcel # ^ Installing PureScript 0.13.0 hopefully now works # Print version numbers diff --git a/ReadMe.md b/ReadMe.md index 1292e7d..ee110a9 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -2,18 +2,18 @@ [![Build Status](https://travis-ci.com/JordanMartinez/learn-halogen.svg?branch=latestRelease)](https://travis-ci.com/JordanMartinez/learn-halogen) -Learn [`purescript-halogen`](https://github.com/slamdata/purescript-halogen), (`v5.0.0-rc.4`) from a bottom-up approach +Learn [`purescript-halogen`](https://github.com/slamdata/purescript-halogen), (`v5.0.0-rc.5`) from a bottom-up approach ## Requirements Before learning Halogen via this project, you will need to install the following. (If you don't have them already installed, see my purescript learning repo's [Install Guide](https://github.com/JordanMartinez/purescript-jordans-reference/blob/latestRelease/00-Getting-Started/02-Install-Guide.md) - purescript (v0.13.0) -- spago (v0.8.3.0) +- spago (v0.8.5.0) - parcel (v1.12.3) Or, to install them in one line ```bash -npm i -g purescript@0.13.0 spago@0.8.3 parcel +npm i -g purescript@0.13.0 spago@0.8.5 parcel ``` ## Target Audience diff --git a/packages.dhall b/packages.dhall index f7aa50b..60326f9 100644 --- a/packages.dhall +++ b/packages.dhall @@ -109,14 +109,14 @@ let additions = -} let mkPackage = - https://raw.githubusercontent.com/purescript/package-sets/psc-0.13.0-20190602/src/mkPackage.dhall sha256:0b197efa1d397ace6eb46b243ff2d73a3da5638d8d0ac8473e8e4a8fc528cf57 + https://raw.githubusercontent.com/purescript/package-sets/psc-0.13.0-20190626/src/mkPackage.dhall sha256:0b197efa1d397ace6eb46b243ff2d73a3da5638d8d0ac8473e8e4a8fc528cf57 let upstream = - https://raw.githubusercontent.com/purescript/package-sets/psc-0.13.0-20190602/src/packages.dhall sha256:5da1578dd297709265715a92eda5f42989dce92e121fcc889cff669a3b997c3d + https://raw.githubusercontent.com/purescript/package-sets/psc-0.13.0-20190626/src/packages.dhall sha256:9905f07c9c3bd62fb3205e2108515811a89d55cff24f4341652f61ddacfcf148 let overrides = { halogen = - upstream.halogen // { version = "v5.0.0-rc.4" } + upstream.halogen // { version = "v5.0.0-rc.5" } , halogen-vdom = upstream.halogen-vdom // { version = "v6.1.0" } } diff --git a/spago.dhall b/spago.dhall index 2bcff0b..57be552 100644 --- a/spago.dhall +++ b/spago.dhall @@ -2,7 +2,9 @@ Welcome to a Spago project! You can edit this file as you like. -} -{ name = +{ sources = + [ "src/**/*.purs", "test/**/*.purs" ] +, name = "my-project" , dependencies = [ "console" diff --git a/src/03-Parent-Child-Relationships/ReadMe.md b/src/03-Parent-Child-Relationships/ReadMe.md index e8edf71..c1abc7f 100644 --- a/src/03-Parent-Child-Relationships/ReadMe.md +++ b/src/03-Parent-Child-Relationships/ReadMe.md @@ -97,6 +97,11 @@ In simple terms, Halogen models their communication in this way: ![Parent-Child-Relationship--Communication.svg](../../assets/visuals/Parent-Child-Relationship--Communication.svg) +Note: queries, when evaluated, run a monadic computation that outputs a `Maybe a` rather than `a`. This single type models three possibilities: +1. The child is not a part of the DOM (it was never rendered or it was rendered and then disposed of), so `Nothing` is returned. +2. The child is a part of the DOM, but some error occurred. In such a case, `Nothing` will be returned. +3. The child is a part of the DOM and the query was successful. In such a case, `Just a` will be returned. + ### Child to Parent Communication The corresponding files for this section: `Message-Only` diff --git a/src/04-Lifecycle/01-Lifecycle.md b/src/04-Lifecycle/01-Lifecycle.md index 965ab03..7e6ccec 100644 --- a/src/04-Lifecycle/01-Lifecycle.md +++ b/src/04-Lifecycle/01-Lifecycle.md @@ -60,9 +60,11 @@ component = ## Top-Level Component Bug -While finalizers normally run, in `v5.0.0-rc.4`, they won't run when the component in question is the top-level component. See https://github.com/slamdata/purescript-halogen/issues/602 +The below bug was fixed in `v5.0.0-rc.5` -As a result, the child component and parent component examples below, which are both top-level components, won't run their finalizers. +~While finalizers normally run, in `v5.0.0-rc.4`, they won't run when the component in question is the top-level component. See [Halogen issue #602](https://github.com/slamdata/purescript-halogen/issues/602)~ + +~As a result, the child component and parent component examples below, which are both top-level components, won't run their finalizers.~ ## Compiling Instructions diff --git a/src/06-Driver/ReadMe.md b/src/06-Driver/ReadMe.md index 6203668..ae4831b 100644 --- a/src/06-Driver/ReadMe.md +++ b/src/06-Driver/ReadMe.md @@ -90,6 +90,11 @@ main = tellResult <- io.query $ H.tell $ TellChildSomething 4 ``` +Note: sending queries into the root component, when evaluated, will run a monadic computation that outputs a `Maybe a` rather than `a`. This single type models three possibilities: +1. The root component was a part of the DOM, and one later called `halogenIO.dispose` (covered later in this file). In such a case, the root component is no longer a part of the DOM, so `Nothing` is returned. +2. The root component is a part of the DOM, but some error occurred when evaluating the query. In such a case, `Nothing` will be returned. +3. The root component is a part of the DOM and the query was successful. In such a case, `Just a` will be returned. + ### Subscribing to Messages Raised by the Top-Level Component Section's corresponding files: `Subscribing-to-Messages` diff --git a/src/09-Where-Do-We-Go-From-Here.md b/src/09-Where-Do-We-Go-From-Here.md index 37602b7..71e538b 100644 --- a/src/09-Where-Do-We-Go-From-Here.md +++ b/src/09-Where-Do-We-Go-From-Here.md @@ -29,3 +29,9 @@ - projects for handling routing: - [purescript-routing-duplex](https://github.com/natefaubion/purescript-routing-duplex) - [purescript-boomboom](https://github.com/paluh/purescript-boomboom) + +## Component Templates Files for Other Libraries + +Note: these files are the initial ones I created after learning how to use the below libraries. I have not refined them since creating them, so some things may be missing. They also lack comments that explain what does what and how to best use them. +- [`halogen-select`](https://github.com/JordanMartinez/purescript-halogen-select/commit/209a11194012753d99cedf9202077e2b2c2c728f) +- [`halogen-formles`](https://github.com/JordanMartinez/purescript-halogen-formless/commit/47f8ad7ca1c1eadec6223c9004d43ec38dc762a8) diff --git a/table-of-contents.md b/table-of-contents.md index 53a8145..bce33e4 100644 --- a/table-of-contents.md +++ b/table-of-contents.md @@ -4,179 +4,180 @@ ## src -- [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) +- [ReadMe.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/ReadMe.md) + - [Outline](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/ReadMe.md#Outline) + - [Compilation and Viewing Instructions](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/ReadMe.md#Compilation-and-Viewing-Instructions) - 01 Static HTML - - [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) + - [01 Static HTML.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/01-Static-HTML/01-Static-HTML.md) + - [Compiling Instructions](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/01-Static-HTML/01-Static-HTML.md#Compiling-Instructions) + - [02 Static HTML.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/01-Static-HTML/02-Static-HTML.purs) + - [03 Adding Properties.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/01-Static-HTML/03-Adding-Properties.md) + - [The `HH.value_` Pattern](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/01-Static-HTML/03-Adding-Properties.md#The-HHvalue_-Pattern) + - [Adding Properties](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/01-Static-HTML/03-Adding-Properties.md#Adding-Properties) + - [Compiling Instructions](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/01-Static-HTML/03-Adding-Properties.md#Compiling-Instructions) + - [04 Adding Properties.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/01-Static-HTML/04-Adding-Properties.purs) + - [05 Adding CSS.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/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.1.0/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.1.0/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.1.0/src/01-Static-HTML/05-Adding-CSS.md#Adding-CSS) + - [Compiling Instructions](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/01-Static-HTML/05-Adding-CSS.md#Compiling-Instructions) + - [06 Adding CSS.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/01-Static-HTML/06-Adding-CSS.purs) - 02 Dynamic HTML - - [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) + - [01 Adding State.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/02-Dynamic-HTML/01-Adding-State.md) + - [Compiling Instructions](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/02-Dynamic-HTML/01-Adding-State.md#Compiling-Instructions) + - [02 Adding State.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/02-Dynamic-HTML/02-Adding-State.purs) + - [03 Understanding Monads.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/02-Dynamic-HTML/03-Understanding-Monads.md) + - [Longer Deeper Overview of Monads](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/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.1.0/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.1.0/src/02-Dynamic-HTML/03-Understanding-Monads.md#Box-like-Types) + - [`Do` Syntax](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/02-Dynamic-HTML/03-Understanding-Monads.md#Do-Syntax) + - [Basic](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/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.1.0/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.1.0/src/02-Dynamic-HTML/03-Understanding-Monads.md#Adding-Let-and-Discard) + - [Different `Monadic` Box Types](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/02-Dynamic-HTML/03-Understanding-Monads.md#Different-Monadic-Box-Types) + - [Monad Transformers](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/02-Dynamic-HTML/03-Understanding-Monads.md#Monad-Transformers) + - [The Problem](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/02-Dynamic-HTML/03-Understanding-Monads.md#The-Problem) + - [A Solution](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/02-Dynamic-HTML/03-Understanding-Monads.md#A-Solution) + - [Replacing `Box` with Monad Transformers](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/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.1.0/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.1.0/src/02-Dynamic-HTML/04-Adding-Event-Handling.md) + - [Compiling Instructions](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/02-Dynamic-HTML/04-Adding-Event-Handling.md#Compiling-Instructions) + - [05 Adding Event Handling.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/02-Dynamic-HTML/05-Adding-Event-Handling.purs) + - [06 Referring to Elements.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/02-Dynamic-HTML/06-Referring-to-Elements.md) + - [Idiomatically using `H.getHTMLElementRef`](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/02-Dynamic-HTML/06-Referring-to-Elements.md#Idiomatically-using-HgetHTMLElementRef) + - [Full Example](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/02-Dynamic-HTML/06-Referring-to-Elements.md#Full-Example) + - [Compiling Instructions](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/02-Dynamic-HTML/06-Referring-to-Elements.md#Compiling-Instructions) + - [06 Referring to Elements.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/02-Dynamic-HTML/06-Referring-to-Elements.purs) + - [11 Prevent Default and Stop Propagation.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/02-Dynamic-HTML/11-Prevent-Default-and-Stop-Propagation.md) + - [Full Solution](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/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.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) + - [ReadMe.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/03-Parent-Child-Relationships/ReadMe.md) + - [How to Read This Folder](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/03-Parent-Child-Relationships/ReadMe.md#How-to-Read-This-Folder) + - [Capability-Based Components](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/03-Parent-Child-Relationships/ReadMe.md#Capability-Based-Components) + - [Rendering](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/03-Parent-Child-Relationships/ReadMe.md#Rendering) + - [Initial Rendering](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/03-Parent-Child-Relationships/ReadMe.md#Initial-Rendering) + - [Each Re-Render Thereafter](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/03-Parent-Child-Relationships/ReadMe.md#Each-Re-Render-Thereafter) + - [Parent-Child Communication](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/03-Parent-Child-Relationships/ReadMe.md#Parent-Child-Communication) + - [Child to Parent Communication](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/03-Parent-Child-Relationships/ReadMe.md#Child-to-Parent-Communication) + - [Parent to Child Communication](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/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.1.0/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.1.0/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.1.0/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.1.0/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.1.0/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.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) + - [01 Input Only.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/03-Parent-Child-Relationships/01-Childlike-Components/01-Input-Only.md) + - [Compiling Instructions](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/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.1.0/src/03-Parent-Child-Relationships/01-Childlike-Components/02-Input-Only.purs) + - [03 Message Only.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/03-Parent-Child-Relationships/01-Childlike-Components/03-Message-Only.md) + - [Compiling Instructions](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/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.1.0/src/03-Parent-Child-Relationships/01-Childlike-Components/04-Message-Only.purs) + - [05 Query Only.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/03-Parent-Child-Relationships/01-Childlike-Components/05-Query-Only.md) + - [Compiling Instructions](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/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.1.0/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.1.0/src/03-Parent-Child-Relationships/01-Childlike-Components/07-All--No-Halogen-Types.md) + - [Compiling Instructions](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/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.1.0/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.1.0/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.1.0/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.1.0/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.1.0/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.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) + - [01 Basic Container.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/03-Parent-Child-Relationships/02-Parentlike-Components/01-Basic-Container.md) + - [Compiling Instructions](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/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.1.0/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.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) + - [01 Input Only.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/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.1.0/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.1.0/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.1.0/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.1.0/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.1.0/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.1.0/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.1.0/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.1.0/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.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) + - [01 Revealing Child Slots.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/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.1.0/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.1.0/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.1.0/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.1.0/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.1.0/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.1.0/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.1.0/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.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) + - [01 Lifecycle.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/04-Lifecycle/01-Lifecycle.md) + - [The Initialize and Finalize Hooks](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/04-Lifecycle/01-Lifecycle.md#The-Initialize-and-Finalize-Hooks) + - [Handling the Hooks](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/04-Lifecycle/01-Lifecycle.md#Handling-the-Hooks) + - [Top-Level Component Bug](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/04-Lifecycle/01-Lifecycle.md#Top-Level-Component-Bug) + - [Compiling Instructions](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/04-Lifecycle/01-Lifecycle.md#Compiling-Instructions) + - [Child Lifecycle Component](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/04-Lifecycle/01-Lifecycle.md#Child-Lifecycle-Component) + - [Parent Lifecycle Component](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/04-Lifecycle/01-Lifecycle.md#Parent-Lifecycle-Component) + - [02 Child Lifecycle.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/04-Lifecycle/02-Child-Lifecycle.purs) + - [03 Parent Lifecycle.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/04-Lifecycle/03-Parent-Lifecycle.purs) +- [05 ComponentTemplate A.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/05-ComponentTemplate-A.purs) +- [05 ComponentTemplate B.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/05-ComponentTemplate-B.purs) - 06 Driver - - [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) + - [ReadMe.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/06-Driver/ReadMe.md) + - [Running a component with `runUI`](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/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.1.0/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.1.0/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.1.0/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.1.0/src/06-Driver/ReadMe.md#Disposing-a-Top-Level-Component) + - [01 Running Components.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/06-Driver/01-Running-Components.md) + - [Compiling Instructions](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/06-Driver/01-Running-Components.md#Compiling-Instructions) + - [02 Running Components.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/06-Driver/02-Running-Components.purs) + - [03 Embedding Components.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/06-Driver/03-Embedding-Components.md) + - [Compiling Instructions](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/06-Driver/03-Embedding-Components.md#Compiling-Instructions) + - [04 Embedding Components.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/06-Driver/04-Embedding-Components.purs) + - [11 Querying Components.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/06-Driver/11-Querying-Components.md) + - [Compiling Instructions](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/06-Driver/11-Querying-Components.md#Compiling-Instructions) + - [12 Querying Components.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/06-Driver/12-Querying-Components.purs) + - [13 Subscribing to Messages.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/06-Driver/13-Subscribing-to-Messages.md) + - [Compiling Instructions](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/06-Driver/13-Subscribing-to-Messages.md#Compiling-Instructions) + - [14 Subscribing to Messages.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/06-Driver/14-Subscribing-to-Messages.purs) + - [15 Disposing Components.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/06-Driver/15-Disposing-Components.md) + - [Compiling Instructions](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/06-Driver/15-Disposing-Components.md#Compiling-Instructions) + - [16 Disposing Components.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/06-Driver/16-Disposing-Components.purs) +- [07 Halogen Control Flow.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/07-Halogen-Control-Flow.md) - 08 Going Deeper - - [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) + - [01 A Different Monad.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/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.1.0/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.1.0/src/08-Going-Deeper/01-A-Different-Monad.md#Compiling-Instructions) + - [ReaderT](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/08-Going-Deeper/01-A-Different-Monad.md#ReaderT) + - [Run](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/08-Going-Deeper/01-A-Different-Monad.md#Run) + - [02 A Different Monad: ReaderT.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/08-Going-Deeper/02-A-Different-Monad--ReaderT.purs) + - [03 A Different Monad: Run.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/08-Going-Deeper/03-A-Different-Monad--Run.purs) + - [04 Forking Threads.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/08-Going-Deeper/04-Forking-Threads.md) + - [Compiling Instructions](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/08-Going-Deeper/04-Forking-Threads.md#Compiling-Instructions) + - [05 Forking Threads.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/08-Going-Deeper/05-Forking-Threads.purs) + - [06 Various Tips and Tricks.md](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/08-Going-Deeper/06-Various-Tips-and-Tricks.md) + - [Calling `handleAction`/`handleQuery` within itself.](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/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.1.0/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.1.0/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.1.0/src/09-Where-Do-We-Go-From-Here.md) + - [Other Libraries Used in/with Halogen](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/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.1.0/src/09-Where-Do-We-Go-From-Here.md#Other-Examples--Projects) + - [Halogen Ecosystem](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/09-Where-Do-We-Go-From-Here.md#Halogen-Ecosystem) + - [Tutorials for Halogen Libraries](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/09-Where-Do-We-Go-From-Here.md#Tutorials-for-Halogen-Libraries) + - [Component Templates Files for Other Libraries](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/09-Where-Do-We-Go-From-Here.md#Component-Templates-Files-for-Other-Libraries) - Scaffolding - DynamicRenderer - - [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) + - [StateAndEval.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/Scaffolding/DynamicRenderer/StateAndEval.purs) + - [StateOnly.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/Scaffolding/DynamicRenderer/StateOnly.purs) - Lifecycle - - [LifecycleRenderer.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.0.4/src/Scaffolding/Lifecycle/LifecycleRenderer.purs) + - [LifecycleRenderer.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/Scaffolding/Lifecycle/LifecycleRenderer.purs) - ParentChildRenderer - ChildlikeComponents - - [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) + - [AllRenderer.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/Scaffolding/ParentChildRenderer/ChildlikeComponents/AllRenderer.purs) + - [InputOnlyRenderer.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/Scaffolding/ParentChildRenderer/ChildlikeComponents/InputOnlyRenderer.purs) + - [MessageOnlyRenderer.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/Scaffolding/ParentChildRenderer/ChildlikeComponents/MessageOnlyRenderer.purs) + - [QueryOnlyRenderer.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/Scaffolding/ParentChildRenderer/ChildlikeComponents/QueryOnlyRenderer.purs) - ParentlikeComponents - - [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) + - [BasicContainerRenderer.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/Scaffolding/ParentChildRenderer/ParentlikeComponents/BasicContainerRenderer.purs) + - [MultipleChildrenMultiSlotsRenderer.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/Scaffolding/ParentChildRenderer/ParentlikeComponents/MultipleChildrenMultiSlotsRenderer.purs) + - [MultipleChildrenRevealSlotsRenderer.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/Scaffolding/ParentChildRenderer/ParentlikeComponents/MultipleChildrenRevealSlotsRenderer.purs) + - [SingleChildInputOnlyRenderer.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/Scaffolding/ParentChildRenderer/ParentlikeComponents/SingleChildInputOnlyRenderer.purs) + - [SingleChildMessageOnlyRenderer.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/Scaffolding/ParentChildRenderer/ParentlikeComponents/SingleChildMessageOnlyRenderer.purs) + - [SingleChildQueryOnly.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/Scaffolding/ParentChildRenderer/ParentlikeComponents/SingleChildQueryOnly.purs) + - [StaticRenderer.purs](https://github.com/JordanMartinez/learn-halogen/blob/v2.1.0/src/Scaffolding/StaticRenderer.purs)