Say I've got a Distributive instance written for some complex custom type, Foo.
Is it possible to write Foo's Representable instance using only the properties available from its Distributive instance? And, if not, then why is Distributive a superclass of Representable?
How to write a Representable instance using only Distributive properties?
353 Views Asked by dbanas At
1
There are 1 best solutions below
Related Questions in HASKELL
- Typeclass projections as inheritance
- How to generate all possible matrices given a number n in Haskell
- Is there a way to get `cabal` to detect changes to non-Haskell source files?
- How to have fixed options using Option.Applicative in haskell?
- How can I create a thread in Haskell that will restart if it gets killed due to any reason?
- Automatic Jacobian matrix in Haskell
- Haskell writing to named pipe unexpectedly fails with `openFile: does not exist (No such device or address)`
- Why does Enum require to implement toEnum and fromEnum, if that's not enough for types larger than Int?
- Non-exhaustive patterns in function compress
- How to get terms names of GADT in Template Haskell?
- Implementing eval() function with Happy parser generator
- How to count the occurences of every element in a list in Haskell fast?
- In Haskell, what does `Con Int` mean?
- Extract a Maybe from a heterogeneous collection
- Haskell, Stack, importing module shows error "Module not found"
Related Questions in TYPECLASS
- Typeclass projections as inheritance
- Why does Enum require to implement toEnum and fromEnum, if that's not enough for types larger than Int?
- Scala refined types and type class derivation (Shapeless)
- How is the Foldable instance of (,) useful?
- The `specialize` tatic in Coq does not work well with typeclasses?
- Why does Cabal, unlike GHC, not automatically enable GeneralizedNewtypeDeriving if I explicitly enabled DerivingStrategies?
- Scala avro4s, define SchemaFor for common trait?
- freezed package class return - "type 'Null' is not a subtype of type 'String' in type cast"
- How to specify a type family with multiparameter injectivity?
- Why does Data.Dynamic contain a witness instead of a typeclass constraint?
- How do you define a type class for a union of types?
- Error when implementing a typeclass instance for a function
- How to create a custom made function instance of Eq and Ord
- GHC not deriving typeclass instances based on input type
- Is there a typeclass that changes the shape of a hierarchy?
Related Questions in REPRESENTABLE
- What is the role of Haskell's evaluation strategy in Memoization via Representable
- When is Ap's Num instance lawful?
- How to represent object properties in given context?
- Set Initial View Offset for UITextView in SwiftUI
- Quick Look preview via QLpreviewcontroller in Swiftui
- How to use the singletons library to define a HasRep instance for existentially quantified types?
- How to write reverseT without using List?
- How to go from a value of a finite discrete type to a (Finite n) and back, using the type's derived Generic instance, in Haskell?
- Lenses over Comonads or Representable
- Mutate only focus of Store Comonad?
- How to write a Representable instance using only Distributive properties?
- Trailblazer Representable Change Property Name with Variable
- Rails 4: Parsing JSONAPI using representable gem
- Representable gem: trouble handling nested documents (hashes)
- Make RoR nested representable into an array
Related Questions in DISTRIBUTIVE
- How can I get from `a -> Parser b` to `Parser (a -> b)`?
- Is there any typeclass that defines the function from `a -> m b` to `m (a -> b)`?
- Is there a name for this higher-level "bi" version of distribute in Haskell?
- What is a cocartesian comonoid, and what is a cocartesian comonoidal functor?
- Why are traversals defined over Applicatives, fundamentally?
- Can ZipList be Distributive?
- Issue when using distributive conditional types combined with generic method
- How to write a Representable instance using only Distributive properties?
- Is there such thing as a bidistributive? What function do I need here?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular # Hahtags
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
The superclass relationship between
DistributiveandRepresentable...... means that if
fis aRepresentable, then it also must be aDistributive, and not the other way around. When used for subclassing,=>should be read as "is a prerequisite of", rather than "implies". (This is, in fact, opposite to how it is when=>is used for constraints in type signatures. Purescript uses<=for subclassing for this very reason.)For most other pairs of superclass and subclass, the story would end here.
DistributiveandRepresentable, however, have a special relationship, in thatDistributivefunctors are actually representable, as stated by the documentation of bothDistributive...... and
Representable:The hierarchy is set up the way it is, with
Distributiveas the superclass, becauseDistributiveis meant to have a simpler interface which is expressible in Haskell 98, unlikeRepresentable(which uses a type family) andAdjunction(which is a multi-parameter type class). From a more conceptual point of view, while the distributive laws imply that everyDistributiveis representable, they are not enough for figuring out what the representation is. Getting our hands on the representation requires specifying it, either directly (as inRepresentable) or indirectly (as inAdjunction).