ekmett / ekmett/comonad

Comonad instance for (Lift f)

Open
#40 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Haskell
Stars
79
Forks
31
PR merge metrics
No merged PRs in 30d

Description

I can make a PR later if desired, but there should be a `Comonad` instance for `Lift f`

```haskell
instance Comonad f => Comonad (Lift f) where
extract :: Lift f a -> a
extract (Pure a) = a
extract (Other fa) = extract fa

extend :: (Lift f a -> b) -> (Lift f a -> Lift f b)
extend f = \case
Pure a -> Pure $ f (Pure a)
Other fa -> Other $ extend (f . Other) fa
```

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by locating the Lift type and existing Comonad instances in the repository, then inspect how Pure and Other are represented. Add the requested instance and run the repository's test suite; done means the library compiles with the instance and its Pure and Other cases behave as described.

Written by the indexing model from the issue text.

Assessment

Tech stack
haskell
Domain
developer-experience
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.