Open phadej opened 8 years ago
@dmwit, I also commited .travis.yml
into repository, with cabal-install-1.24
it's possible to build multi-package projects using "standard tools". .travis.yml
has rough edges, new-build
isn't yet polished, but having CI would be great!
Note
Univ
is different implementation of Omega
in https://hackage.haskell.org/package/control-monad-omega-0.3.1/docs/Control-Monad-Omega.html
By making similar Applicative
instance, we can have similar definitions for Universe
and Finite
of tuples for example.
This is first step for https://github.com/dmwit/universe/issues/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.