Is it possible in Haskell to apply the function arrow type constructor (->) to only its right-side type (for instance: (-> a)) to get a type constructor of kind * -> *?
Haskell apply function arrow to only result type?
339 views Asked by Edward At
1
There are 1 answers
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 TYPES
- Need clarification on VHDL expressions involving std_logic_vector, unsigned and literals, unsure about compiler interpretation
- Adding a different string to a table fails
- The type of B is displayed as A when `type B = A` is used. Why is it displayed as `any` when `type B = A | A` is used instead?
- why we got same data type in two versions like "int" and "integer" in php?
- Handling NaN entries in a dataframe created from CSV
- Cannot find type definition file for 'node' in react project
- Correct way to count types in whole corpus
- Typescript: how to get possible keys from const with limited values?
- Having two Image types in React TypeScript one for upload, one for display
- MOOC.fi Java Programming course 1 - Exercise 13 "Exercises" Part 6 - Compilation error
- Is is a mistake to use type keyword after curly braces in TS when importing constants and files fro one file?
- type annotations needed, try using a fully qualified path to specify the expected types
- Need a simple example how to catch a data type error en C++
- Pyspark reads data as string but on Mongo they are double
- Extract a Maybe from a heterogeneous collection
Related Questions in TYPE-KINDS
- Extract parameters from Haskell types with `DataKinds`
- How to define a data type with an explicit kind quantification?
- Scala 3. Kind polymorphism and AnyKind type - any code example?
- How to fix "T does not conform to bound <: AnyKind"?
- Unhelpful Kind equality error at the start of file
- Transitive 'Subset` class for type-level-sets
- In which way do kinds associate in haskell?
- How to write accesors for kind Variants in Nim
- An argument that accepts any kind of Types (like: boolean, string, float.. etc)
- What is a "System FC2 grammar for Kinds"?
- How do I access the `Constraint` kind properly?
- iand with different kind parameters using new gfortran version { gcc version 9.3.0 (Ubuntu 9.3.0-17ubuntu1~20.04) }
- Using Barbies' AllBF in an instance head without UndecidableInstances
- Type family injectivity violation despite different kinds
- How can I make tuples an instance of this class in Haskell?
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?
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)
No, it is currently impossible. There are certain limitations to Haskell's type system that allow it to be useful and convenient for most cases, and this is one of those limitations. Your best alternative is to use a newtype.
Newtypes are simply tags to help the compiler know how to typecheck and perform type-directed dispatch (typeclasses) properly. Presumably you wanted to flip the type arguments to provide some typeclass instance. That just means that whenever you want to make use of that typeclass's functions, you have to decorate any specific inputs with
FuncFlip, and undecorate any specific outputs withunFuncFlip. This is slightly more verbose than desired, but it's not actually that bad, because it forces you to explicitly identify which instance of the typeclass you want to use.You can create an instance of Newtype for this, which may or may not turn out to be convenient for you.
Further reading: Are there "type-level combinatos?"