decidable 0.3.0.0 → 0.3.1.0
raw patch · 5 files changed
+40/−24 lines, 5 filesdep +singletons-basedep ~basedep ~functor-productsdep ~microlensPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependencies added: singletons-base
Dependency ranges changed: base, functor-products, microlens, singletons, vinyl
API changes (from Hackage documentation)
- Data.Type.Predicate: instance Data.Type.Predicate.Decidable (Data.Type.Predicate.TyPred (Data.Type.Functor.Product.NERec Data.Singletons.Internal.WrappedSing))
- Data.Type.Predicate: instance Data.Type.Predicate.Decidable (Data.Type.Predicate.TyPred (Data.Type.Functor.Product.PEither Data.Singletons.Internal.WrappedSing))
- Data.Type.Predicate: instance Data.Type.Predicate.Decidable (Data.Type.Predicate.TyPred (Data.Type.Functor.Product.PIdentity Data.Singletons.Internal.WrappedSing))
- Data.Type.Predicate: instance Data.Type.Predicate.Decidable (Data.Type.Predicate.TyPred (Data.Type.Functor.Product.PMaybe Data.Singletons.Internal.WrappedSing))
- Data.Type.Predicate: instance Data.Type.Predicate.Decidable (Data.Type.Predicate.TyPred (Data.Type.Functor.Product.PTup Data.Singletons.Internal.WrappedSing))
- Data.Type.Predicate: instance Data.Type.Predicate.Decidable (Data.Type.Predicate.TyPred (Data.Vinyl.Core.Rec Data.Singletons.Internal.WrappedSing))
- Data.Type.Predicate: instance Data.Type.Predicate.Decidable (Data.Type.Predicate.TyPred Data.Singletons.Internal.WrappedSing)
- Data.Type.Predicate: instance Data.Type.Predicate.Provable (Data.Type.Predicate.TyPred (Data.Type.Functor.Product.NERec Data.Singletons.Internal.WrappedSing))
- Data.Type.Predicate: instance Data.Type.Predicate.Provable (Data.Type.Predicate.TyPred (Data.Type.Functor.Product.PEither Data.Singletons.Internal.WrappedSing))
- Data.Type.Predicate: instance Data.Type.Predicate.Provable (Data.Type.Predicate.TyPred (Data.Type.Functor.Product.PIdentity Data.Singletons.Internal.WrappedSing))
- Data.Type.Predicate: instance Data.Type.Predicate.Provable (Data.Type.Predicate.TyPred (Data.Type.Functor.Product.PMaybe Data.Singletons.Internal.WrappedSing))
- Data.Type.Predicate: instance Data.Type.Predicate.Provable (Data.Type.Predicate.TyPred (Data.Type.Functor.Product.PTup Data.Singletons.Internal.WrappedSing))
- Data.Type.Predicate: instance Data.Type.Predicate.Provable (Data.Type.Predicate.TyPred (Data.Vinyl.Core.Rec Data.Singletons.Internal.WrappedSing))
- Data.Type.Predicate: instance Data.Type.Predicate.Provable (Data.Type.Predicate.TyPred Data.Singletons.Internal.WrappedSing)
- Data.Type.Predicate: instance forall j k (as :: (j, k)). (Data.Singletons.Decide.SDecide k, Data.Singletons.Internal.SingI as) => Data.Type.Predicate.Decidable (Data.Type.Predicate.In ((,) j) as)
- Data.Type.Predicate: instance forall j k (as :: Data.Either.Either j k). (Data.Singletons.Decide.SDecide k, Data.Singletons.Internal.SingI as) => Data.Type.Predicate.Decidable (Data.Type.Predicate.In (Data.Either.Either j) as)
- Data.Type.Predicate: instance forall j k1 (p :: j Data.Singletons.Internal.~> *) (f :: k1 Data.Singletons.Internal.~> j). (Data.Type.Predicate.Decidable p, Data.Singletons.Internal.SingI f) => Data.Type.Predicate.Decidable (Data.Type.Predicate.PMap f p)
- Data.Type.Predicate: instance forall j k1 (p :: j Data.Singletons.Internal.~> *) (f :: k1 Data.Singletons.Internal.~> j). (Data.Type.Predicate.Provable p, Data.Singletons.Internal.SingI f) => Data.Type.Predicate.Provable (Data.Type.Predicate.PMap f p)
- Data.Type.Predicate: instance forall k (a :: k). (Data.Singletons.Decide.SDecide k, Data.Singletons.Internal.SingI a) => Data.Type.Predicate.Decidable (Data.Type.Predicate.EqualTo a)
- Data.Type.Predicate: instance forall k (as :: Data.Functor.Identity.Identity k). (Data.Singletons.Decide.SDecide k, Data.Singletons.Internal.SingI as) => Data.Type.Predicate.Decidable (Data.Type.Predicate.In Data.Functor.Identity.Identity as)
- Data.Type.Predicate: instance forall k (as :: GHC.Base.NonEmpty k). (Data.Singletons.Decide.SDecide k, Data.Singletons.Internal.SingI as) => Data.Type.Predicate.Decidable (Data.Type.Predicate.In GHC.Base.NonEmpty as)
- Data.Type.Predicate: instance forall k (as :: GHC.Maybe.Maybe k). (Data.Singletons.Decide.SDecide k, Data.Singletons.Internal.SingI as) => Data.Type.Predicate.Decidable (Data.Type.Predicate.In GHC.Maybe.Maybe as)
- Data.Type.Predicate: instance forall k (as :: [k]). (Data.Singletons.Decide.SDecide k, Data.Singletons.Internal.SingI as) => Data.Type.Predicate.Decidable (Data.Type.Predicate.In [] as)
- Data.Type.Predicate: instance forall k (p :: k Data.Singletons.Internal.~> *). Data.Type.Predicate.Decidable p => Data.Type.Predicate.Decidable (Data.Type.Predicate.TyPred (Data.Type.Functor.Product.NERec (Data.Type.Predicate.Wit p)))
- Data.Type.Predicate: instance forall k (p :: k Data.Singletons.Internal.~> *). Data.Type.Predicate.Decidable p => Data.Type.Predicate.Decidable (Data.Type.Predicate.TyPred (Data.Type.Functor.Product.PIdentity (Data.Type.Predicate.Wit p)))
- Data.Type.Predicate: instance forall k (p :: k Data.Singletons.Internal.~> *). Data.Type.Predicate.Decidable p => Data.Type.Predicate.Decidable (Data.Type.Predicate.TyPred (Data.Type.Functor.Product.PMaybe (Data.Type.Predicate.Wit p)))
- Data.Type.Predicate: instance forall k (p :: k Data.Singletons.Internal.~> *). Data.Type.Predicate.Provable p => Data.Type.Predicate.Provable (Data.Type.Predicate.TyPred (Data.Type.Functor.Product.NERec (Data.Type.Predicate.Wit p)))
- Data.Type.Predicate: instance forall k (p :: k Data.Singletons.Internal.~> *). Data.Type.Predicate.Provable p => Data.Type.Predicate.Provable (Data.Type.Predicate.TyPred (Data.Type.Functor.Product.PIdentity (Data.Type.Predicate.Wit p)))
- Data.Type.Predicate: instance forall k (p :: k Data.Singletons.Internal.~> *). Data.Type.Predicate.Provable p => Data.Type.Predicate.Provable (Data.Type.Predicate.TyPred (Data.Type.Functor.Product.PMaybe (Data.Type.Predicate.Wit p)))
- Data.Type.Predicate: instance forall k j (p :: k Data.Singletons.Internal.~> *). Data.Type.Predicate.Decidable p => Data.Type.Predicate.Decidable (Data.Type.Predicate.TyPred (Data.Type.Functor.Product.PEither (Data.Type.Predicate.Wit p)))
- Data.Type.Predicate: instance forall k j (p :: k Data.Singletons.Internal.~> *). Data.Type.Predicate.Decidable p => Data.Type.Predicate.Decidable (Data.Type.Predicate.TyPred (Data.Type.Functor.Product.PTup (Data.Type.Predicate.Wit p)))
- Data.Type.Predicate: instance forall k j (p :: k Data.Singletons.Internal.~> *). Data.Type.Predicate.Provable p => Data.Type.Predicate.Provable (Data.Type.Predicate.TyPred (Data.Type.Functor.Product.PEither (Data.Type.Predicate.Wit p)))
- Data.Type.Predicate: instance forall k j (p :: k Data.Singletons.Internal.~> *). Data.Type.Predicate.Provable p => Data.Type.Predicate.Provable (Data.Type.Predicate.TyPred (Data.Type.Functor.Product.PTup (Data.Type.Predicate.Wit p)))
- Data.Type.Predicate: instance forall k1 (p :: k1 Data.Singletons.Internal.~> *). Data.Type.Predicate.Decidable p => Data.Type.Predicate.Decidable (Data.Type.Predicate.Not p)
- Data.Type.Predicate: instance forall u (p :: u Data.Singletons.Internal.~> *). Data.Type.Predicate.Decidable p => Data.Type.Predicate.Decidable (Data.Type.Predicate.TyPred (Data.Vinyl.Core.Rec (Data.Type.Predicate.Wit p)))
- Data.Type.Predicate: instance forall u (p :: u Data.Singletons.Internal.~> *). Data.Type.Predicate.Provable p => Data.Type.Predicate.Provable (Data.Type.Predicate.TyPred (Data.Vinyl.Core.Rec (Data.Type.Predicate.Wit p)))
- Data.Type.Predicate.Auto: instance forall j k (as :: (j, k)) (p :: k Data.Singletons.Internal.~> *). (Data.Singletons.Internal.SingI as, Data.Type.Predicate.Provable p) => Data.Type.Predicate.Auto.Auto (Data.Type.Predicate.TyPred (Data.Type.Functor.Product.PTup (Data.Type.Predicate.Wit p))) as
- Data.Type.Predicate.Auto: instance forall j k (as :: (j, k)). Data.Singletons.Internal.SingI as => Data.Type.Predicate.Auto.Auto (Data.Type.Predicate.TyPred (Data.Type.Functor.Product.PTup Data.Singletons.Internal.WrappedSing)) as
- Data.Type.Predicate.Auto: instance forall j k (as :: Data.Either.Either j k) (p :: k Data.Singletons.Internal.~> *). (Data.Singletons.Internal.SingI as, Data.Type.Predicate.Provable p) => Data.Type.Predicate.Auto.Auto (Data.Type.Predicate.TyPred (Data.Type.Functor.Product.PEither (Data.Type.Predicate.Wit p))) as
- Data.Type.Predicate.Auto: instance forall j k (as :: Data.Either.Either j k). Data.Singletons.Internal.SingI as => Data.Type.Predicate.Auto.Auto (Data.Type.Predicate.TyPred (Data.Type.Functor.Product.PEither Data.Singletons.Internal.WrappedSing)) as
- Data.Type.Predicate.Auto: instance forall j k (p :: Data.Type.Predicate.Predicate j) (f :: k Data.Singletons.Internal.~> j) (a :: k). Data.Type.Predicate.Auto.Auto p (f Data.Singletons.Internal.@@ a) => Data.Type.Predicate.Auto.Auto (Data.Type.Predicate.PMap f p) a
- Data.Type.Predicate.Auto: instance forall j k (p :: Data.Type.Predicate.Predicate j) (f :: k Data.Singletons.Internal.~> j) (a :: k). Data.Type.Predicate.Auto.AutoNot p (f Data.Singletons.Internal.@@ a) => Data.Type.Predicate.Auto.Auto (Data.Type.Predicate.Not (Data.Type.Predicate.PMap f p)) a
- Data.Type.Predicate.Auto: instance forall j v k (p :: Data.Type.Predicate.Param.ParamPred j v) (f :: k Data.Singletons.Internal.~> j) (a :: k). Data.Type.Predicate.Auto.Auto (Data.Type.Predicate.Param.Found p) (f Data.Singletons.Internal.@@ a) => Data.Type.Predicate.Auto.Auto (Data.Type.Predicate.Param.Found (Data.Type.Predicate.Param.PPMap f p)) a
- Data.Type.Predicate.Auto: instance forall j v k (p :: Data.Type.Predicate.Param.ParamPred j v) (f :: k Data.Singletons.Internal.~> j) (a :: k). Data.Type.Predicate.Auto.Auto (Data.Type.Predicate.Param.NotFound p) (f Data.Singletons.Internal.@@ a) => Data.Type.Predicate.Auto.Auto (Data.Type.Predicate.Param.NotFound (Data.Type.Predicate.Param.PPMap f p)) a
- Data.Type.Predicate.Auto: instance forall k (a :: k) (as :: [k]). Data.Singletons.Internal.SingI a => Data.Type.Predicate.Auto.Auto (Data.Type.Universe.NotNull GHC.Base.NonEmpty) (a 'GHC.Base.:| as)
- Data.Type.Predicate.Auto: instance forall k (a :: k) (as :: [k]). Data.Singletons.Internal.SingI a => Data.Type.Predicate.Auto.Auto (Data.Type.Universe.NotNull []) (a : as)
- Data.Type.Predicate.Auto: instance forall k (a :: k) j (w :: j). Data.Singletons.Internal.SingI a => Data.Type.Predicate.Auto.Auto (Data.Type.Universe.NotNull ((,) j)) '(w, a)
- Data.Type.Predicate.Auto: instance forall k (a :: k). Data.Singletons.Internal.SingI a => Data.Type.Predicate.Auto.Auto (Data.Type.Predicate.Not Data.Type.Predicate.Impossible) a
- Data.Type.Predicate.Auto: instance forall k (a :: k). Data.Singletons.Internal.SingI a => Data.Type.Predicate.Auto.Auto (Data.Type.Universe.NotNull Data.Functor.Identity.Identity) ('Data.Functor.Identity.Identity a)
- Data.Type.Predicate.Auto: instance forall k (a :: k). Data.Singletons.Internal.SingI a => Data.Type.Predicate.Auto.Auto Data.Type.Predicate.Evident a
- Data.Type.Predicate.Auto: instance forall k (a :: k). Data.Singletons.Internal.SingI a => Data.Type.Predicate.Auto.Auto Data.Type.Universe.IsJust ('GHC.Maybe.Just a)
- Data.Type.Predicate.Auto: instance forall k (as :: Data.Functor.Identity.Identity k) (p :: k Data.Singletons.Internal.~> *). (Data.Singletons.Internal.SingI as, Data.Type.Predicate.Provable p) => Data.Type.Predicate.Auto.Auto (Data.Type.Predicate.TyPred (Data.Type.Functor.Product.PIdentity (Data.Type.Predicate.Wit p))) as
- Data.Type.Predicate.Auto: instance forall k (as :: Data.Functor.Identity.Identity k). Data.Singletons.Internal.SingI as => Data.Type.Predicate.Auto.Auto (Data.Type.Predicate.TyPred (Data.Type.Functor.Product.PIdentity Data.Singletons.Internal.WrappedSing)) as
- Data.Type.Predicate.Auto: instance forall k (as :: GHC.Base.NonEmpty k) (p :: k Data.Singletons.Internal.~> *). (Data.Singletons.Internal.SingI as, Data.Type.Predicate.Provable p) => Data.Type.Predicate.Auto.Auto (Data.Type.Predicate.TyPred (Data.Type.Functor.Product.NERec (Data.Type.Predicate.Wit p))) as
- Data.Type.Predicate.Auto: instance forall k (as :: GHC.Base.NonEmpty k). Data.Singletons.Internal.SingI as => Data.Type.Predicate.Auto.Auto (Data.Type.Predicate.TyPred (Data.Type.Functor.Product.NERec Data.Singletons.Internal.WrappedSing)) as
- Data.Type.Predicate.Auto: instance forall k (as :: GHC.Maybe.Maybe k) (p :: k Data.Singletons.Internal.~> *). (Data.Singletons.Internal.SingI as, Data.Type.Predicate.Provable p) => Data.Type.Predicate.Auto.Auto (Data.Type.Predicate.TyPred (Data.Type.Functor.Product.PMaybe (Data.Type.Predicate.Wit p))) as
- Data.Type.Predicate.Auto: instance forall k (as :: GHC.Maybe.Maybe k). Data.Singletons.Internal.SingI as => Data.Type.Predicate.Auto.Auto (Data.Type.Predicate.TyPred (Data.Type.Functor.Product.PMaybe Data.Singletons.Internal.WrappedSing)) as
- Data.Type.Predicate.Auto: instance forall k (f :: * -> *) (as :: f k) (p :: Data.Type.Predicate.Predicate k). (Data.Singletons.Internal.SingI as, Data.Type.Predicate.Auto.AutoAll f (Data.Type.Predicate.Not p) as) => Data.Type.Predicate.Auto.Auto (Data.Type.Predicate.Not (Data.Type.Universe.Any f p)) as
- Data.Type.Predicate.Auto: instance forall k (p :: k Data.Singletons.Internal.~> *) (a :: k). (Data.Type.Predicate.Provable p, Data.Singletons.Internal.SingI a) => Data.Type.Predicate.Auto.Auto (Data.Type.Predicate.Auto.AutoProvable p) a
- Data.Type.Predicate.Auto: instance forall k j (a :: k). Data.Singletons.Internal.SingI a => Data.Type.Predicate.Auto.Auto Data.Type.Universe.IsRight ('Data.Either.Right a)
- Data.Type.Predicate.Auto: instance forall k v (f :: * -> *) (as :: f k) (p :: Data.Type.Predicate.Param.ParamPred k v). (Data.Singletons.Internal.SingI as, Data.Type.Predicate.Auto.AutoAll f (Data.Type.Predicate.Not (Data.Type.Predicate.Param.Found p)) as) => Data.Type.Predicate.Auto.Auto (Data.Type.Predicate.Not (Data.Type.Predicate.Param.Found (Data.Type.Predicate.Param.AnyMatch f p))) as
- Data.Type.Predicate.Auto: instance forall u (as :: [u]) (p :: u Data.Singletons.Internal.~> *). (Data.Singletons.Internal.SingI as, Data.Type.Predicate.Provable p) => Data.Type.Predicate.Auto.Auto (Data.Type.Predicate.TyPred (Data.Vinyl.Core.Rec (Data.Type.Predicate.Wit p))) as
- Data.Type.Predicate.Auto: instance forall u (as :: [u]). Data.Singletons.Internal.SingI as => Data.Type.Predicate.Auto.Auto (Data.Type.Predicate.TyPred (Data.Vinyl.Core.Rec Data.Singletons.Internal.WrappedSing)) as
- Data.Type.Predicate.Logic: instance forall k1 (p :: k1 Data.Singletons.Internal.~> *) (q :: k1 Data.Singletons.Internal.~> *). (Data.Type.Predicate.Decidable p, Data.Type.Predicate.Decidable q) => Data.Type.Predicate.Decidable (p Data.Type.Predicate.Logic.&&& q)
- Data.Type.Predicate.Logic: instance forall k1 (p :: k1 Data.Singletons.Internal.~> *) (q :: k1 Data.Singletons.Internal.~> *). (Data.Type.Predicate.Decidable p, Data.Type.Predicate.Decidable q) => Data.Type.Predicate.Decidable (p Data.Type.Predicate.Logic.||| q)
- Data.Type.Predicate.Logic: instance forall k1 (p :: k1 Data.Singletons.Internal.~> *) (q :: k1 Data.Singletons.Internal.~> *). (Data.Type.Predicate.Provable p, Data.Type.Predicate.Provable q) => Data.Type.Predicate.Provable (p Data.Type.Predicate.Logic.&&& q)
- Data.Type.Predicate.Param: instance forall j v k (p :: Data.Type.Predicate.Param.ParamPred j v) (f :: k Data.Singletons.Internal.~> j). (Data.Type.Predicate.Decidable (Data.Type.Predicate.Param.Found p), Data.Singletons.Internal.SingI f) => Data.Type.Predicate.Decidable (Data.Type.Predicate.Param.Found (Data.Type.Predicate.Param.PPMap f p))
- Data.Type.Predicate.Param: instance forall j v k (p :: Data.Type.Predicate.Param.ParamPred j v) (f :: k Data.Singletons.Internal.~> j). (Data.Type.Predicate.Provable (Data.Type.Predicate.Param.Found p), Data.Singletons.Internal.SingI f) => Data.Type.Predicate.Provable (Data.Type.Predicate.Param.Found (Data.Type.Predicate.Param.PPMap f p))
- Data.Type.Universe: instance forall k (f :: * -> *) (p :: k Data.Singletons.Internal.~> *). (Data.Type.Universe.Universe f, Data.Type.Predicate.Decidable p) => Data.Type.Predicate.Decidable (Data.Type.Universe.All f p)
- Data.Type.Universe: instance forall k (f :: * -> *) (p :: k Data.Singletons.Internal.~> *). (Data.Type.Universe.Universe f, Data.Type.Predicate.Decidable p) => Data.Type.Predicate.Decidable (Data.Type.Universe.Any f p)
- Data.Type.Universe: instance forall k (f :: * -> *) (p :: k Data.Singletons.Internal.~> *). (Data.Type.Universe.Universe f, Data.Type.Predicate.Provable p) => Data.Type.Predicate.Decidable (Data.Type.Universe.NotNull f Data.Type.Predicate.Logic.==> Data.Type.Universe.Any f p)
- Data.Type.Universe: instance forall k (f :: * -> *) (p :: k Data.Singletons.Internal.~> *). (Data.Type.Universe.Universe f, Data.Type.Predicate.Provable p) => Data.Type.Predicate.Provable (Data.Type.Universe.All f p)
- Data.Type.Universe: instance forall k (p :: k Data.Singletons.Internal.~> *) (f :: * -> *). Data.Type.Predicate.Provable p => Data.Type.Predicate.Provable (Data.Type.Universe.NotNull f Data.Type.Predicate.Logic.==> Data.Type.Universe.Any f p)
- Data.Type.Universe.Subset: instance forall k (f :: * -> *) (p :: k Data.Singletons.Internal.~> *). (Data.Type.Universe.Universe f, Data.Type.Predicate.Decidable p) => Data.Type.Predicate.Decidable (Data.Type.Universe.Subset.Subset f p)
- Data.Type.Universe.Subset: instance forall k (f :: * -> *) (p :: k Data.Singletons.Internal.~> *). (Data.Type.Universe.Universe f, Data.Type.Predicate.Decidable p) => Data.Type.Predicate.Provable (Data.Type.Universe.Subset.Subset f p)
+ Data.Type.Predicate: instance Data.Type.Predicate.Decidable (Data.Type.Predicate.TyPred (Data.Type.Functor.Product.NERec Data.Singletons.WrappedSing))
+ Data.Type.Predicate: instance Data.Type.Predicate.Decidable (Data.Type.Predicate.TyPred (Data.Type.Functor.Product.PEither Data.Singletons.WrappedSing))
+ Data.Type.Predicate: instance Data.Type.Predicate.Decidable (Data.Type.Predicate.TyPred (Data.Type.Functor.Product.PIdentity Data.Singletons.WrappedSing))
+ Data.Type.Predicate: instance Data.Type.Predicate.Decidable (Data.Type.Predicate.TyPred (Data.Type.Functor.Product.PMaybe Data.Singletons.WrappedSing))
+ Data.Type.Predicate: instance Data.Type.Predicate.Decidable (Data.Type.Predicate.TyPred (Data.Type.Functor.Product.PTup Data.Singletons.WrappedSing))
+ Data.Type.Predicate: instance Data.Type.Predicate.Decidable (Data.Type.Predicate.TyPred (Data.Vinyl.Core.Rec Data.Singletons.WrappedSing))
+ Data.Type.Predicate: instance Data.Type.Predicate.Decidable (Data.Type.Predicate.TyPred Data.Singletons.WrappedSing)
+ Data.Type.Predicate: instance Data.Type.Predicate.Provable (Data.Type.Predicate.TyPred (Data.Type.Functor.Product.NERec Data.Singletons.WrappedSing))
+ Data.Type.Predicate: instance Data.Type.Predicate.Provable (Data.Type.Predicate.TyPred (Data.Type.Functor.Product.PEither Data.Singletons.WrappedSing))
+ Data.Type.Predicate: instance Data.Type.Predicate.Provable (Data.Type.Predicate.TyPred (Data.Type.Functor.Product.PIdentity Data.Singletons.WrappedSing))
+ Data.Type.Predicate: instance Data.Type.Predicate.Provable (Data.Type.Predicate.TyPred (Data.Type.Functor.Product.PMaybe Data.Singletons.WrappedSing))
+ Data.Type.Predicate: instance Data.Type.Predicate.Provable (Data.Type.Predicate.TyPred (Data.Type.Functor.Product.PTup Data.Singletons.WrappedSing))
+ Data.Type.Predicate: instance Data.Type.Predicate.Provable (Data.Type.Predicate.TyPred (Data.Vinyl.Core.Rec Data.Singletons.WrappedSing))
+ Data.Type.Predicate: instance Data.Type.Predicate.Provable (Data.Type.Predicate.TyPred Data.Singletons.WrappedSing)
+ Data.Type.Predicate: instance forall j k1 (p :: j Data.Singletons.~> *) (f :: k1 Data.Singletons.~> j). (Data.Type.Predicate.Decidable p, Data.Singletons.SingI f) => Data.Type.Predicate.Decidable (Data.Type.Predicate.PMap f p)
+ Data.Type.Predicate: instance forall j k1 (p :: j Data.Singletons.~> *) (f :: k1 Data.Singletons.~> j). (Data.Type.Predicate.Provable p, Data.Singletons.SingI f) => Data.Type.Predicate.Provable (Data.Type.Predicate.PMap f p)
+ Data.Type.Predicate: instance forall k (a :: k). (Data.Singletons.Decide.SDecide k, Data.Singletons.SingI a) => Data.Type.Predicate.Decidable (Data.Type.Predicate.EqualTo a)
+ Data.Type.Predicate: instance forall k (as :: Data.Functor.Identity.Identity k). (Data.Singletons.Decide.SDecide k, Data.Singletons.SingI as) => Data.Type.Predicate.Decidable (Data.Type.Predicate.In Data.Functor.Identity.Identity as)
+ Data.Type.Predicate: instance forall k (as :: GHC.Base.NonEmpty k). (Data.Singletons.Decide.SDecide k, Data.Singletons.SingI as) => Data.Type.Predicate.Decidable (Data.Type.Predicate.In GHC.Base.NonEmpty as)
+ Data.Type.Predicate: instance forall k (as :: GHC.Maybe.Maybe k). (Data.Singletons.Decide.SDecide k, Data.Singletons.SingI as) => Data.Type.Predicate.Decidable (Data.Type.Predicate.In GHC.Maybe.Maybe as)
+ Data.Type.Predicate: instance forall k (as :: [k]). (Data.Singletons.Decide.SDecide k, Data.Singletons.SingI as) => Data.Type.Predicate.Decidable (Data.Type.Predicate.In [] as)
+ Data.Type.Predicate: instance forall k (p :: k Data.Singletons.~> *). Data.Type.Predicate.Decidable p => Data.Type.Predicate.Decidable (Data.Type.Predicate.TyPred (Data.Type.Functor.Product.NERec (Data.Type.Predicate.Wit p)))
+ Data.Type.Predicate: instance forall k (p :: k Data.Singletons.~> *). Data.Type.Predicate.Decidable p => Data.Type.Predicate.Decidable (Data.Type.Predicate.TyPred (Data.Type.Functor.Product.PIdentity (Data.Type.Predicate.Wit p)))
+ Data.Type.Predicate: instance forall k (p :: k Data.Singletons.~> *). Data.Type.Predicate.Decidable p => Data.Type.Predicate.Decidable (Data.Type.Predicate.TyPred (Data.Type.Functor.Product.PMaybe (Data.Type.Predicate.Wit p)))
+ Data.Type.Predicate: instance forall k (p :: k Data.Singletons.~> *). Data.Type.Predicate.Provable p => Data.Type.Predicate.Provable (Data.Type.Predicate.TyPred (Data.Type.Functor.Product.NERec (Data.Type.Predicate.Wit p)))
+ Data.Type.Predicate: instance forall k (p :: k Data.Singletons.~> *). Data.Type.Predicate.Provable p => Data.Type.Predicate.Provable (Data.Type.Predicate.TyPred (Data.Type.Functor.Product.PIdentity (Data.Type.Predicate.Wit p)))
+ Data.Type.Predicate: instance forall k (p :: k Data.Singletons.~> *). Data.Type.Predicate.Provable p => Data.Type.Predicate.Provable (Data.Type.Predicate.TyPred (Data.Type.Functor.Product.PMaybe (Data.Type.Predicate.Wit p)))
+ Data.Type.Predicate: instance forall k j (as :: (j, k)). (Data.Singletons.Decide.SDecide k, Data.Singletons.SingI as) => Data.Type.Predicate.Decidable (Data.Type.Predicate.In ((,) j) as)
+ Data.Type.Predicate: instance forall k j (as :: Data.Either.Either j k). (Data.Singletons.Decide.SDecide k, Data.Singletons.SingI as) => Data.Type.Predicate.Decidable (Data.Type.Predicate.In (Data.Either.Either j) as)
+ Data.Type.Predicate: instance forall k j (p :: k Data.Singletons.~> *). Data.Type.Predicate.Decidable p => Data.Type.Predicate.Decidable (Data.Type.Predicate.TyPred (Data.Type.Functor.Product.PEither (Data.Type.Predicate.Wit p)))
+ Data.Type.Predicate: instance forall k j (p :: k Data.Singletons.~> *). Data.Type.Predicate.Decidable p => Data.Type.Predicate.Decidable (Data.Type.Predicate.TyPred (Data.Type.Functor.Product.PTup (Data.Type.Predicate.Wit p)))
+ Data.Type.Predicate: instance forall k j (p :: k Data.Singletons.~> *). Data.Type.Predicate.Provable p => Data.Type.Predicate.Provable (Data.Type.Predicate.TyPred (Data.Type.Functor.Product.PEither (Data.Type.Predicate.Wit p)))
+ Data.Type.Predicate: instance forall k j (p :: k Data.Singletons.~> *). Data.Type.Predicate.Provable p => Data.Type.Predicate.Provable (Data.Type.Predicate.TyPred (Data.Type.Functor.Product.PTup (Data.Type.Predicate.Wit p)))
+ Data.Type.Predicate: instance forall k1 (p :: k1 Data.Singletons.~> *). Data.Type.Predicate.Decidable p => Data.Type.Predicate.Decidable (Data.Type.Predicate.Not p)
+ Data.Type.Predicate: instance forall u (p :: u Data.Singletons.~> *). Data.Type.Predicate.Decidable p => Data.Type.Predicate.Decidable (Data.Type.Predicate.TyPred (Data.Vinyl.Core.Rec (Data.Type.Predicate.Wit p)))
+ Data.Type.Predicate: instance forall u (p :: u Data.Singletons.~> *). Data.Type.Predicate.Provable p => Data.Type.Predicate.Provable (Data.Type.Predicate.TyPred (Data.Vinyl.Core.Rec (Data.Type.Predicate.Wit p)))
+ Data.Type.Predicate.Auto: instance forall j k (as :: (j, k)) (p :: k Data.Singletons.~> *). (Data.Singletons.SingI as, Data.Type.Predicate.Provable p) => Data.Type.Predicate.Auto.Auto (Data.Type.Predicate.TyPred (Data.Type.Functor.Product.PTup (Data.Type.Predicate.Wit p))) as
+ Data.Type.Predicate.Auto: instance forall j k (as :: (j, k)). Data.Singletons.SingI as => Data.Type.Predicate.Auto.Auto (Data.Type.Predicate.TyPred (Data.Type.Functor.Product.PTup Data.Singletons.WrappedSing)) as
+ Data.Type.Predicate.Auto: instance forall j k (as :: Data.Either.Either j k) (p :: k Data.Singletons.~> *). (Data.Singletons.SingI as, Data.Type.Predicate.Provable p) => Data.Type.Predicate.Auto.Auto (Data.Type.Predicate.TyPred (Data.Type.Functor.Product.PEither (Data.Type.Predicate.Wit p))) as
+ Data.Type.Predicate.Auto: instance forall j k (as :: Data.Either.Either j k). Data.Singletons.SingI as => Data.Type.Predicate.Auto.Auto (Data.Type.Predicate.TyPred (Data.Type.Functor.Product.PEither Data.Singletons.WrappedSing)) as
+ Data.Type.Predicate.Auto: instance forall j k (p :: Data.Type.Predicate.Predicate j) (f :: k Data.Singletons.~> j) (a :: k). Data.Type.Predicate.Auto.Auto p (f Data.Singletons.@@ a) => Data.Type.Predicate.Auto.Auto (Data.Type.Predicate.PMap f p) a
+ Data.Type.Predicate.Auto: instance forall j k (p :: Data.Type.Predicate.Predicate j) (f :: k Data.Singletons.~> j) (a :: k). Data.Type.Predicate.Auto.AutoNot p (f Data.Singletons.@@ a) => Data.Type.Predicate.Auto.Auto (Data.Type.Predicate.Not (Data.Type.Predicate.PMap f p)) a
+ Data.Type.Predicate.Auto: instance forall j v k (p :: Data.Type.Predicate.Param.ParamPred j v) (f :: k Data.Singletons.~> j) (a :: k). Data.Type.Predicate.Auto.Auto (Data.Type.Predicate.Param.Found p) (f Data.Singletons.@@ a) => Data.Type.Predicate.Auto.Auto (Data.Type.Predicate.Param.Found (Data.Type.Predicate.Param.PPMap f p)) a
+ Data.Type.Predicate.Auto: instance forall j v k (p :: Data.Type.Predicate.Param.ParamPred j v) (f :: k Data.Singletons.~> j) (a :: k). Data.Type.Predicate.Auto.Auto (Data.Type.Predicate.Param.NotFound p) (f Data.Singletons.@@ a) => Data.Type.Predicate.Auto.Auto (Data.Type.Predicate.Param.NotFound (Data.Type.Predicate.Param.PPMap f p)) a
+ Data.Type.Predicate.Auto: instance forall k (a :: k) (as :: [k]). Data.Singletons.SingI a => Data.Type.Predicate.Auto.Auto (Data.Type.Universe.NotNull GHC.Base.NonEmpty) (a 'GHC.Base.:| as)
+ Data.Type.Predicate.Auto: instance forall k (a :: k) (as :: [k]). Data.Singletons.SingI a => Data.Type.Predicate.Auto.Auto (Data.Type.Universe.NotNull []) (a : as)
+ Data.Type.Predicate.Auto: instance forall k (a :: k) j (w :: j). Data.Singletons.SingI a => Data.Type.Predicate.Auto.Auto (Data.Type.Universe.NotNull ((,) j)) '(w, a)
+ Data.Type.Predicate.Auto: instance forall k (a :: k). Data.Singletons.SingI a => Data.Type.Predicate.Auto.Auto (Data.Type.Predicate.Not Data.Type.Predicate.Impossible) a
+ Data.Type.Predicate.Auto: instance forall k (a :: k). Data.Singletons.SingI a => Data.Type.Predicate.Auto.Auto (Data.Type.Universe.NotNull Data.Functor.Identity.Identity) ('Data.Functor.Identity.Identity a)
+ Data.Type.Predicate.Auto: instance forall k (a :: k). Data.Singletons.SingI a => Data.Type.Predicate.Auto.Auto Data.Type.Predicate.Evident a
+ Data.Type.Predicate.Auto: instance forall k (a :: k). Data.Singletons.SingI a => Data.Type.Predicate.Auto.Auto Data.Type.Universe.IsJust ('GHC.Maybe.Just a)
+ Data.Type.Predicate.Auto: instance forall k (as :: Data.Functor.Identity.Identity k) (p :: k Data.Singletons.~> *). (Data.Singletons.SingI as, Data.Type.Predicate.Provable p) => Data.Type.Predicate.Auto.Auto (Data.Type.Predicate.TyPred (Data.Type.Functor.Product.PIdentity (Data.Type.Predicate.Wit p))) as
+ Data.Type.Predicate.Auto: instance forall k (as :: Data.Functor.Identity.Identity k). Data.Singletons.SingI as => Data.Type.Predicate.Auto.Auto (Data.Type.Predicate.TyPred (Data.Type.Functor.Product.PIdentity Data.Singletons.WrappedSing)) as
+ Data.Type.Predicate.Auto: instance forall k (as :: GHC.Base.NonEmpty k) (p :: k Data.Singletons.~> *). (Data.Singletons.SingI as, Data.Type.Predicate.Provable p) => Data.Type.Predicate.Auto.Auto (Data.Type.Predicate.TyPred (Data.Type.Functor.Product.NERec (Data.Type.Predicate.Wit p))) as
+ Data.Type.Predicate.Auto: instance forall k (as :: GHC.Base.NonEmpty k). Data.Singletons.SingI as => Data.Type.Predicate.Auto.Auto (Data.Type.Predicate.TyPred (Data.Type.Functor.Product.NERec Data.Singletons.WrappedSing)) as
+ Data.Type.Predicate.Auto: instance forall k (as :: GHC.Maybe.Maybe k) (p :: k Data.Singletons.~> *). (Data.Singletons.SingI as, Data.Type.Predicate.Provable p) => Data.Type.Predicate.Auto.Auto (Data.Type.Predicate.TyPred (Data.Type.Functor.Product.PMaybe (Data.Type.Predicate.Wit p))) as
+ Data.Type.Predicate.Auto: instance forall k (as :: GHC.Maybe.Maybe k). Data.Singletons.SingI as => Data.Type.Predicate.Auto.Auto (Data.Type.Predicate.TyPred (Data.Type.Functor.Product.PMaybe Data.Singletons.WrappedSing)) as
+ Data.Type.Predicate.Auto: instance forall k (f :: * -> *) (as :: f k) (p :: Data.Type.Predicate.Predicate k). (Data.Singletons.SingI as, Data.Type.Predicate.Auto.AutoAll f (Data.Type.Predicate.Not p) as) => Data.Type.Predicate.Auto.Auto (Data.Type.Predicate.Not (Data.Type.Universe.Any f p)) as
+ Data.Type.Predicate.Auto: instance forall k (p :: k Data.Singletons.~> *) (a :: k). (Data.Type.Predicate.Provable p, Data.Singletons.SingI a) => Data.Type.Predicate.Auto.Auto (Data.Type.Predicate.Auto.AutoProvable p) a
+ Data.Type.Predicate.Auto: instance forall k j (a :: k). Data.Singletons.SingI a => Data.Type.Predicate.Auto.Auto Data.Type.Universe.IsRight ('Data.Either.Right a)
+ Data.Type.Predicate.Auto: instance forall k v (f :: * -> *) (as :: f k) (p :: Data.Type.Predicate.Param.ParamPred k v). (Data.Singletons.SingI as, Data.Type.Predicate.Auto.AutoAll f (Data.Type.Predicate.Not (Data.Type.Predicate.Param.Found p)) as) => Data.Type.Predicate.Auto.Auto (Data.Type.Predicate.Not (Data.Type.Predicate.Param.Found (Data.Type.Predicate.Param.AnyMatch f p))) as
+ Data.Type.Predicate.Auto: instance forall u (as :: [u]) (p :: u Data.Singletons.~> *). (Data.Singletons.SingI as, Data.Type.Predicate.Provable p) => Data.Type.Predicate.Auto.Auto (Data.Type.Predicate.TyPred (Data.Vinyl.Core.Rec (Data.Type.Predicate.Wit p))) as
+ Data.Type.Predicate.Auto: instance forall u (as :: [u]). Data.Singletons.SingI as => Data.Type.Predicate.Auto.Auto (Data.Type.Predicate.TyPred (Data.Vinyl.Core.Rec Data.Singletons.WrappedSing)) as
+ Data.Type.Predicate.Logic: instance forall k1 (p :: k1 Data.Singletons.~> *) (q :: k1 Data.Singletons.~> *). (Data.Type.Predicate.Decidable p, Data.Type.Predicate.Decidable q) => Data.Type.Predicate.Decidable (p Data.Type.Predicate.Logic.&&& q)
+ Data.Type.Predicate.Logic: instance forall k1 (p :: k1 Data.Singletons.~> *) (q :: k1 Data.Singletons.~> *). (Data.Type.Predicate.Decidable p, Data.Type.Predicate.Decidable q) => Data.Type.Predicate.Decidable (p Data.Type.Predicate.Logic.||| q)
+ Data.Type.Predicate.Logic: instance forall k1 (p :: k1 Data.Singletons.~> *) (q :: k1 Data.Singletons.~> *). (Data.Type.Predicate.Provable p, Data.Type.Predicate.Provable q) => Data.Type.Predicate.Provable (p Data.Type.Predicate.Logic.&&& q)
+ Data.Type.Predicate.Param: instance forall j v (p :: Data.Type.Predicate.Param.ParamPred j v) k (f :: k Data.Singletons.~> j). (Data.Type.Predicate.Decidable (Data.Type.Predicate.Param.Found p), Data.Singletons.SingI f) => Data.Type.Predicate.Decidable (Data.Type.Predicate.Param.Found (Data.Type.Predicate.Param.PPMap f p))
+ Data.Type.Predicate.Param: instance forall j v (p :: Data.Type.Predicate.Param.ParamPred j v) k (f :: k Data.Singletons.~> j). (Data.Type.Predicate.Provable (Data.Type.Predicate.Param.Found p), Data.Singletons.SingI f) => Data.Type.Predicate.Provable (Data.Type.Predicate.Param.Found (Data.Type.Predicate.Param.PPMap f p))
+ Data.Type.Universe: instance forall k (f :: * -> *) (p :: k Data.Singletons.~> *). (Data.Type.Universe.Universe f, Data.Type.Predicate.Decidable p) => Data.Type.Predicate.Decidable (Data.Type.Universe.All f p)
+ Data.Type.Universe: instance forall k (f :: * -> *) (p :: k Data.Singletons.~> *). (Data.Type.Universe.Universe f, Data.Type.Predicate.Decidable p) => Data.Type.Predicate.Decidable (Data.Type.Universe.Any f p)
+ Data.Type.Universe: instance forall k (f :: * -> *) (p :: k Data.Singletons.~> *). (Data.Type.Universe.Universe f, Data.Type.Predicate.Provable p) => Data.Type.Predicate.Decidable (Data.Type.Universe.NotNull f Data.Type.Predicate.Logic.==> Data.Type.Universe.Any f p)
+ Data.Type.Universe: instance forall k (f :: * -> *) (p :: k Data.Singletons.~> *). (Data.Type.Universe.Universe f, Data.Type.Predicate.Provable p) => Data.Type.Predicate.Provable (Data.Type.Universe.All f p)
+ Data.Type.Universe: instance forall k (p :: k Data.Singletons.~> *) (f :: * -> *). Data.Type.Predicate.Provable p => Data.Type.Predicate.Provable (Data.Type.Universe.NotNull f Data.Type.Predicate.Logic.==> Data.Type.Universe.Any f p)
+ Data.Type.Universe.Subset: instance forall k (f :: * -> *) (p :: k Data.Singletons.~> *). (Data.Type.Universe.Universe f, Data.Type.Predicate.Decidable p) => Data.Type.Predicate.Decidable (Data.Type.Universe.Subset.Subset f p)
+ Data.Type.Universe.Subset: instance forall k (f :: * -> *) (p :: k Data.Singletons.~> *). (Data.Type.Universe.Universe f, Data.Type.Predicate.Decidable p) => Data.Type.Predicate.Provable (Data.Type.Universe.Subset.Subset f p)
- Data.Type.Universe: [IId] :: forall k (b :: k). IIdentity ('Identity b) b
+ Data.Type.Universe: [IId] :: forall {k} (b :: k). IIdentity ('Identity b) b
- Data.Type.Universe: [IJust] :: forall k (b :: k). IJust ('Just b) b
+ Data.Type.Universe: [IJust] :: forall {k} (b :: k). IJust ('Just b) b
- Data.Type.Universe: [IRight] :: forall k j (b :: k). IRight ('Right b :: Either j k) b
+ Data.Type.Universe: [IRight] :: forall {k} {j} (b :: k). IRight ('Right b :: Either j k) b
- Data.Type.Universe: [IS] :: forall k (bs :: [k]) (b :: k) (b1 :: k). Index bs b -> Index (b1 : bs) b
+ Data.Type.Universe: [IS] :: forall {k} (bs :: [k]) (b :: k) (b1 :: k). Index bs b -> Index (b1 : bs) b
- Data.Type.Universe: [ISnd] :: forall j k (a1 :: j) (b :: k). ISnd '(a1, b) b
+ Data.Type.Universe: [ISnd] :: forall {j} {k} (a1 :: j) (b :: k). ISnd '(a1, b) b
- Data.Type.Universe: [IZ] :: forall k (b :: k) (as :: [k]). Index (b : as) b
+ Data.Type.Universe: [IZ] :: forall {k} (b :: k) (as :: [k]). Index (b : as) b
- Data.Type.Universe: [NEHead] :: forall k (b :: k) (as :: [k]). NEIndex (b :| as) b
+ Data.Type.Universe: [NEHead] :: forall {k} (b :: k) (as :: [k]). NEIndex (b :| as) b
- Data.Type.Universe: [NETail] :: forall k (as :: [k]) (b :: k) (b1 :: k). Index as b -> NEIndex (b1 :| as) b
+ Data.Type.Universe: [NETail] :: forall {k} (as :: [k]) (b :: k) (b1 :: k). Index as b -> NEIndex (b1 :| as) b
Files
- CHANGELOG.md +9/−0
- decidable.cabal +10/−10
- src/Data/Type/Predicate.hs +9/−5
- src/Data/Type/Predicate/Param.hs +2/−2
- src/Data/Type/Universe.hs +10/−7
CHANGELOG.md view
@@ -1,6 +1,15 @@ Changelog ========= +Version 0.3.1.0+---------------++*July 4, 2023*++<https://github.com/mstksg/functor-products/releases/tag/v0.3.1.0>++* Now requires singletons-3.0 and above, and GHC 9.2 and above+ Version 0.3.0.0 ---------------
decidable.cabal view
@@ -1,13 +1,11 @@ cabal-version: 1.12 --- This file has been generated from package.yaml by hpack version 0.31.2.+-- This file has been generated from package.yaml by hpack version 0.35.2. -- -- see: https://github.com/sol/hpack------ hash: d32fc68e2c0f9fc18f6d1c665774f308fc7e98fa1f9d71d0de5ffe287b57bae7 name: decidable-version: 0.3.0.0+version: 0.3.1.0 synopsis: Combinators for manipulating dependently-typed predicates. description: This library provides combinators and typeclasses for working and manipulating type-level predicates in Haskell, which are represented as matchable type-level@@ -22,8 +20,9 @@ copyright: (c) Justin Le 2018 license: BSD3 license-file: LICENSE-tested-with: GHC >= 8.8 build-type: Simple+tested-with:+ GHC >= 9.2 extra-source-files: README.md CHANGELOG.md@@ -47,9 +46,10 @@ src ghc-options: -Wall -Wredundant-constraints -Wcompat -Werror=incomplete-patterns build-depends:- base >=4.13 && <5- , functor-products >=0.1.1- , microlens- , singletons >=2.6- , vinyl+ base >=4.16 && <5+ , functor-products >=0.1.2 && <0.2+ , microlens <0.5+ , singletons >=3.0 && <3.1+ , singletons-base <3.2+ , vinyl <0.15 default-language: Haskell2010
src/Data/Type/Predicate.hs view
@@ -52,17 +52,21 @@ , mapRefuted ) where +import Data.Either.Singletons+import Data.Function.Singletons import Data.Functor.Identity+import Data.Functor.Identity.Singletons import Data.Kind-import Data.List.NonEmpty (NonEmpty(..))+import Data.List.NonEmpty (NonEmpty(..))+import Data.List.Singletons hiding (ElemSym1) import Data.Maybe+import Data.Maybe.Singletons import Data.Singletons import Data.Singletons.Decide-import Data.Singletons.Prelude hiding (Not, ElemSym1)-import Data.Singletons.Prelude.Identity+import Data.Tuple.Singletons import Data.Type.Functor.Product import Data.Void-import qualified Data.Singletons.Prelude.List.NonEmpty as NE+import qualified Data.List.NonEmpty.Singletons as NE -- | A type-level predicate in Haskell. We say that the predicate @P :: -- 'Predicate' k@ is true/satisfied by input @x :: k@ if there exists@@ -367,7 +371,7 @@ -- | @since 3.0.0 instance Provable (TyPred WrappedSing) where prove = WrapSing- + -- | @since 3.0.0 instance Provable p => Provable (TyPred (Rec (Wit p))) where
src/Data/Type/Predicate/Param.hs view
@@ -42,8 +42,8 @@ import Data.Kind import Data.Singletons import Data.Singletons.Decide-import Data.Singletons.Prelude.Tuple import Data.Singletons.Sigma+import Data.Tuple.Singletons import Data.Type.Functor.Product import Data.Type.Predicate import Data.Type.Predicate.Logic@@ -140,7 +140,7 @@ -- @ -- -- Applied to specific things:--- +-- -- @ -- 'IsTC' ''Just' :: 'ParamPred' (Maybe v) v -- 'Found' ('IsTC' ''Just'') :: 'Predicate' (Maybe v)
src/Data/Type/Universe.hs view
@@ -48,19 +48,22 @@ , pickElem ) where +import Data.Either.Singletons hiding (IsLeft, IsRight) import Data.Functor.Identity+import Data.Functor.Identity.Singletons import Data.Kind-import Data.List.NonEmpty (NonEmpty(..))+import Data.List.NonEmpty (NonEmpty(..))+import Data.List.Singletons hiding (Elem, ElemSym0, ElemSym1, ElemSym2, All, Any, Null)+import Data.Maybe.Singletons hiding (IsJust, IsNothing) import Data.Singletons import Data.Singletons.Decide-import Data.Singletons.Prelude hiding (Elem, ElemSym0, ElemSym1, ElemSym2, Any, All, Null, Not)-import Data.Singletons.Prelude.Identity+import Data.Tuple.Singletons import Data.Type.Functor.Product import Data.Type.Predicate import Data.Type.Predicate.Logic-import GHC.Generics ((:*:)(..))-import Prelude hiding (any, all)-import qualified Data.Singletons.Prelude.List.NonEmpty as NE+import GHC.Generics ((:*:)(..))+import Prelude hiding (any, all)+import qualified Data.List.NonEmpty.Singletons as NE -- | A @'WitAny' p as@ is a witness that, for at least one item @a@ in the -- type-level collection @as@, the predicate @p a@ is true.@@ -400,7 +403,7 @@ $ f IId x idecideAll f (SIdentity x) = mapDecision (\p -> WitAll $ \case IId -> p)- (`runWitAll` IId)+ (\y -> runWitAll y IId) $ f IId x allProd f (SIdentity x) a = PIdentity $ f x (runWitAll a IId) prodAll f (PIdentity x) = WitAll $ \case IId -> f x