Comments (3)
from generics-mrsop.
I am not at all surprised. I've had so many cases where I start using All
and then it falls short at some point. One idea I have player with is to make versions of NP
and NS
parametric on a constraint, like:
data NP (c :: k -> Constraint) (f :: k -> Type) (xs :: [k]) where
(:*) :: c x => f x -> NP c f xs -> NP c f (x ': xs)
Nil :: NP c f '[]
but then you might be pushing QuantifiedConstraints
to their limits.
from generics-mrsop.
Yeah, I start to dislike All
very much; it really hinders the usage of the library with overcompliated typeclass engineering and most of the times, it doesn't add that much safety.
This is one of the points we make on our mrsop
paper and came back to agreeing with it! :)
I like having the same NS
and NP
as sop-core
, because it allows us to port mrsop functionality back and forth easily, I think the best design really is to just go back to using our versions of EqHO
and ShowHO
with mrsop but using NS
and NP
from sop-core
; this would also drop the need for -XQuantifiedConstraints
.
I will sleep on it though; if I feel inspired and sure this is the option; I'll implement on monday and release another version of mrsop; it is slowly converging to something more stable! :)
from generics-mrsop.
Related Issues (20)
- Create pattern synonyms for `Tag` automatically
- Implement Attribute Grammars HOT 8
- TH Generates dupicate pattern synonyms if type is in AST multiple times HOT 1
- GHC 8.4.3 triggers GHC Bug during Haddock generations :( HOT 3
- Use Generic Generic Programming to avoid Template Haskell? HOT 2
- Fix is AnnFix HOT 1
- Use efficient indexed Sum from Oleg's Freer Monads paper HOT 3
- Depend on sop-core HOT 14
- Change Eq1 and Show1 names HOT 1
- Drop Monad constraint on mapNPM and friends HOT 1
- Slightly tweak Rep and Fix for pedagogical reasons HOT 5
- Can only derive one datatype per module HOT 4
- Hide examples from documentation
- Make Attribute Grammar combinators monadic HOT 1
- Bring Treefixes into mrsop. HOT 1
- GHC 8.4.3 crashes with hs-elisp parser. HOT 2
- Better Naming Framework for TH code
- Use `th-abstraction`
- Rename Holes constructors; make it standard 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 generics-mrsop.