head 1.1; access; symbols pkgsrc-2026Q1:1.1.0.34 pkgsrc-2026Q1-base:1.1 pkgsrc-2025Q4:1.1.0.32 pkgsrc-2025Q4-base:1.1 pkgsrc-2025Q3:1.1.0.30 pkgsrc-2025Q3-base:1.1 pkgsrc-2025Q2:1.1.0.28 pkgsrc-2025Q2-base:1.1 pkgsrc-2025Q1:1.1.0.26 pkgsrc-2025Q1-base:1.1 pkgsrc-2024Q4:1.1.0.24 pkgsrc-2024Q4-base:1.1 pkgsrc-2024Q3:1.1.0.22 pkgsrc-2024Q3-base:1.1 pkgsrc-2024Q2:1.1.0.20 pkgsrc-2024Q2-base:1.1 pkgsrc-2024Q1:1.1.0.18 pkgsrc-2024Q1-base:1.1 pkgsrc-2023Q4:1.1.0.16 pkgsrc-2023Q4-base:1.1 pkgsrc-2023Q3:1.1.0.14 pkgsrc-2023Q3-base:1.1 pkgsrc-2023Q2:1.1.0.12 pkgsrc-2023Q2-base:1.1 pkgsrc-2023Q1:1.1.0.10 pkgsrc-2023Q1-base:1.1 pkgsrc-2022Q4:1.1.0.8 pkgsrc-2022Q4-base:1.1 pkgsrc-2022Q3:1.1.0.6 pkgsrc-2022Q3-base:1.1 pkgsrc-2022Q2:1.1.0.4 pkgsrc-2022Q2-base:1.1 pkgsrc-2022Q1:1.1.0.2 pkgsrc-2022Q1-base:1.1; locks; strict; comment @# @; 1.1 date 2022.02.16.08.53.40; author pho; state Exp; branches; next ; commitid nPnsUXt455AgYOsD; desc @@ 1.1 log @math/hs-free: import hs-free-5.1.7 Free monads are useful for many tree-like structures and domain specific languages. If f is a Functor then the free Monad on f is the type of trees whose nodes are labeled with the constructors of f. The word "free" is used in the sense of "unrestricted" rather than "zero-cost": Free f makes no constraining assumptions beyond those given by f and the definition of Monad. As used here it is a standard term from the mathematical theory of adjoint functors. Cofree comonads are dual to free monads. They provide convenient ways to talk about branching streams and rose-trees, and can be used to annotate syntax trees. The cofree comonad can be seen as a stream parameterized by a Functor that controls its branching factor. @ text @Free monads are useful for many tree-like structures and domain specific languages. If f is a Functor then the free Monad on f is the type of trees whose nodes are labeled with the constructors of f. The word "free" is used in the sense of "unrestricted" rather than "zero-cost": Free f makes no constraining assumptions beyond those given by f and the definition of Monad. As used here it is a standard term from the mathematical theory of adjoint functors. Cofree comonads are dual to free monads. They provide convenient ways to talk about branching streams and rose-trees, and can be used to annotate syntax trees. The cofree comonad can be seen as a stream parameterized by a Functor that controls its branching factor. @