{"version":1,"pages":[{"id":"-MWjzoelYQip57wqFgrj","title":"Introduction to Haskell","pathname":"/","siteSpaceId":"sitesp_62nLF","description":""},{"id":"-MWkG87Uel9SIKINbUJD","title":"Functions","pathname":"/introduction/functions","siteSpaceId":"sitesp_62nLF","description":"","breadcrumbs":[{"label":"Introduction"}]},{"id":"-MWkGXc1nwh5nExPzOCK","title":"Functional Programming vs Imperative Programming","pathname":"/introduction/functional-programming-vs-imperative-programming","siteSpaceId":"sitesp_62nLF","description":"","breadcrumbs":[{"label":"Introduction"}]},{"id":"-MWkKUMp2vqdH5fbIE_K","title":"Installing Haskell","pathname":"/introduction/installing-haskell","siteSpaceId":"sitesp_62nLF","description":"","breadcrumbs":[{"label":"Introduction"}]},{"id":"-MWkLDsjFeiXRPyiOZtl","title":"Haskell Modules","pathname":"/introduction/haskell-modules","siteSpaceId":"sitesp_62nLF","description":"","breadcrumbs":[{"label":"Introduction"}]},{"id":"-MWkM-p2dqXY3O2bUlmm","title":"Loading Modules into GHCi","pathname":"/introduction/loading-modules-into-ghci","siteSpaceId":"sitesp_62nLF","description":"","breadcrumbs":[{"label":"Introduction"}]},{"id":"-MWkMg4Um9ExOwK1VC02","title":"Expressions","pathname":"/introduction/expressions","siteSpaceId":"sitesp_62nLF","description":"","breadcrumbs":[{"label":"Introduction"}]},{"id":"-MWkNDZnBp-FKHP3r4GD","title":"Laziness","pathname":"/introduction/laziness","siteSpaceId":"sitesp_62nLF","description":"","breadcrumbs":[{"label":"Introduction"}]},{"id":"-MWkOByPEZRTLcTKqilr","title":"Immutability","pathname":"/introduction/immutability","siteSpaceId":"sitesp_62nLF","description":"","breadcrumbs":[{"label":"Introduction"}]},{"id":"-MWkOjXZPeWkwrTuvLFj","title":"Introduction","pathname":"/types-in-haskell/untitled","siteSpaceId":"sitesp_62nLF","description":"","breadcrumbs":[{"label":"Types in Haskell"}]},{"id":"-MWmvKBFWfHDWwlb4-ax","title":"Basic Types","pathname":"/types-in-haskell/basic-types","siteSpaceId":"sitesp_62nLF","description":"","breadcrumbs":[{"label":"Types in Haskell"}]},{"id":"-MWmwWTD7Mi1sE4btx44","title":"Static Type Check","pathname":"/types-in-haskell/static-type-check","siteSpaceId":"sitesp_62nLF","description":"","breadcrumbs":[{"label":"Types in Haskell"}]},{"id":"-MWnKKf97KjJzRx8ys6O","title":"Polymorphic and Overloaded Types","pathname":"/types-in-haskell/polymorphic-and-overloaded-types","siteSpaceId":"sitesp_62nLF","description":"","breadcrumbs":[{"label":"Types in Haskell"}]},{"id":"-MWn1RcmRcXuRDBu1JfN","title":"Data Structure Types","pathname":"/types-in-haskell/data-structure-types","siteSpaceId":"sitesp_62nLF","description":"","breadcrumbs":[{"label":"Types in Haskell"}]},{"id":"-MWn5gRNdNhA4r54IWxB","title":"Lists","pathname":"/types-in-haskell/data-structure-types/lists","siteSpaceId":"sitesp_62nLF","description":"","breadcrumbs":[{"label":"Types in Haskell"},{"label":"Data Structure Types"}]},{"id":"-MWn2ZtcJWj0turTDPIA","title":"List Functions","pathname":"/types-in-haskell/data-structure-types/lists/list-functions","siteSpaceId":"sitesp_62nLF","description":"","breadcrumbs":[{"label":"Types in Haskell"},{"label":"Data Structure Types"},{"label":"Lists"}]},{"id":"-MWnF_eQ-OwXKayQp8Cb","title":"Tuples","pathname":"/types-in-haskell/data-structure-types/tuples","siteSpaceId":"sitesp_62nLF","description":"","breadcrumbs":[{"label":"Types in Haskell"},{"label":"Data Structure Types"}]},{"id":"-MWnIRZzTzSvEtrWSyKk","title":"Function Types","pathname":"/types-in-haskell/function-types","siteSpaceId":"sitesp_62nLF","description":"","breadcrumbs":[{"label":"Types in Haskell"}]},{"id":"-MWnJ4rMZ6ycpYY9fWQ4","title":"Curried Functions","pathname":"/types-in-haskell/function-types/curried-functions","siteSpaceId":"sitesp_62nLF","description":"","breadcrumbs":[{"label":"Types in Haskell"},{"label":"Function Types"}]},{"id":"-MWnJkZKAxlgHouHWIUE","title":"Partial Application","pathname":"/types-in-haskell/function-types/partial-application","siteSpaceId":"sitesp_62nLF","description":"","breadcrumbs":[{"label":"Types in Haskell"},{"label":"Function Types"}]},{"id":"-MWnLpbK6Qw1hzkXwd_4","title":"The Layout Rule","pathname":"/defining-functions-working-with-functions/the-layout-rule","siteSpaceId":"sitesp_62nLF","description":"","breadcrumbs":[{"label":"Defining Functions / Working with Functions"}]},{"id":"-MWpsAtCAaxC2AaEtIJl","title":"Local Definitions","pathname":"/defining-functions-working-with-functions/local-definitions","siteSpaceId":"sitesp_62nLF","description":"","breadcrumbs":[{"label":"Defining Functions / Working with Functions"}]},{"id":"-MWry5pT8BCBfAS4oy9B","title":"The Infix Operator","pathname":"/defining-functions-working-with-functions/the-infix-operator","siteSpaceId":"sitesp_62nLF","description":"","breadcrumbs":[{"label":"Defining Functions / Working with Functions"}]},{"id":"-MWrz1veBDoNdaV8MEqb","title":"Conditionals","pathname":"/defining-functions-working-with-functions/conditionals","siteSpaceId":"sitesp_62nLF","description":"","breadcrumbs":[{"label":"Defining Functions / Working with Functions"}]},{"id":"-MWrztpQDL_Qt_v-LOxM","title":"If-then-else Statements","pathname":"/defining-functions-working-with-functions/conditionals/if-then-else-statements","siteSpaceId":"sitesp_62nLF","description":"","breadcrumbs":[{"label":"Defining Functions / Working with Functions"},{"label":"Conditionals"}]},{"id":"-MWs0SfgxkGr8bKdR_dp","title":"MultiWayIf","pathname":"/defining-functions-working-with-functions/conditionals/multiwayif","siteSpaceId":"sitesp_62nLF","description":"","breadcrumbs":[{"label":"Defining Functions / Working with Functions"},{"label":"Conditionals"}]},{"id":"-MWs3qnYkIZSBqQNFfIg","title":"Guarded Equations","pathname":"/defining-functions-working-with-functions/conditionals/guarded-equations","siteSpaceId":"sitesp_62nLF","description":"","breadcrumbs":[{"label":"Defining Functions / Working with Functions"},{"label":"Conditionals"}]},{"id":"-MWs4USpqoR-aT7b1DjT","title":"Case-of Statements","pathname":"/defining-functions-working-with-functions/conditionals/case-of-statements","siteSpaceId":"sitesp_62nLF","description":"","breadcrumbs":[{"label":"Defining Functions / Working with Functions"},{"label":"Conditionals"}]},{"id":"-MWs7rgpfqmXOnP3qfdP","title":"Pattern Matching","pathname":"/defining-functions-working-with-functions/pattern-matching","siteSpaceId":"sitesp_62nLF","description":"","breadcrumbs":[{"label":"Defining Functions / Working with Functions"}]},{"id":"-MWs8RfWKGegeUcWzH1P","title":"Tuple Patterns","pathname":"/defining-functions-working-with-functions/pattern-matching/tuple-patterns","siteSpaceId":"sitesp_62nLF","description":"","breadcrumbs":[{"label":"Defining Functions / Working with Functions"},{"label":"Pattern Matching"}]},{"id":"-MWsALDTMk4gnUTGWBQI","title":"List Patterns","pathname":"/defining-functions-working-with-functions/pattern-matching/list-patterns","siteSpaceId":"sitesp_62nLF","description":"","breadcrumbs":[{"label":"Defining Functions / Working with Functions"},{"label":"Pattern Matching"}]},{"id":"-MWtauAGfh1Grm7nsfEc","title":"Lambda functions","pathname":"/defining-functions-working-with-functions/lambda-functions","siteSpaceId":"sitesp_62nLF","description":"","breadcrumbs":[{"label":"Defining Functions / Working with Functions"}]},{"id":"-MWtbkbUoAuFmjaFxnFE","title":"Function Operators","pathname":"/defining-functions-working-with-functions/function-operators","siteSpaceId":"sitesp_62nLF","description":"","breadcrumbs":[{"label":"Defining Functions / Working with Functions"}]},{"id":"-MWtdrMfjxPSv1x68ucx","title":"List Comprehensions","pathname":"/list-comprehensions/list-comprehensions","siteSpaceId":"sitesp_62nLF","description":"","breadcrumbs":[{"label":"List Comprehensions"}]},{"id":"-MWtgTJ9LdMk6o6EqPI2","title":"Introduction","pathname":"/higher-order-functions/introduction","siteSpaceId":"sitesp_62nLF","description":"","breadcrumbs":[{"label":"Higher-order Functions"}]},{"id":"-MWthDYJ9aPYbQ9FFLSm","title":"The map Function","pathname":"/higher-order-functions/the-map-function","siteSpaceId":"sitesp_62nLF","description":"","breadcrumbs":[{"label":"Higher-order Functions"}]},{"id":"-MWti_HJVATBmXh8kpzL","title":"The filter Function","pathname":"/higher-order-functions/the-filter-function","siteSpaceId":"sitesp_62nLF","description":"","breadcrumbs":[{"label":"Higher-order Functions"}]},{"id":"-MWtzPQEx5tGFW9k2-un","title":"Introduction","pathname":"/recursion/introduction","siteSpaceId":"sitesp_62nLF","description":"","breadcrumbs":[{"label":"Recursion"}]},{"id":"-MWu1WIIUcBhvpFT08el","title":"4 Steps to Defining Recursive Functions","pathname":"/recursion/4-steps-to-defining-recursive-functions","siteSpaceId":"sitesp_62nLF","description":"","breadcrumbs":[{"label":"Recursion"}]},{"id":"-MWu2To8_LuK1Quo1xBa","title":"Recursion Practice","pathname":"/recursion/recursion-practice","siteSpaceId":"sitesp_62nLF","description":"","breadcrumbs":[{"label":"Recursion"}]},{"id":"-MWu5kXewdepkitKvJ55","title":"Folds","pathname":"/recursion/folds","siteSpaceId":"sitesp_62nLF","description":"","breadcrumbs":[{"label":"Recursion"}]},{"id":"-MWu7Y7uP7Yt0hn1Sr4j","title":"Fold Right (foldr)","pathname":"/recursion/folds/fold-right-foldr","siteSpaceId":"sitesp_62nLF","description":"","breadcrumbs":[{"label":"Recursion"},{"label":"Folds"}]},{"id":"-MWu8YbjdwpyTsWfxlZl","title":"Fold Left (foldl)","pathname":"/recursion/folds/fold-left-foldl","siteSpaceId":"sitesp_62nLF","description":"","breadcrumbs":[{"label":"Recursion"},{"label":"Folds"}]},{"id":"-MWuAz0HiYsrDB_r_405","title":"Declaring Types","pathname":"/cutom-types/declaring-types","siteSpaceId":"sitesp_62nLF","description":"","breadcrumbs":[{"label":"Cutom Types"}]},{"id":"-MWuDlN-xNsDvB0emF3T","title":"Type Synonyms","pathname":"/cutom-types/declaring-types/type-synonyms","siteSpaceId":"sitesp_62nLF","description":"","breadcrumbs":[{"label":"Cutom Types"},{"label":"Declaring Types"}]},{"id":"-MWuE7bLyve_h131lnYI","title":"Data Declarations","pathname":"/cutom-types/declaring-types/data-declarations","siteSpaceId":"sitesp_62nLF","description":"","breadcrumbs":[{"label":"Cutom Types"},{"label":"Declaring Types"}]},{"id":"-MWuGX9oLcym5ZvGyKUX","title":"Newtype declarations","pathname":"/cutom-types/declaring-types/newtype-declarations","siteSpaceId":"sitesp_62nLF","description":"","breadcrumbs":[{"label":"Cutom Types"},{"label":"Declaring Types"}]},{"id":"-MWuHA425AYMir3pI0rZ","title":"Introduction","pathname":"/type-classes/introduction","siteSpaceId":"sitesp_62nLF","description":"","breadcrumbs":[{"label":"Type Classes"}]},{"id":"-MWuHg2sz0rAezkDTm3C","title":"Basic Classes","pathname":"/type-classes/basic-classes","siteSpaceId":"sitesp_62nLF","description":"","breadcrumbs":[{"label":"Type Classes"}]},{"id":"-MWuHlatNnUWDdCxG6qw","title":"Eq – Equality Types","pathname":"/type-classes/basic-classes/eq-equality-types","siteSpaceId":"sitesp_62nLF","description":"","breadcrumbs":[{"label":"Type Classes"},{"label":"Basic Classes"}]},{"id":"-MWuIZrE0tdr6SYMCaHS","title":"Ord – ordered types","pathname":"/type-classes/basic-classes/ord-ordered-types","siteSpaceId":"sitesp_62nLF","description":"","breadcrumbs":[{"label":"Type Classes"},{"label":"Basic Classes"}]},{"id":"-MWuJBFRiCUfuGcW7Rve","title":"Show – Showable Types","pathname":"/type-classes/basic-classes/show-showable-types","siteSpaceId":"sitesp_62nLF","description":"","breadcrumbs":[{"label":"Type Classes"},{"label":"Basic Classes"}]},{"id":"-MWuJsc2jNKJlBDlAIgl","title":"Read – readable types","pathname":"/type-classes/basic-classes/read-readable-types","siteSpaceId":"sitesp_62nLF","description":"","breadcrumbs":[{"label":"Type Classes"},{"label":"Basic Classes"}]},{"id":"-MWuKB4-8WXf_RNXvHvb","title":"Num – Numeric Types","pathname":"/type-classes/basic-classes/num-numeric-types","siteSpaceId":"sitesp_62nLF","description":"","breadcrumbs":[{"label":"Type Classes"},{"label":"Basic Classes"}]},{"id":"-MWuKXBhw20Mx6zBhwri","title":"Integral – Integral Types","pathname":"/type-classes/basic-classes/integral-integral-types","siteSpaceId":"sitesp_62nLF","description":"","breadcrumbs":[{"label":"Type Classes"},{"label":"Basic Classes"}]},{"id":"-MWuKkSyrzRX6U2QDt7p","title":"Fractional – Fractional Types","pathname":"/type-classes/basic-classes/fractional-fractional-types","siteSpaceId":"sitesp_62nLF","description":"","breadcrumbs":[{"label":"Type Classes"},{"label":"Basic Classes"}]},{"id":"-MWuKuOxHYAzFaf4xMIf","title":"Enum – Enumeration Types","pathname":"/type-classes/basic-classes/enum-enumeration-types","siteSpaceId":"sitesp_62nLF","description":"","breadcrumbs":[{"label":"Type Classes"},{"label":"Basic Classes"}]},{"id":"-MWuL80HWOFAS3FviRGg","title":"Derived Instances","pathname":"/type-classes/derived-instances","siteSpaceId":"sitesp_62nLF","description":"","breadcrumbs":[{"label":"Type Classes"}]},{"id":"-MWuLffeGQnBE7I7YV67","title":"Exercise – Making a Card Deck Type","pathname":"/type-classes/exercise-making-a-card-deck-type","siteSpaceId":"sitesp_62nLF","description":"","breadcrumbs":[{"label":"Type Classes"}]},{"id":"-MWuMaH9C9YDl1CooMwD","title":"Introduction","pathname":"/interactive-programming/introduction","siteSpaceId":"sitesp_62nLF","description":"","breadcrumbs":[{"label":"Interactive Programming"}]},{"id":"-MWuMn4_7MAsy5xGVZTr","title":"Input / Output Actions","pathname":"/interactive-programming/input-output-actions","siteSpaceId":"sitesp_62nLF","description":"","breadcrumbs":[{"label":"Interactive Programming"}]},{"id":"-MWuNUvEAcn0zRivIbOh","title":"Sequencing Actions","pathname":"/interactive-programming/sequencing-actions","siteSpaceId":"sitesp_62nLF","description":"","breadcrumbs":[{"label":"Interactive Programming"}]},{"id":"-MWuOB0XrWVOG6oIFk4M","title":"Exercise - Numbers Guessing Game","pathname":"/interactive-programming/exercise-numbers-guessing-game","siteSpaceId":"sitesp_62nLF","description":"","breadcrumbs":[{"label":"Interactive Programming"}]},{"id":"-MXRX48mFEDRL00V3sMe","title":"Introduction","pathname":"/functors-applicatives-and-monads/introduction","siteSpaceId":"sitesp_62nLF","description":"","breadcrumbs":[{"label":"Functors, Applicatives and Monads"}]},{"id":"-MXRWQm-QnozpEu95veI","title":"Functors","pathname":"/functors-applicatives-and-monads/functors","siteSpaceId":"sitesp_62nLF","description":"","breadcrumbs":[{"label":"Functors, Applicatives and Monads"}]},{"id":"-MXWSRF4cokcgXrynPUO","title":"Applicative Functors","pathname":"/functors-applicatives-and-monads/applicative-functors","siteSpaceId":"sitesp_62nLF","description":"","breadcrumbs":[{"label":"Functors, Applicatives and Monads"}]},{"id":"-MbRq_YJn_ZNf6cRt37T","title":"Monads","pathname":"/functors-applicatives-and-monads/monads","siteSpaceId":"sitesp_62nLF","description":"","breadcrumbs":[{"label":"Functors, Applicatives and Monads"}]},{"id":"-MfTJeLYgSQReZh_ATUE","title":"Maybe Monad","pathname":"/functors-applicatives-and-monads/monads/maybe-monad","siteSpaceId":"sitesp_62nLF","description":"","breadcrumbs":[{"label":"Functors, Applicatives and Monads"},{"label":"Monads"}]},{"id":"-MfTgw3274v3axlOk-KC","title":"List Monad","pathname":"/functors-applicatives-and-monads/monads/list-monad","siteSpaceId":"sitesp_62nLF","description":"","breadcrumbs":[{"label":"Functors, Applicatives and Monads"},{"label":"Monads"}]},{"id":"Ix32tWvofoxjg4bFl7SE","title":"Monad Laws","pathname":"/functors-applicatives-and-monads/monads/monad-laws","siteSpaceId":"sitesp_62nLF","description":"","breadcrumbs":[{"label":"Functors, Applicatives and Monads"},{"label":"Monads"}]},{"id":"-MXDycWj1M6VnHyXpqH1","title":"References / Further Reading","pathname":"/references","siteSpaceId":"sitesp_62nLF","description":""}]}