Skip to content

Instantly share code, notes, and snippets.

@kozross
Created October 31, 2022 23:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kozross/7bcc45d37347d8c7c253713937e55771 to your computer and use it in GitHub Desktop.
Save kozross/7bcc45d37347d8c7c253713937e55771 to your computer and use it in GitHub Desktop.
module Freeder where
import Control.Applicative.Free (Ap)
data ReaderF (r :: Type) (a :: Type) where
Ask :: ReaderF r r
newtype Reader (r :: Type) (a :: Type) =
Reader (Ap (ReaderF r) a)
deriving (Functor, Applicative) via (Ap (ReaderF r))
local :: (r -> r) -> Reader r a -> Reader r a
local = ???
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment