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 first step for #23
I introduce
Univ
newtype, so instance definitions could be done based on combinators onUniv
.Also I change indentation to use spaces.
Follow-ups would be:
universe
oruniverseF
in instance declarationsData.Universe.Helpers
Univ
implementationOpen questions:
universe
anduniverseF
don't need to be in the class anymore. Then we won't accidentally memoise when using them!Monoid
instance forUniv
(using fair interleaving?)toList
!)Univ
, maybeDistinct
orUSet
?Data.Universe.Helpers
toData.Universe.Univ
Some answers:
2
as this is huge update.universe-base
(i.e. combinator removal, or even redefining ofUniv
) won't breakuniverse-instance-*
API. AsUniv
isn't exported from instance packages, their public api isn't broken (if they continue to work). So we can depend onuniverse-instances-* >= 2 && <3
. That could be documented inuniverse
package haddock if this scheme makes sense.