Comonad instance for (Lift f)
- 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