Idea: Make interpolation dependent on user-defined instances#147
Open
Profpatsch wants to merge 2 commits intoguibou:mainfrom
Open
Idea: Make interpolation dependent on user-defined instances#147Profpatsch wants to merge 2 commits intoguibou:mainfrom
Profpatsch wants to merge 2 commits intoguibou:mainfrom
Conversation
This is a WIP idea I’ve had that’s related to I think GHC string interpolation should ultimately work. Instead of defaulting to IsString and having a fixed amount of output formats we can use, we want the user to provide three things: A) The output type `out`, which has to be `Semigroup` for concatenation B) An instance `Interpolate a out` for each type that should be able to be interpolated into `out`. C) An instance `Interpolate Text out` for interpolating raw strings This way the user can provide domain-specific instances and prevent some problematic interpolations. This is just an initial idea, not intended to be merged.
Contributor
Author
|
Now that I think about it, the output type should probably come first so that you can curry the type constructor better |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This is a WIP idea I’ve had that’s related to I think GHC string
interpolation should ultimately work.
Instead of defaulting to IsString and having a fixed amount of output
formats we can use, we want the user to provide three things:
A) The output type
out, which has to beSemigroupforconcatenation
B) An instance
Interpolate a outfor each type thatshould be able to be interpolated into
out.C) An instance
Interpolate Text outfor interpolating raw stringsThis way the user can provide domain-specific instances and prevent
some problematic interpolations.
This is just an initial idea, not intended to be merged.