Comments (3)
IMO it would also be completely reasonable to actually define and export it in barbies itself if the language extensions aren't too problematic.
Done in 2.0.5.0!
from barbies.
Good question. I think one could use a higher-kinded version of the (&)
class in the constraints
package. Something like:
{-# LANGUAGE ConstraintKinds, UndecidableSuperClasses #-}
module Foo where
import GHC.Generics
import Barbies
class (c a, d a) => (c & d) a where
instance (c a, d a) => (c & d) a where
blah :: (Eq a, Show a, Enum a) => Maybe a -> [a]
blah = maybe [] pure
convert :: Foo Maybe -> Foo []
convert = bmapC @(Eq & Show & Enum) blah
data Foo f = Foo (f Int)
deriving Generic
deriving (FunctorB, ConstraintsB)
deriving instance AllBF Show f Foo => Show (Foo f)
Would that work for you?
from barbies.
That worked great, thank you! I had tried the one from the constraints
package but it wasn't clicking with me that I needed a fully applied version. It may be worth adding this somewhere in the docs and mentioning that you can use it in the constraint-oriented parts of the barbies API. IMO it would also be completely reasonable to actually define and export it in barbies itself if the language extensions aren't too problematic.
from barbies.
Related Issues (20)
- Field name API? HOT 1
- Template Haskell helper HOT 3
- Lifting Semigroup and Monoid instance HOT 4
- Pushing applicative effects in? HOT 30
- Expand the Wear type family a bit HOT 13
- bzipWithCF HOT 4
- ConstraintsT applied to type parameter? HOT 2
- Compilation failure on GHC 9 HOT 3
- Add `Co` constructor for turning products into sums and vice versa HOT 11
- Release 2.0.3 to Hackage HOT 1
- Couple things that might be useful to have HOT 9
- Tests fail to build on ghc 9.2.1 HOT 4
- Compilation error on GHC 9.2.2 HOT 2
- `ConstraintsB` can't be derived for data family? HOT 2
- ghc bug: "Iface type variable out of scope" HOT 2
- I like to barbie so I tried to barbie while I barbied; but I got a type error. HOT 7
- Pathological compilation behavior with GHC 9.8.1 HOT 2
- Typo in docs? HOT 1
- deriving FunctorB: Cannot eta-reduce the representation type enough HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from barbies.