
For example, if you have a stream of values, `given by Cofree (, a)`,
#12477: Allow left sectioning and tuple sectioning of types -------------------------------------+------------------------------------- Reporter: Iceland_jack | Owner: Iceland_jack Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.0.1 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by Iceland_jack): In the wild [https://www.reddit.com/r/haskell/comments/4z28nk/tear_down_cofree/d6sbmwr wild]: then you can use the free monad for `(a ->)` to extract a value at some index. At each step, you can either `return` a function to extract a value from the current position in the comonad, or `liftF` a function which tells you how to handle the next value in the stream. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/12477#comment:4 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler