extensible 0.4.7 → 0.4.7.1
raw patch · 7 files changed
+49/−43 lines, 7 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- Data.Extensible.Bits: instance (Data.Extensible.Bits.FromBits r a, Data.Extensible.Bits.FromBits r b, n ~ (Data.Extensible.Bits.BitWidth a GHC.TypeLits.+ Data.Extensible.Bits.BitWidth b), n GHC.TypeLits.<= Data.Extensible.Bits.BitWidth r, GHC.TypeLits.KnownNat n) => Data.Extensible.Bits.FromBits r (a, b)
- Data.Extensible.Bits: instance forall k r (h :: k -> *) (xs :: [k]). (Data.Bits.Bits r, GHC.TypeLits.KnownNat (Data.Extensible.Bits.TotalBits h xs)) => Data.Extensible.Bits.FromBits r (Data.Extensible.Bits.BitProd r h xs)
- Data.Extensible.Bits: instance forall r k (h :: k -> GHC.Types.*) (xs :: [k]). Data.Hashable.Class.Hashable r => Data.Hashable.Class.Hashable (Data.Extensible.Bits.BitProd r h xs)
- Data.Extensible.Bits: instance forall r k (h :: k -> GHC.Types.*) (xs :: [k]). Foreign.Storable.Storable r => Foreign.Storable.Storable (Data.Extensible.Bits.BitProd r h xs)
- Data.Extensible.Bits: instance forall r k (h :: k -> GHC.Types.*) (xs :: [k]). GHC.Arr.Ix r => GHC.Arr.Ix (Data.Extensible.Bits.BitProd r h xs)
- Data.Extensible.Bits: instance forall r k (h :: k -> GHC.Types.*) (xs :: [k]). GHC.Classes.Eq r => GHC.Classes.Eq (Data.Extensible.Bits.BitProd r h xs)
- Data.Extensible.Bits: instance forall r k (h :: k -> GHC.Types.*) (xs :: [k]). GHC.Classes.Ord r => GHC.Classes.Ord (Data.Extensible.Bits.BitProd r h xs)
- Data.Extensible.Bits: instance forall r k (h :: k -> GHC.Types.*) (xs :: [k]). GHC.Enum.Bounded r => GHC.Enum.Bounded (Data.Extensible.Bits.BitProd r h xs)
- Data.Extensible.Bits: instance forall r k (h :: k -> GHC.Types.*) (xs :: [k]). GHC.Enum.Enum r => GHC.Enum.Enum (Data.Extensible.Bits.BitProd r h xs)
- Data.Extensible.Bits: instance forall r k (h :: k -> GHC.Types.*) (xs :: [k]). GHC.Generics.Generic (Data.Extensible.Bits.BitProd r h xs)
- Data.Extensible.Class: (h :: k -> *)
- Data.Extensible.Class: (x :: k) :: Constraint;
- Data.Extensible.Class: (xs :: [k])
- Data.Extensible.Class: type (>:) = (:>)
- Data.Extensible.Dictionary: instance forall k (h :: k -> GHC.Types.*) (xs :: [k]). (GHC.Classes.Eq (h Data.Extensible.Struct.:* xs), Data.Extensible.Dictionary.WrapForall GHC.Classes.Ord h xs) => GHC.Classes.Ord (h Data.Extensible.Struct.:* xs)
- Data.Extensible.Dictionary: instance forall k (h :: k -> GHC.Types.*) (xs :: [k]). (GHC.Classes.Eq (h Data.Extensible.Sum.:| xs), Data.Extensible.Dictionary.WrapForall GHC.Classes.Ord h xs) => GHC.Classes.Ord (h Data.Extensible.Sum.:| xs)
- Data.Extensible.Dictionary: instance forall k k1 (c :: k1 -> GHC.Types.Constraint) (h :: k -> k1) (x :: k). c (h x) => Data.Extensible.Dictionary.Instance1 c h x
- Data.Extensible.Effect: data ContT k (r :: k) (m :: k -> *) a :: forall k. k -> (k -> *) -> * -> *
- Data.Extensible.Field: instance forall k v (h :: v -> GHC.Types.*). Data.Extensible.Wrapper.Wrapper h => Data.Extensible.Wrapper.Wrapper (Data.Extensible.Field.Field h)
- Data.Extensible.Field: instance forall v (h :: v -> *) k (kv :: Data.Extensible.Internal.Assoc k v). Control.DeepSeq.NFData (h (Data.Extensible.Field.AssocValue kv)) => Control.DeepSeq.NFData (Data.Extensible.Field.Field h kv)
- Data.Extensible.Field: instance forall v (h :: v -> *) k (kv :: Data.Extensible.Internal.Assoc k v). Data.Hashable.Class.Hashable (h (Data.Extensible.Field.AssocValue kv)) => Data.Hashable.Class.Hashable (Data.Extensible.Field.Field h kv)
- Data.Extensible.Field: instance forall v (h :: v -> *) k (kv :: Data.Extensible.Internal.Assoc k v). Data.Semigroup.Semigroup (h (Data.Extensible.Field.AssocValue kv)) => Data.Semigroup.Semigroup (Data.Extensible.Field.Field h kv)
- Data.Extensible.Field: instance forall v (h :: v -> *) k (kv :: Data.Extensible.Internal.Assoc k v). Foreign.Storable.Storable (h (Data.Extensible.Field.AssocValue kv)) => Foreign.Storable.Storable (Data.Extensible.Field.Field h kv)
- Data.Extensible.Field: instance forall v (h :: v -> *) k (kv :: Data.Extensible.Internal.Assoc k v). GHC.Base.Monoid (h (Data.Extensible.Field.AssocValue kv)) => GHC.Base.Monoid (Data.Extensible.Field.Field h kv)
- Data.Extensible.Field: instance forall v (h :: v -> *) k (kv :: Data.Extensible.Internal.Assoc k v). GHC.Classes.Eq (h (Data.Extensible.Field.AssocValue kv)) => GHC.Classes.Eq (Data.Extensible.Field.Field h kv)
- Data.Extensible.Field: instance forall v (h :: v -> *) k (kv :: Data.Extensible.Internal.Assoc k v). GHC.Classes.Ord (h (Data.Extensible.Field.AssocValue kv)) => GHC.Classes.Ord (Data.Extensible.Field.Field h kv)
- Data.Extensible.Field: instance forall v (h :: v -> *) k (kv :: Data.Extensible.Internal.Assoc k v). GHC.Enum.Bounded (h (Data.Extensible.Field.AssocValue kv)) => GHC.Enum.Bounded (Data.Extensible.Field.Field h kv)
- Data.Extensible.Field: instance forall v (h :: v -> *) k (kv :: Data.Extensible.Internal.Assoc k v). GHC.Enum.Enum (h (Data.Extensible.Field.AssocValue kv)) => GHC.Enum.Enum (Data.Extensible.Field.Field h kv)
- Data.Extensible.Field: instance forall v (h :: v -> *) k (kv :: Data.Extensible.Internal.Assoc k v). GHC.Float.Floating (h (Data.Extensible.Field.AssocValue kv)) => GHC.Float.Floating (Data.Extensible.Field.Field h kv)
- Data.Extensible.Field: instance forall v (h :: v -> *) k (kv :: Data.Extensible.Internal.Assoc k v). GHC.Float.RealFloat (h (Data.Extensible.Field.AssocValue kv)) => GHC.Float.RealFloat (Data.Extensible.Field.Field h kv)
- Data.Extensible.Field: instance forall v (h :: v -> *) k (kv :: Data.Extensible.Internal.Assoc k v). GHC.Num.Num (h (Data.Extensible.Field.AssocValue kv)) => GHC.Num.Num (Data.Extensible.Field.Field h kv)
- Data.Extensible.Field: instance forall v (h :: v -> *) k (kv :: Data.Extensible.Internal.Assoc k v). GHC.Real.Fractional (h (Data.Extensible.Field.AssocValue kv)) => GHC.Real.Fractional (Data.Extensible.Field.Field h kv)
- Data.Extensible.Field: instance forall v (h :: v -> *) k (kv :: Data.Extensible.Internal.Assoc k v). GHC.Real.Integral (h (Data.Extensible.Field.AssocValue kv)) => GHC.Real.Integral (Data.Extensible.Field.Field h kv)
- Data.Extensible.Field: instance forall v (h :: v -> *) k (kv :: Data.Extensible.Internal.Assoc k v). GHC.Real.Real (h (Data.Extensible.Field.AssocValue kv)) => GHC.Real.Real (Data.Extensible.Field.Field h kv)
- Data.Extensible.Field: instance forall v (h :: v -> *) k (kv :: Data.Extensible.Internal.Assoc k v). GHC.Real.RealFrac (h (Data.Extensible.Field.AssocValue kv)) => GHC.Real.RealFrac (Data.Extensible.Field.Field h kv)
- Data.Extensible.Field: instance forall v (h :: v -> *) k (kv :: Data.Extensible.Internal.Assoc k v). Test.QuickCheck.Arbitrary.Arbitrary (h (Data.Extensible.Field.AssocValue kv)) => Test.QuickCheck.Arbitrary.Arbitrary (Data.Extensible.Field.Field h kv)
- Data.Extensible.Field: instance forall v (h :: v -> GHC.Types.Type) k (kv :: Data.Extensible.Internal.Assoc k v). GHC.Generics.Generic (Data.Extensible.Field.Field h kv)
- Data.Extensible.Field: instance forall v (k :: GHC.Types.Symbol) (h :: v -> GHC.Types.*) (v1 :: v). (GHC.TypeLits.KnownSymbol k, Data.Extensible.Wrapper.Wrapper h, GHC.Show.Show (Data.Extensible.Wrapper.Repr h v1)) => GHC.Show.Show (Data.Extensible.Field.Field h (k 'Data.Extensible.Internal.:> v1))
- Data.Extensible.Field: instance forall v k (pk :: k -> GHC.Types.Constraint) (k1 :: k) (pv :: v -> GHC.Types.Constraint) (v1 :: v). (pk k1, pv v1) => Data.Extensible.Field.KeyValue pk pv (k1 'Data.Extensible.Internal.:> v1)
- Data.Extensible.Inclusion: instance forall k v (xs :: [Data.Extensible.Internal.Assoc k v]) (t :: Data.Extensible.Internal.Assoc k v) (k1 :: k) (v1 :: v). (Data.Extensible.Inclusion.Associated' xs t, t ~ (k1 'Data.Extensible.Internal.:> v1)) => Data.Extensible.Inclusion.Associated xs t
- Data.Extensible.Inclusion: type (⊆) xs ys = Include ys xs
- Data.Extensible.Internal: instance forall k (x :: k) (xs :: [k]) (pos :: GHC.Types.Nat). (Data.Extensible.Internal.Elaborate x (Data.Extensible.Internal.FindType x xs) ~ 'Data.Extensible.Internal.Expecting pos, GHC.TypeLits.KnownNat pos) => Data.Extensible.Internal.Member xs x
- Data.Extensible.Internal: instance forall v k (k1 :: k) (xs :: [Data.Extensible.Internal.Assoc k v]) (n :: GHC.Types.Nat) (v1 :: v). (Data.Extensible.Internal.Elaborate k1 (Data.Extensible.Internal.FindAssoc 0 k1 xs) ~ 'Data.Extensible.Internal.Expecting (n 'Data.Extensible.Internal.:> v1), GHC.TypeLits.KnownNat n) => Data.Extensible.Internal.Associate k1 v1 xs
- Data.Extensible.Internal: type (>:) = (:>)
- Data.Extensible.Label: instance forall v (f :: * -> *) (p :: * -> * -> *) (e :: (Data.Extensible.Internal.Assoc GHC.Types.Symbol v -> GHC.Types.*) -> [Data.Extensible.Internal.Assoc GHC.Types.Symbol v] -> GHC.Types.*) (k :: GHC.Types.Symbol) (v1 :: v) (xs :: [Data.Extensible.Internal.Assoc GHC.Types.Symbol v]) (h :: v -> GHC.Types.*) rep s t rep'. (Data.Extensible.Class.Extensible f p e, Data.Extensible.Internal.Associate k v1 xs, Data.Extensible.Field.Labelling k p, Data.Extensible.Wrapper.Wrapper h, Data.Extensible.Class.ExtensibleConstr e (Data.Extensible.Field.Field h) xs (k 'Data.Extensible.Internal.:> v1), rep ~ Data.Extensible.Wrapper.Repr h v1, s ~ e (Data.Extensible.Field.Field h) xs, s ~ t, rep ~ rep') => GHC.OverloadedLabels.IsLabel k (p rep (f rep') -> p s (f t))
- Data.Extensible.Match: instance forall k (h :: k -> GHC.Types.*) r. Data.Extensible.Wrapper.Wrapper h => Data.Extensible.Wrapper.Wrapper (Data.Extensible.Match.Match h r)
- Data.Extensible.Nullable: instance forall k (h :: k -> GHC.Types.*). Data.Extensible.Wrapper.Wrapper h => Data.Extensible.Wrapper.Wrapper (Data.Extensible.Nullable.Nullable h)
- Data.Extensible.Struct: instance forall k s (h :: k -> GHC.Types.*) a. (s ~ GHC.Prim.RealWorld, Data.Extensible.Wrapper.Wrapper h) => Data.StateVar.HasGetter (Data.Extensible.Struct.WrappedPointer s h a) a
- Data.Extensible.Struct: instance forall k s (h :: k -> GHC.Types.*) a. (s ~ GHC.Prim.RealWorld, Data.Extensible.Wrapper.Wrapper h) => Data.StateVar.HasSetter (Data.Extensible.Struct.WrappedPointer s h a) a
- Data.Extensible.Struct: instance forall k s (h :: k -> GHC.Types.*) a. (s ~ GHC.Prim.RealWorld, Data.Extensible.Wrapper.Wrapper h) => Data.StateVar.HasUpdate (Data.Extensible.Struct.WrappedPointer s h a) a a
- Data.Extensible.Wrapper: instance forall j (f :: j -> GHC.Types.*) i (g :: i -> j) (a :: i). Control.DeepSeq.NFData (f (g a)) => Control.DeepSeq.NFData (Data.Extensible.Wrapper.Comp f g a)
- Data.Extensible.Wrapper: instance forall j (f :: j -> GHC.Types.*) i (g :: i -> j) (a :: i). Data.Hashable.Class.Hashable (f (g a)) => Data.Hashable.Class.Hashable (Data.Extensible.Wrapper.Comp f g a)
- Data.Extensible.Wrapper: instance forall j (f :: j -> GHC.Types.*) i (g :: i -> j) (a :: i). Data.Semigroup.Semigroup (f (g a)) => Data.Semigroup.Semigroup (Data.Extensible.Wrapper.Comp f g a)
- Data.Extensible.Wrapper: instance forall j (f :: j -> GHC.Types.*) i (g :: i -> j) (a :: i). GHC.Base.Monoid (f (g a)) => GHC.Base.Monoid (Data.Extensible.Wrapper.Comp f g a)
- Data.Extensible.Wrapper: instance forall j (f :: j -> GHC.Types.*) i (g :: i -> j) (a :: i). GHC.Classes.Eq (f (g a)) => GHC.Classes.Eq (Data.Extensible.Wrapper.Comp f g a)
- Data.Extensible.Wrapper: instance forall j (f :: j -> GHC.Types.*) i (g :: i -> j) (a :: i). GHC.Classes.Ord (f (g a)) => GHC.Classes.Ord (Data.Extensible.Wrapper.Comp f g a)
- Data.Extensible.Wrapper: instance forall j (f :: j -> GHC.Types.*) i (g :: i -> j) (a :: i). GHC.Generics.Generic (Data.Extensible.Wrapper.Comp f g a)
- Data.Extensible.Wrapper: instance forall j (f :: j -> GHC.Types.*) i (g :: i -> j) (a :: i). GHC.Show.Show (f (g a)) => GHC.Show.Show (Data.Extensible.Wrapper.Comp f g a)
- Data.Extensible.Wrapper: instance forall j (f :: j -> GHC.Types.*) i (g :: i -> j) (a :: i). Test.QuickCheck.Arbitrary.Arbitrary (f (g a)) => Test.QuickCheck.Arbitrary.Arbitrary (Data.Extensible.Wrapper.Comp f g a)
- Data.Extensible.Wrapper: instance forall k (f :: * -> *) (g :: k -> GHC.Types.*). (GHC.Base.Functor f, Data.Extensible.Wrapper.Wrapper g) => Data.Extensible.Wrapper.Wrapper (Data.Extensible.Wrapper.Comp f g)
- Data.Extensible.Wrapper: instance forall k (f :: k -> GHC.Types.*) (g :: k -> GHC.Types.*). (Data.Extensible.Wrapper.Wrapper f, Data.Extensible.Wrapper.Wrapper g) => Data.Extensible.Wrapper.Wrapper (Data.Extensible.Wrapper.Prod f g)
+ Data.Extensible.Bits: instance (Data.Extensible.Bits.FromBits r a, Data.Extensible.Bits.FromBits r b, n ~ (Data.Extensible.Bits.BitWidth a GHC.TypeNats.+ Data.Extensible.Bits.BitWidth b), n GHC.TypeNats.<= Data.Extensible.Bits.BitWidth r, GHC.TypeNats.KnownNat n) => Data.Extensible.Bits.FromBits r (a, b)
+ Data.Extensible.Bits: instance forall k r (h :: k -> *) (xs :: [k]). (Data.Bits.Bits r, GHC.TypeNats.KnownNat (Data.Extensible.Bits.TotalBits h xs)) => Data.Extensible.Bits.FromBits r (Data.Extensible.Bits.BitProd r h xs)
+ Data.Extensible.Bits: instance forall r k (h :: k -> *) (xs :: [k]). Data.Hashable.Class.Hashable r => Data.Hashable.Class.Hashable (Data.Extensible.Bits.BitProd r h xs)
+ Data.Extensible.Bits: instance forall r k (h :: k -> *) (xs :: [k]). Foreign.Storable.Storable r => Foreign.Storable.Storable (Data.Extensible.Bits.BitProd r h xs)
+ Data.Extensible.Bits: instance forall r k (h :: k -> *) (xs :: [k]). GHC.Arr.Ix r => GHC.Arr.Ix (Data.Extensible.Bits.BitProd r h xs)
+ Data.Extensible.Bits: instance forall r k (h :: k -> *) (xs :: [k]). GHC.Classes.Eq r => GHC.Classes.Eq (Data.Extensible.Bits.BitProd r h xs)
+ Data.Extensible.Bits: instance forall r k (h :: k -> *) (xs :: [k]). GHC.Classes.Ord r => GHC.Classes.Ord (Data.Extensible.Bits.BitProd r h xs)
+ Data.Extensible.Bits: instance forall r k (h :: k -> *) (xs :: [k]). GHC.Enum.Bounded r => GHC.Enum.Bounded (Data.Extensible.Bits.BitProd r h xs)
+ Data.Extensible.Bits: instance forall r k (h :: k -> *) (xs :: [k]). GHC.Enum.Enum r => GHC.Enum.Enum (Data.Extensible.Bits.BitProd r h xs)
+ Data.Extensible.Bits: instance forall r k (h :: k -> *) (xs :: [k]). GHC.Generics.Generic (Data.Extensible.Bits.BitProd r h xs)
+ Data.Extensible.Class: -> *) (xs :: [k]) (x :: k) :: Constraint;
+ Data.Extensible.Class: type >: = '(:>)
+ Data.Extensible.Class: type x ∈ xs = Member xs x
+ Data.Extensible.Dictionary: instance forall k (h :: k -> *) (xs :: [k]). (GHC.Classes.Eq (h Data.Extensible.Struct.:* xs), Data.Extensible.Dictionary.WrapForall GHC.Classes.Ord h xs) => GHC.Classes.Ord (h Data.Extensible.Struct.:* xs)
+ Data.Extensible.Dictionary: instance forall k (h :: k -> *) (xs :: [k]). (GHC.Classes.Eq (h Data.Extensible.Sum.:| xs), Data.Extensible.Dictionary.WrapForall GHC.Classes.Ord h xs) => GHC.Classes.Ord (h Data.Extensible.Sum.:| xs)
+ Data.Extensible.Dictionary: instance forall k1 k2 (c :: k2 -> GHC.Types.Constraint) (h :: k1 -> k2) (x :: k1). c (h x) => Data.Extensible.Dictionary.Instance1 c h x
+ Data.Extensible.Effect: data ContT k (r :: k) (m :: k -> *) a :: forall k. () => k -> (k -> *) -> * -> *
+ Data.Extensible.Field: instance forall k v (h :: v -> *) (kv :: Data.Extensible.Internal.Assoc k v). Control.DeepSeq.NFData (h (Data.Extensible.Field.AssocValue kv)) => Control.DeepSeq.NFData (Data.Extensible.Field.Field h kv)
+ Data.Extensible.Field: instance forall k v (h :: v -> *) (kv :: Data.Extensible.Internal.Assoc k v). Data.Hashable.Class.Hashable (h (Data.Extensible.Field.AssocValue kv)) => Data.Hashable.Class.Hashable (Data.Extensible.Field.Field h kv)
+ Data.Extensible.Field: instance forall k v (h :: v -> *) (kv :: Data.Extensible.Internal.Assoc k v). Data.Semigroup.Semigroup (h (Data.Extensible.Field.AssocValue kv)) => Data.Semigroup.Semigroup (Data.Extensible.Field.Field h kv)
+ Data.Extensible.Field: instance forall k v (h :: v -> *) (kv :: Data.Extensible.Internal.Assoc k v). Foreign.Storable.Storable (h (Data.Extensible.Field.AssocValue kv)) => Foreign.Storable.Storable (Data.Extensible.Field.Field h kv)
+ Data.Extensible.Field: instance forall k v (h :: v -> *) (kv :: Data.Extensible.Internal.Assoc k v). GHC.Base.Monoid (h (Data.Extensible.Field.AssocValue kv)) => GHC.Base.Monoid (Data.Extensible.Field.Field h kv)
+ Data.Extensible.Field: instance forall k v (h :: v -> *) (kv :: Data.Extensible.Internal.Assoc k v). GHC.Classes.Eq (h (Data.Extensible.Field.AssocValue kv)) => GHC.Classes.Eq (Data.Extensible.Field.Field h kv)
+ Data.Extensible.Field: instance forall k v (h :: v -> *) (kv :: Data.Extensible.Internal.Assoc k v). GHC.Classes.Ord (h (Data.Extensible.Field.AssocValue kv)) => GHC.Classes.Ord (Data.Extensible.Field.Field h kv)
+ Data.Extensible.Field: instance forall k v (h :: v -> *) (kv :: Data.Extensible.Internal.Assoc k v). GHC.Enum.Bounded (h (Data.Extensible.Field.AssocValue kv)) => GHC.Enum.Bounded (Data.Extensible.Field.Field h kv)
+ Data.Extensible.Field: instance forall k v (h :: v -> *) (kv :: Data.Extensible.Internal.Assoc k v). GHC.Enum.Enum (h (Data.Extensible.Field.AssocValue kv)) => GHC.Enum.Enum (Data.Extensible.Field.Field h kv)
+ Data.Extensible.Field: instance forall k v (h :: v -> *) (kv :: Data.Extensible.Internal.Assoc k v). GHC.Float.Floating (h (Data.Extensible.Field.AssocValue kv)) => GHC.Float.Floating (Data.Extensible.Field.Field h kv)
+ Data.Extensible.Field: instance forall k v (h :: v -> *) (kv :: Data.Extensible.Internal.Assoc k v). GHC.Float.RealFloat (h (Data.Extensible.Field.AssocValue kv)) => GHC.Float.RealFloat (Data.Extensible.Field.Field h kv)
+ Data.Extensible.Field: instance forall k v (h :: v -> *) (kv :: Data.Extensible.Internal.Assoc k v). GHC.Num.Num (h (Data.Extensible.Field.AssocValue kv)) => GHC.Num.Num (Data.Extensible.Field.Field h kv)
+ Data.Extensible.Field: instance forall k v (h :: v -> *) (kv :: Data.Extensible.Internal.Assoc k v). GHC.Real.Fractional (h (Data.Extensible.Field.AssocValue kv)) => GHC.Real.Fractional (Data.Extensible.Field.Field h kv)
+ Data.Extensible.Field: instance forall k v (h :: v -> *) (kv :: Data.Extensible.Internal.Assoc k v). GHC.Real.Integral (h (Data.Extensible.Field.AssocValue kv)) => GHC.Real.Integral (Data.Extensible.Field.Field h kv)
+ Data.Extensible.Field: instance forall k v (h :: v -> *) (kv :: Data.Extensible.Internal.Assoc k v). GHC.Real.Real (h (Data.Extensible.Field.AssocValue kv)) => GHC.Real.Real (Data.Extensible.Field.Field h kv)
+ Data.Extensible.Field: instance forall k v (h :: v -> *) (kv :: Data.Extensible.Internal.Assoc k v). GHC.Real.RealFrac (h (Data.Extensible.Field.AssocValue kv)) => GHC.Real.RealFrac (Data.Extensible.Field.Field h kv)
+ Data.Extensible.Field: instance forall k v (h :: v -> *) (kv :: Data.Extensible.Internal.Assoc k v). Test.QuickCheck.Arbitrary.Arbitrary (h (Data.Extensible.Field.AssocValue kv)) => Test.QuickCheck.Arbitrary.Arbitrary (Data.Extensible.Field.Field h kv)
+ Data.Extensible.Field: instance forall k v (h :: v -> *). Data.Extensible.Wrapper.Wrapper h => Data.Extensible.Wrapper.Wrapper (Data.Extensible.Field.Field h)
+ Data.Extensible.Field: instance forall v (h :: v -> *) k (kv :: Data.Extensible.Internal.Assoc k v). GHC.Generics.Generic (Data.Extensible.Field.Field h kv)
+ Data.Extensible.Field: instance forall v1 (k :: GHC.Types.Symbol) (h :: v1 -> *) (v2 :: v1). (GHC.TypeLits.KnownSymbol k, Data.Extensible.Wrapper.Wrapper h, GHC.Show.Show (Data.Extensible.Wrapper.Repr h v2)) => GHC.Show.Show (Data.Extensible.Field.Field h (k 'Data.Extensible.Internal.:> v2))
+ Data.Extensible.Field: instance forall v1 k1 (pk :: k1 -> GHC.Types.Constraint) (k2 :: k1) (pv :: v1 -> GHC.Types.Constraint) (v2 :: v1). (pk k2, pv v2) => Data.Extensible.Field.KeyValue pk pv (k2 'Data.Extensible.Internal.:> v2)
+ Data.Extensible.GetOpt: optFlag :: [Char] -> [String] -> String -> OptDescr' Bool
+ Data.Extensible.GetOpt: optLastArg :: [Char] -> [String] -> String -> String -> OptDescr' (Maybe String)
+ Data.Extensible.GetOpt: optionOptArg :: ([Maybe String] -> h a) -> [Char] -> [String] -> String -> String -> OptionDescr h a
+ Data.Extensible.Inclusion: instance forall k1 v1 (xs :: [Data.Extensible.Internal.Assoc k1 v1]) (t :: Data.Extensible.Internal.Assoc k1 v1) (k2 :: k1) (v2 :: v1). (Data.Extensible.Inclusion.Associated' xs t, t ~ (k2 'Data.Extensible.Internal.:> v2)) => Data.Extensible.Inclusion.Associated xs t
+ Data.Extensible.Inclusion: type xs ⊆ ys = Include ys xs
+ Data.Extensible.Internal: instance forall k (x :: k) (xs :: [k]) (pos :: GHC.Types.Nat). (Data.Extensible.Internal.Elaborate x (Data.Extensible.Internal.FindType x xs) ~ 'Data.Extensible.Internal.Expecting pos, GHC.TypeNats.KnownNat pos) => Data.Extensible.Internal.Member xs x
+ Data.Extensible.Internal: instance forall v1 k1 (k2 :: k1) (xs :: [Data.Extensible.Internal.Assoc k1 v1]) (n :: GHC.Types.Nat) (v2 :: v1). (Data.Extensible.Internal.Elaborate k2 (Data.Extensible.Internal.FindAssoc 0 k2 xs) ~ 'Data.Extensible.Internal.Expecting (n 'Data.Extensible.Internal.:> v2), GHC.TypeNats.KnownNat n) => Data.Extensible.Internal.Associate k2 v2 xs
+ Data.Extensible.Internal: type >: = '(:>)
+ Data.Extensible.Internal: type x ∈ xs = Member xs x
+ Data.Extensible.Label: instance forall v1 (f :: * -> *) (p :: * -> * -> *) (e :: (Data.Extensible.Internal.Assoc GHC.Types.Symbol v1 -> *) -> [Data.Extensible.Internal.Assoc GHC.Types.Symbol v1] -> *) (k :: GHC.Types.Symbol) (v2 :: v1) (xs :: [Data.Extensible.Internal.Assoc GHC.Types.Symbol v1]) (h :: v1 -> *) rep s t rep'. (Data.Extensible.Class.Extensible f p e, Data.Extensible.Internal.Associate k v2 xs, Data.Extensible.Field.Labelling k p, Data.Extensible.Wrapper.Wrapper h, Data.Extensible.Class.ExtensibleConstr e (Data.Extensible.Field.Field h) xs (k 'Data.Extensible.Internal.:> v2), rep ~ Data.Extensible.Wrapper.Repr h v2, s ~ e (Data.Extensible.Field.Field h) xs, s ~ t, rep ~ rep') => GHC.OverloadedLabels.IsLabel k (p rep (f rep') -> p s (f t))
+ Data.Extensible.Match: instance forall k (h :: k -> *) r. Data.Extensible.Wrapper.Wrapper h => Data.Extensible.Wrapper.Wrapper (Data.Extensible.Match.Match h r)
+ Data.Extensible.Nullable: instance forall k (h :: k -> *). Data.Extensible.Wrapper.Wrapper h => Data.Extensible.Wrapper.Wrapper (Data.Extensible.Nullable.Nullable h)
+ Data.Extensible.Struct: instance forall k s (h :: k -> *) a. (s ~ GHC.Prim.RealWorld, Data.Extensible.Wrapper.Wrapper h) => Data.StateVar.HasGetter (Data.Extensible.Struct.WrappedPointer s h a) a
+ Data.Extensible.Struct: instance forall k s (h :: k -> *) a. (s ~ GHC.Prim.RealWorld, Data.Extensible.Wrapper.Wrapper h) => Data.StateVar.HasSetter (Data.Extensible.Struct.WrappedPointer s h a) a
+ Data.Extensible.Struct: instance forall k s (h :: k -> *) a. (s ~ GHC.Prim.RealWorld, Data.Extensible.Wrapper.Wrapper h) => Data.StateVar.HasUpdate (Data.Extensible.Struct.WrappedPointer s h a) a a
+ Data.Extensible.Wrapper: instance forall j (f :: j -> *) i (g :: i -> j) (a :: i). Control.DeepSeq.NFData (f (g a)) => Control.DeepSeq.NFData (Data.Extensible.Wrapper.Comp f g a)
+ Data.Extensible.Wrapper: instance forall j (f :: j -> *) i (g :: i -> j) (a :: i). Data.Hashable.Class.Hashable (f (g a)) => Data.Hashable.Class.Hashable (Data.Extensible.Wrapper.Comp f g a)
+ Data.Extensible.Wrapper: instance forall j (f :: j -> *) i (g :: i -> j) (a :: i). Data.Semigroup.Semigroup (f (g a)) => Data.Semigroup.Semigroup (Data.Extensible.Wrapper.Comp f g a)
+ Data.Extensible.Wrapper: instance forall j (f :: j -> *) i (g :: i -> j) (a :: i). GHC.Base.Monoid (f (g a)) => GHC.Base.Monoid (Data.Extensible.Wrapper.Comp f g a)
+ Data.Extensible.Wrapper: instance forall j (f :: j -> *) i (g :: i -> j) (a :: i). GHC.Classes.Eq (f (g a)) => GHC.Classes.Eq (Data.Extensible.Wrapper.Comp f g a)
+ Data.Extensible.Wrapper: instance forall j (f :: j -> *) i (g :: i -> j) (a :: i). GHC.Classes.Ord (f (g a)) => GHC.Classes.Ord (Data.Extensible.Wrapper.Comp f g a)
+ Data.Extensible.Wrapper: instance forall j (f :: j -> *) i (g :: i -> j) (a :: i). GHC.Generics.Generic (Data.Extensible.Wrapper.Comp f g a)
+ Data.Extensible.Wrapper: instance forall j (f :: j -> *) i (g :: i -> j) (a :: i). GHC.Show.Show (f (g a)) => GHC.Show.Show (Data.Extensible.Wrapper.Comp f g a)
+ Data.Extensible.Wrapper: instance forall j (f :: j -> *) i (g :: i -> j) (a :: i). Test.QuickCheck.Arbitrary.Arbitrary (f (g a)) => Test.QuickCheck.Arbitrary.Arbitrary (Data.Extensible.Wrapper.Comp f g a)
+ Data.Extensible.Wrapper: instance forall k (f :: * -> *) (g :: k -> *). (GHC.Base.Functor f, Data.Extensible.Wrapper.Wrapper g) => Data.Extensible.Wrapper.Wrapper (Data.Extensible.Wrapper.Comp f g)
+ Data.Extensible.Wrapper: instance forall k (f :: k -> *) (g :: k -> *). (Data.Extensible.Wrapper.Wrapper f, Data.Extensible.Wrapper.Wrapper g) => Data.Extensible.Wrapper.Wrapper (Data.Extensible.Wrapper.Prod f g)
- Data.Extensible.Bits: class (Bits r, KnownNat (BitWidth a)) => FromBits r a where type BitWidth a :: Nat where {
+ Data.Extensible.Bits: class (Bits r, KnownNat (BitWidth a)) => FromBits r a where {
- Data.Extensible.Class: class (Functor f, Profunctor p) => Extensible f p (t :: (k -> *) -> [k] -> *) where type ExtensibleConstr t (h :: k -> *) (xs :: [k]) (x :: k) :: Constraint type ExtensibleConstr t h xs x = () where {
+ Data.Extensible.Class: class (Functor f, Profunctor p) => Extensible f p (t :: (k -> *) -> [k] -> *) where {
- Data.Extensible.Class: type family ExtensibleConstr t
+ Data.Extensible.Class: type family ExtensibleConstr t (h :: k
- Data.Extensible.Product: data (:*) (h :: k -> *) (s :: [k])
+ Data.Extensible.Product: data (h :: k -> *) (:*) (s :: [k])
- Data.Extensible.Record: class IsRecord a where type RecFields a :: [Assoc Symbol *] where {
+ Data.Extensible.Record: class IsRecord a where {
- Data.Extensible.Struct: data (:*) (h :: k -> *) (s :: [k])
+ Data.Extensible.Struct: data (h :: k -> *) (:*) (s :: [k])
- Data.Extensible.Sum: data (:|) (h :: k -> *) (s :: [k])
+ Data.Extensible.Sum: data (h :: k -> *) (:|) (s :: [k])
- Data.Extensible.Wrapper: class Wrapper (h :: k -> *) where type Repr h (v :: k) :: * where {
+ Data.Extensible.Wrapper: class Wrapper (h :: k -> *) where {
Files
- CHANGELOG.md +5/−0
- examples/eff.hs +0/−23
- extensible.cabal +1/−1
- src/Data/Extensible/Dictionary.hs +7/−11
- src/Data/Extensible/GetOpt.hs +36/−6
- src/Data/Extensible/Internal.hs +0/−1
- src/Data/Extensible/Record.hs +0/−1
CHANGELOG.md view
@@ -1,3 +1,8 @@+0.4.7.1+-------------------------------------------------+* Fixed weird CPP errors on macOS 10.13.2 (#18)+* Added `optFlag`, `optLastArg`, and `optionOptArg`+ 0.4.7 ------------------------------------------------- * Made various optimisations to improve the compilation time
− examples/eff.hs
@@ -1,23 +0,0 @@-{-# LANGUAGE TypeApplications, OverloadedLabels, PolyKinds, DataKinds, ScopedTypeVariables, Rank2Types #-}-import Data.Extensible--import Prelude hiding (readFile)-import Control.Exception-import Data.ByteString (ByteString)--data FileSystem r where- ReadFile- :: FilePath- -> FileSystem (Either SomeException ByteString)--readFile- :: forall xs- . (Associate "fs" FileSystem xs- , Associate "fs_error" (EitherEff SomeException) xs)- => FilePath- -> Eff xs ByteString-readFile fp = liftEff #fs (ReadFile fp)- >>= either (throwEff #fs_error) pure--foo :: forall xs. Associate "fs" FileSystem xs => Eff xs (Either SomeException ByteString)-foo = castEff (runEitherEff @ "fs_error" (readFile "foo") :: Eff '["fs" >: FileSystem] (Either SomeException ByteString))
extensible.cabal view
@@ -1,5 +1,5 @@ name: extensible-version: 0.4.7+version: 0.4.7.1 synopsis: Extensible, efficient, optics-friendly data types and effects homepage: https://github.com/fumieval/extensible bug-reports: http://github.com/fumieval/extensible/issues
src/Data/Extensible/Dictionary.hs view
@@ -80,10 +80,6 @@ newtype instance U.MVector s (h :* xs) = MV_Product (Comp (U.MVector s) h :* xs) newtype instance U.Vector (h :* xs) = V_Product (Comp U.Vector h :* xs) -#define ENUM_EACH(expr) henumerateFor \- (Proxy :: Proxy (Instance1 U.Unbox h)) (Proxy :: Proxy (x ': xs)) \- ((>>) . (expr)) (return ())- hlookupC :: Membership xs a -> Comp f g :* xs -> f (g a) hlookupC i = getComp . hlookup i @@ -101,7 +97,7 @@ basicUnsafeIndexM (V_Product v) i = hgenerateFor (Proxy :: Proxy (Instance1 U.Unbox h)) $ \m -> G.basicUnsafeIndexM (hlookupC m v) i basicUnsafeCopy (MV_Product v) (V_Product w)- = ENUM_EACH(\i -> G.basicUnsafeCopy (hlookupC i v) (hlookupC i w))+ = henumerateFor (Proxy :: Proxy (Instance1 U.Unbox h)) (Proxy :: Proxy (x ': xs)) ((>>) . \i -> G.basicUnsafeCopy (hlookupC i v) (hlookupC i w)) (return ()) instance WrapForall U.Unbox h (x ': xs) => M.MVector U.MVector (h :* (x ': xs)) where basicLength (MV_Product v) = M.basicLength $ getComp $ hindex v here@@ -116,20 +112,20 @@ $ hgenerateFor (Proxy :: Proxy (Instance1 U.Unbox h)) (const $ Comp <$> M.basicUnsafeNew n) #if MIN_VERSION_vector(0,11,0)- basicInitialize (MV_Product v) = ENUM_EACH(\i -> M.basicInitialize $ hlookupC i v)+ basicInitialize (MV_Product v) = henumerateFor (Proxy :: Proxy (Instance1 U.Unbox h)) (Proxy :: Proxy (x ': xs)) ((>>) . \i -> M.basicInitialize $ hlookupC i v) (return ()) #endif basicUnsafeReplicate n x = fmap MV_Product $ hgenerateFor (Proxy :: Proxy (Instance1 U.Unbox h)) $ \m -> fmap Comp $ M.basicUnsafeReplicate n $ hlookup m x basicUnsafeRead (MV_Product v) i = hgenerateFor (Proxy :: Proxy (Instance1 U.Unbox h)) (\m -> M.basicUnsafeRead (hlookupC m v) i)- basicUnsafeWrite (MV_Product v) i x = ENUM_EACH(\m -> M.basicUnsafeWrite (hlookupC m v) i (hlookup m x))- basicClear (MV_Product v) = ENUM_EACH(\i -> M.basicClear $ hlookupC i v)- basicSet (MV_Product v) x = ENUM_EACH(\i -> M.basicSet (hlookupC i v) (hlookup i x))+ basicUnsafeWrite (MV_Product v) i x = henumerateFor (Proxy :: Proxy (Instance1 U.Unbox h)) (Proxy :: Proxy (x ': xs)) ((>>) . \m -> M.basicUnsafeWrite (hlookupC m v) i (hlookup m x)) (return ())+ basicClear (MV_Product v) = henumerateFor (Proxy :: Proxy (Instance1 U.Unbox h)) (Proxy :: Proxy (x ': xs)) ((>>) . \i -> M.basicClear $ hlookupC i v) (return ())+ basicSet (MV_Product v) x = henumerateFor (Proxy :: Proxy (Instance1 U.Unbox h)) (Proxy :: Proxy (x ': xs)) ((>>) . \i -> M.basicSet (hlookupC i v) (hlookup i x)) (return ()) basicUnsafeCopy (MV_Product v1) (MV_Product v2)- = ENUM_EACH(\i -> M.basicUnsafeCopy (hlookupC i v1) (hlookupC i v2))+ = henumerateFor (Proxy :: Proxy (Instance1 U.Unbox h)) (Proxy :: Proxy (x ': xs)) ((>>) . \i -> M.basicUnsafeCopy (hlookupC i v1) (hlookupC i v2)) (return ()) basicUnsafeMove (MV_Product v1) (MV_Product v2)- = ENUM_EACH(\i -> M.basicUnsafeMove (hlookupC i v1) (hlookupC i v2))+ = henumerateFor (Proxy :: Proxy (Instance1 U.Unbox h)) (Proxy :: Proxy (x ': xs)) ((>>) . \i -> M.basicUnsafeMove (hlookupC i v1) (hlookupC i v2)) (return ()) basicUnsafeGrow (MV_Product v) n = fmap MV_Product $ hgenerateFor (Proxy :: Proxy (Instance1 U.Unbox h)) $ \i -> Comp <$> M.basicUnsafeGrow (hlookupC i v) n
src/Data/Extensible/GetOpt.hs view
@@ -7,16 +7,24 @@ -- -- Maintainer : Fumiaki Kinoshita <fumiexcel@gmail.com> ----- A wrapper for 'System.Console.GetOpt'+-- A wrapper for 'System.Console.GetOpt'.+--+-- See also: <https://www.schoolofhaskell.com/user/fumieval/extensible/getopt-and-extensible-records GetOpt and extensible records - School of Haskell>+-- -------------------------------------------------------------------------------- module Data.Extensible.GetOpt (OptionDescr(..) , OptDescr'+ , getOptRecord+ , withGetOpt+ -- * Basic descriptors+ , optFlag+ , optLastArg+ -- * More generic descriptors , optNoArg , optReqArg , optionNoArg , optionReqArg- , getOptRecord- , withGetOpt) where+ , optionOptArg) where import Control.Monad.IO.Class import Data.Extensible.Class@@ -61,6 +69,13 @@ -> OptDescr' Int optNoArg = optionNoArg Identity +-- | True when specified+optFlag :: [Char] -- ^ short option+ -> [String] -- ^ long option+ -> String -- ^ explanation+ -> OptDescr' Bool+optFlag = optionNoArg (pure . (>0))+ optionNoArg :: (Int -> h a) -> [Char] -> [String] -> String -> OptionDescr h a optionNoArg f ss ls expl = OptionDescr f 0 $ Option ss ls (NoArg (+1)) expl @@ -72,9 +87,21 @@ -> OptDescr' [String] optReqArg = optionReqArg Identity +-- | Takes the last argument when more than one is specified.+optLastArg :: [Char] -- ^ short option+ -> [String] -- ^ long option+ -> String -- ^ placeholder+ -> String -- ^ explanation+ -> OptDescr' (Maybe String)+optLastArg ss ls ph expl = OptionDescr pure Nothing $ Option ss ls (ReqArg (const . Just) ph) expl+ optionReqArg :: ([String] -> h a) -> [Char] -> [String] -> String -> String -> OptionDescr h a optionReqArg f ss ls ph expl = OptionDescr f [] $ Option ss ls (ReqArg (:) ph) expl +optionOptArg :: ([Maybe String] -> h a) -> [Char] -> [String] -> String -> String -> OptionDescr h a+optionOptArg f ss ls ph expl = OptionDescr f [] $ Option ss ls (OptArg (:) ph) expl++-- | Parse option arguments. getOptRecord :: RecordOf (OptionDescr h) xs -- ^ a record of option descriptors -> [String] -- ^ arguments -> (RecordOf h xs, [String], [String], String -> String) -- ^ (result, remaining non-options, errors, usageInfo)@@ -87,10 +114,13 @@ result = hmap (\(Field (OptionDescr k x _)) -> Field (k x)) $ foldl' (flip id) descs fs --- | When there's an error, print it along with the usage info to stderr+-- | An all-in-one utility function.+-- When there's an error, print it along with the usage info to stderr -- and terminate with 'exitFailure'.-withGetOpt :: MonadIO m => String -> RecordOf (OptionDescr h) xs- -> (RecordOf h xs -> [String] -> m a) -> m a+withGetOpt :: MonadIO m => String -- ^ Non-option usage+ -> RecordOf (OptionDescr h) xs -- ^ option desciptors+ -> (RecordOf h xs -> [String] -> m a) -- ^ the result and non-option arguments+ -> m a withGetOpt nonOptUsage descs k = getOptRecord descs <$> liftIO getArgs >>= \case (r, xs, [], _) -> k r xs (_, _, errs, usage) -> liftIO $ do
src/Data/Extensible/Internal.hs view
@@ -65,7 +65,6 @@ import Data.Hashable import Data.Typeable import Language.Haskell.TH hiding (Pred)-import Data.Bits import Data.Semigroup (Semigroup(..)) import GHC.TypeLits
src/Data/Extensible/Record.hs view
@@ -60,7 +60,6 @@ #else TyConI (DataD _ _ vars [RecC conName vst] _) -> do #endif- rec <- newName "rec" let names = [x | (x, _, _) <- vst] newNames <- traverse (newName . nameBase) names let tvmap = [(tvName tv, VarT (mkName $ "p" ++ show i)) | (i, tv) <- zip [0 :: Int ..] vars]