extensible 0.7 → 0.7.1
raw patch · 6 files changed
+24/−186 lines, 6 filesdep ~barbiesdep ~prettyprinterdep ~vectorPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: barbies, prettyprinter, vector
API changes (from Hackage documentation)
- Data.Extensible: data Proxy (t :: k) :: forall k. () => k -> Type
- Data.Extensible.Bits: instance (Data.Extensible.Bits.FromBits r a, Data.Extensible.Bits.FromBits r b, n Data.Type.Equality.~ (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 v r (h :: v -> *) (x :: Type.Membership.Internal.Assoc k v). (Data.Bits.Bits r, Data.Extensible.Bits.FromBits r (h (Type.Membership.TargetOf x))) => Data.Extensible.Bits.FromBits r (Data.Extensible.Field.Field h x)
- Data.Extensible.Class: data Membership (xs :: [k]) (x :: k) :: forall k. () => [k] -> k -> Type
- Data.Extensible.Dictionary: instance Data.Vector.Unboxed.Base.Unbox a => Data.Vector.Generic.Base.Vector Data.Vector.Unboxed.Base.Vector (Data.Functor.Identity.Identity a)
- Data.Extensible.Dictionary: instance Data.Vector.Unboxed.Base.Unbox a => Data.Vector.Generic.Mutable.Base.MVector Data.Vector.Unboxed.Base.MVector (Data.Functor.Identity.Identity a)
- Data.Extensible.Dictionary: instance Data.Vector.Unboxed.Base.Unbox a => Data.Vector.Unboxed.Base.Unbox (Data.Functor.Identity.Identity a)
- 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.Field: instance forall k v (h :: v -> *) (kv :: Type.Membership.Internal.Assoc k v). Control.DeepSeq.NFData (h (Type.Membership.TargetOf kv)) => Control.DeepSeq.NFData (Data.Extensible.Field.Field h kv)
- Data.Extensible.Field: instance forall k v (h :: v -> *) (kv :: Type.Membership.Internal.Assoc k v). Data.Aeson.Types.FromJSON.FromJSON (h (Type.Membership.TargetOf kv)) => Data.Aeson.Types.FromJSON.FromJSON (Data.Extensible.Field.Field h kv)
- Data.Extensible.Field: instance forall k v (h :: v -> *) (kv :: Type.Membership.Internal.Assoc k v). Data.Aeson.Types.ToJSON.ToJSON (h (Type.Membership.TargetOf kv)) => Data.Aeson.Types.ToJSON.ToJSON (Data.Extensible.Field.Field h kv)
- Data.Extensible.Field: instance forall k v (h :: v -> *) (kv :: Type.Membership.Internal.Assoc k v). Data.Csv.Conversion.FromField (h (Type.Membership.TargetOf kv)) => Data.Csv.Conversion.FromField (Data.Extensible.Field.Field h kv)
- Data.Extensible.Field: instance forall k v (h :: v -> *) (kv :: Type.Membership.Internal.Assoc k v). Data.Csv.Conversion.ToField (h (Type.Membership.TargetOf kv)) => Data.Csv.Conversion.ToField (Data.Extensible.Field.Field h kv)
- Data.Extensible.Field: instance forall k v (h :: v -> *) (kv :: Type.Membership.Internal.Assoc k v). Data.Hashable.Class.Hashable (h (Type.Membership.TargetOf kv)) => Data.Hashable.Class.Hashable (Data.Extensible.Field.Field h kv)
- Data.Extensible.Field: instance forall k v (h :: v -> *) (kv :: Type.Membership.Internal.Assoc k v). Foreign.Storable.Storable (h (Type.Membership.TargetOf kv)) => Foreign.Storable.Storable (Data.Extensible.Field.Field h kv)
- Data.Extensible.Field: instance forall k v (h :: v -> *) (kv :: Type.Membership.Internal.Assoc k v). GHC.Base.Monoid (h (Type.Membership.TargetOf kv)) => GHC.Base.Monoid (Data.Extensible.Field.Field h kv)
- Data.Extensible.Field: instance forall k v (h :: v -> *) (kv :: Type.Membership.Internal.Assoc k v). GHC.Base.Semigroup (h (Type.Membership.TargetOf kv)) => GHC.Base.Semigroup (Data.Extensible.Field.Field h kv)
- Data.Extensible.Field: instance forall k v (h :: v -> *) (kv :: Type.Membership.Internal.Assoc k v). GHC.Classes.Eq (h (Type.Membership.TargetOf kv)) => GHC.Classes.Eq (Data.Extensible.Field.Field h kv)
- Data.Extensible.Field: instance forall k v (h :: v -> *) (kv :: Type.Membership.Internal.Assoc k v). GHC.Classes.Ord (h (Type.Membership.TargetOf kv)) => GHC.Classes.Ord (Data.Extensible.Field.Field h kv)
- Data.Extensible.Field: instance forall k v (h :: v -> *) (kv :: Type.Membership.Internal.Assoc k v). GHC.Enum.Bounded (h (Type.Membership.TargetOf kv)) => GHC.Enum.Bounded (Data.Extensible.Field.Field h kv)
- Data.Extensible.Field: instance forall k v (h :: v -> *) (kv :: Type.Membership.Internal.Assoc k v). GHC.Enum.Enum (h (Type.Membership.TargetOf kv)) => GHC.Enum.Enum (Data.Extensible.Field.Field h kv)
- Data.Extensible.Field: instance forall k v (h :: v -> *) (kv :: Type.Membership.Internal.Assoc k v). GHC.Float.Floating (h (Type.Membership.TargetOf kv)) => GHC.Float.Floating (Data.Extensible.Field.Field h kv)
- Data.Extensible.Field: instance forall k v (h :: v -> *) (kv :: Type.Membership.Internal.Assoc k v). GHC.Float.RealFloat (h (Type.Membership.TargetOf kv)) => GHC.Float.RealFloat (Data.Extensible.Field.Field h kv)
- Data.Extensible.Field: instance forall k v (h :: v -> *) (kv :: Type.Membership.Internal.Assoc k v). GHC.Num.Num (h (Type.Membership.TargetOf kv)) => GHC.Num.Num (Data.Extensible.Field.Field h kv)
- Data.Extensible.Field: instance forall k v (h :: v -> *) (kv :: Type.Membership.Internal.Assoc k v). GHC.Real.Fractional (h (Type.Membership.TargetOf kv)) => GHC.Real.Fractional (Data.Extensible.Field.Field h kv)
- Data.Extensible.Field: instance forall k v (h :: v -> *) (kv :: Type.Membership.Internal.Assoc k v). GHC.Real.Integral (h (Type.Membership.TargetOf kv)) => GHC.Real.Integral (Data.Extensible.Field.Field h kv)
- Data.Extensible.Field: instance forall k v (h :: v -> *) (kv :: Type.Membership.Internal.Assoc k v). GHC.Real.Real (h (Type.Membership.TargetOf kv)) => GHC.Real.Real (Data.Extensible.Field.Field h kv)
- Data.Extensible.Field: instance forall k v (h :: v -> *) (kv :: Type.Membership.Internal.Assoc k v). GHC.Real.RealFrac (h (Type.Membership.TargetOf kv)) => GHC.Real.RealFrac (Data.Extensible.Field.Field h kv)
- Data.Extensible.Field: instance forall k v (h :: v -> *) (kv :: Type.Membership.Internal.Assoc k v). Test.QuickCheck.Arbitrary.Arbitrary (h (Type.Membership.TargetOf kv)) => Test.QuickCheck.Arbitrary.Arbitrary (Data.Extensible.Field.Field h kv)
- Data.Extensible.Field: instance forall k v (h :: v -> *) (x :: Type.Membership.Internal.Assoc k v). Data.Vector.Unboxed.Base.Unbox (h (Type.Membership.TargetOf x)) => Data.Vector.Generic.Base.Vector Data.Vector.Unboxed.Base.Vector (Data.Extensible.Field.Field h x)
- Data.Extensible.Field: instance forall k v (h :: v -> *) (x :: Type.Membership.Internal.Assoc k v). Data.Vector.Unboxed.Base.Unbox (h (Type.Membership.TargetOf x)) => Data.Vector.Generic.Mutable.Base.MVector Data.Vector.Unboxed.Base.MVector (Data.Extensible.Field.Field h x)
- Data.Extensible.Field: instance forall k v (h :: v -> *) (x :: Type.Membership.Internal.Assoc k v). Data.Vector.Unboxed.Base.Unbox (h (Type.Membership.TargetOf x)) => Data.Vector.Unboxed.Base.Unbox (Data.Extensible.Field.Field h x)
- Data.Extensible.Field: instance forall k v (h :: v -> *) (x :: Type.Membership.Internal.Assoc k v). Language.Haskell.TH.Syntax.Lift (h (Type.Membership.TargetOf x)) => Language.Haskell.TH.Syntax.Lift (Data.Extensible.Field.Field h x)
- 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.Inclusion: instance forall k1 v1 (xs :: [Type.Membership.Internal.Assoc k1 v1]) (t :: Type.Membership.Internal.Assoc k1 v1) (k2 :: k1) (v2 :: v1). (Data.Extensible.Inclusion.Associated' xs t, t Data.Type.Equality.~ (k2 'Type.Membership.Internal.:> v2)) => Data.Extensible.Inclusion.Associated xs t
- Data.Extensible.Label: instance (k Data.Type.Equality.~ l) => GHC.OverloadedLabels.IsLabel k (Data.Proxy.Proxy l)
- Data.Extensible.Label: instance forall k1 v1 (xs :: [Type.Membership.Internal.Assoc k1 v1]) (k2 :: k1) (v2 :: v1) (h :: v1 -> *) a. (Type.Membership.Internal.Lookup xs k2 v2, Data.Extensible.Wrapper.Wrapper h, Data.Extensible.Wrapper.Repr h v2 Data.Type.Equality.~ a) => GHC.Records.HasField k2 (Data.Extensible.Field.RecordOf h xs) a
- Data.Extensible.Label: instance forall v1 (f :: * -> *) (p :: * -> * -> *) (e :: [Type.Membership.Internal.Assoc GHC.Types.Symbol v1] -> (Type.Membership.Internal.Assoc GHC.Types.Symbol v1 -> *) -> *) (xs :: [Type.Membership.Internal.Assoc GHC.Types.Symbol v1]) (k :: GHC.Types.Symbol) (v2 :: v1) (h :: v1 -> *) rep s t rep'. (Data.Extensible.Class.Extensible f p e, Type.Membership.Internal.Lookup xs k v2, Data.Extensible.Field.Labelling k p, Data.Extensible.Wrapper.Wrapper h, Data.Extensible.Class.ExtensibleConstr e xs (Data.Extensible.Field.Field h) (k 'Type.Membership.Internal.:> v2), rep Data.Type.Equality.~ Data.Extensible.Wrapper.Repr h v2, s Data.Type.Equality.~ e xs (Data.Extensible.Field.Field h), s Data.Type.Equality.~ t, rep Data.Type.Equality.~ rep') => GHC.OverloadedLabels.IsLabel k (p rep (f rep') -> p s (f t))
- Data.Extensible.Struct: instance forall k s (h :: k -> *) a. (s Data.Type.Equality.~ 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 Data.Type.Equality.~ 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 Data.Type.Equality.~ 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 i j (f :: j -> *) (g :: i -> j) (a :: i). Language.Haskell.TH.Syntax.Lift (f (g a)) => Language.Haskell.TH.Syntax.Lift (Data.Extensible.Wrapper.Comp f g a)
+ Data.Extensible: data Proxy (t :: k)
+ Data.Extensible.Bits: instance (Data.Extensible.Bits.FromBits r a, Data.Extensible.Bits.FromBits r b, n GHC.Types.~ (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 v k r (h :: v -> *) (x :: Type.Membership.Internal.Assoc k v). (Data.Bits.Bits r, Data.Extensible.Bits.FromBits r (h (Type.Membership.TargetOf x))) => Data.Extensible.Bits.FromBits r (Data.Extensible.Field.Field h x)
+ Data.Extensible.Class: data Membership (xs :: [k]) (x :: k)
+ Data.Extensible.Dictionary: instance forall k1 k2 (c :: k1 -> GHC.Types.Constraint) (h :: k2 -> k1) (x :: k2). c (h x) => Data.Extensible.Dictionary.Instance1 c h x
+ Data.Extensible.Field: instance forall v k (h :: v -> *) (kv :: Type.Membership.Internal.Assoc k v). Control.DeepSeq.NFData (h (Type.Membership.TargetOf kv)) => Control.DeepSeq.NFData (Data.Extensible.Field.Field h kv)
+ Data.Extensible.Field: instance forall v k (h :: v -> *) (kv :: Type.Membership.Internal.Assoc k v). Data.Aeson.Types.FromJSON.FromJSON (h (Type.Membership.TargetOf kv)) => Data.Aeson.Types.FromJSON.FromJSON (Data.Extensible.Field.Field h kv)
+ Data.Extensible.Field: instance forall v k (h :: v -> *) (kv :: Type.Membership.Internal.Assoc k v). Data.Aeson.Types.ToJSON.ToJSON (h (Type.Membership.TargetOf kv)) => Data.Aeson.Types.ToJSON.ToJSON (Data.Extensible.Field.Field h kv)
+ Data.Extensible.Field: instance forall v k (h :: v -> *) (kv :: Type.Membership.Internal.Assoc k v). Data.Csv.Conversion.FromField (h (Type.Membership.TargetOf kv)) => Data.Csv.Conversion.FromField (Data.Extensible.Field.Field h kv)
+ Data.Extensible.Field: instance forall v k (h :: v -> *) (kv :: Type.Membership.Internal.Assoc k v). Data.Csv.Conversion.ToField (h (Type.Membership.TargetOf kv)) => Data.Csv.Conversion.ToField (Data.Extensible.Field.Field h kv)
+ Data.Extensible.Field: instance forall v k (h :: v -> *) (kv :: Type.Membership.Internal.Assoc k v). Data.Hashable.Class.Hashable (h (Type.Membership.TargetOf kv)) => Data.Hashable.Class.Hashable (Data.Extensible.Field.Field h kv)
+ Data.Extensible.Field: instance forall v k (h :: v -> *) (kv :: Type.Membership.Internal.Assoc k v). Foreign.Storable.Storable (h (Type.Membership.TargetOf kv)) => Foreign.Storable.Storable (Data.Extensible.Field.Field h kv)
+ Data.Extensible.Field: instance forall v k (h :: v -> *) (kv :: Type.Membership.Internal.Assoc k v). GHC.Base.Monoid (h (Type.Membership.TargetOf kv)) => GHC.Base.Monoid (Data.Extensible.Field.Field h kv)
+ Data.Extensible.Field: instance forall v k (h :: v -> *) (kv :: Type.Membership.Internal.Assoc k v). GHC.Base.Semigroup (h (Type.Membership.TargetOf kv)) => GHC.Base.Semigroup (Data.Extensible.Field.Field h kv)
+ Data.Extensible.Field: instance forall v k (h :: v -> *) (kv :: Type.Membership.Internal.Assoc k v). GHC.Classes.Eq (h (Type.Membership.TargetOf kv)) => GHC.Classes.Eq (Data.Extensible.Field.Field h kv)
+ Data.Extensible.Field: instance forall v k (h :: v -> *) (kv :: Type.Membership.Internal.Assoc k v). GHC.Classes.Ord (h (Type.Membership.TargetOf kv)) => GHC.Classes.Ord (Data.Extensible.Field.Field h kv)
+ Data.Extensible.Field: instance forall v k (h :: v -> *) (kv :: Type.Membership.Internal.Assoc k v). GHC.Enum.Bounded (h (Type.Membership.TargetOf kv)) => GHC.Enum.Bounded (Data.Extensible.Field.Field h kv)
+ Data.Extensible.Field: instance forall v k (h :: v -> *) (kv :: Type.Membership.Internal.Assoc k v). GHC.Enum.Enum (h (Type.Membership.TargetOf kv)) => GHC.Enum.Enum (Data.Extensible.Field.Field h kv)
+ Data.Extensible.Field: instance forall v k (h :: v -> *) (kv :: Type.Membership.Internal.Assoc k v). GHC.Float.Floating (h (Type.Membership.TargetOf kv)) => GHC.Float.Floating (Data.Extensible.Field.Field h kv)
+ Data.Extensible.Field: instance forall v k (h :: v -> *) (kv :: Type.Membership.Internal.Assoc k v). GHC.Float.RealFloat (h (Type.Membership.TargetOf kv)) => GHC.Float.RealFloat (Data.Extensible.Field.Field h kv)
+ Data.Extensible.Field: instance forall v k (h :: v -> *) (kv :: Type.Membership.Internal.Assoc k v). GHC.Num.Num (h (Type.Membership.TargetOf kv)) => GHC.Num.Num (Data.Extensible.Field.Field h kv)
+ Data.Extensible.Field: instance forall v k (h :: v -> *) (kv :: Type.Membership.Internal.Assoc k v). GHC.Real.Fractional (h (Type.Membership.TargetOf kv)) => GHC.Real.Fractional (Data.Extensible.Field.Field h kv)
+ Data.Extensible.Field: instance forall v k (h :: v -> *) (kv :: Type.Membership.Internal.Assoc k v). GHC.Real.Integral (h (Type.Membership.TargetOf kv)) => GHC.Real.Integral (Data.Extensible.Field.Field h kv)
+ Data.Extensible.Field: instance forall v k (h :: v -> *) (kv :: Type.Membership.Internal.Assoc k v). GHC.Real.Real (h (Type.Membership.TargetOf kv)) => GHC.Real.Real (Data.Extensible.Field.Field h kv)
+ Data.Extensible.Field: instance forall v k (h :: v -> *) (kv :: Type.Membership.Internal.Assoc k v). GHC.Real.RealFrac (h (Type.Membership.TargetOf kv)) => GHC.Real.RealFrac (Data.Extensible.Field.Field h kv)
+ Data.Extensible.Field: instance forall v k (h :: v -> *) (kv :: Type.Membership.Internal.Assoc k v). Test.QuickCheck.Arbitrary.Arbitrary (h (Type.Membership.TargetOf kv)) => Test.QuickCheck.Arbitrary.Arbitrary (Data.Extensible.Field.Field h kv)
+ Data.Extensible.Field: instance forall v k (h :: v -> *) (x :: Type.Membership.Internal.Assoc k v). Data.Vector.Unboxed.Base.Unbox (h (Type.Membership.TargetOf x)) => Data.Vector.Generic.Base.Vector Data.Vector.Unboxed.Base.Vector (Data.Extensible.Field.Field h x)
+ Data.Extensible.Field: instance forall v k (h :: v -> *) (x :: Type.Membership.Internal.Assoc k v). Data.Vector.Unboxed.Base.Unbox (h (Type.Membership.TargetOf x)) => Data.Vector.Generic.Mutable.Base.MVector Data.Vector.Unboxed.Base.MVector (Data.Extensible.Field.Field h x)
+ Data.Extensible.Field: instance forall v k (h :: v -> *) (x :: Type.Membership.Internal.Assoc k v). Data.Vector.Unboxed.Base.Unbox (h (Type.Membership.TargetOf x)) => Data.Vector.Unboxed.Base.Unbox (Data.Extensible.Field.Field h x)
+ Data.Extensible.Field: instance forall v k (h :: v -> *) (x :: Type.Membership.Internal.Assoc k v). Language.Haskell.TH.Syntax.Lift (h (Type.Membership.TargetOf x)) => Language.Haskell.TH.Syntax.Lift (Data.Extensible.Field.Field h x)
+ Data.Extensible.Field: instance forall v k (h :: v -> *). Data.Extensible.Wrapper.Wrapper h => Data.Extensible.Wrapper.Wrapper (Data.Extensible.Field.Field h)
+ Data.Extensible.Inclusion: instance forall k1 v1 (xs :: [Type.Membership.Internal.Assoc k1 v1]) (t :: Type.Membership.Internal.Assoc k1 v1) (k2 :: k1) (v2 :: v1). (Data.Extensible.Inclusion.Associated' xs t, t GHC.Types.~ (k2 'Type.Membership.Internal.:> v2)) => Data.Extensible.Inclusion.Associated xs t
+ Data.Extensible.Label: instance (k GHC.Types.~ l) => GHC.OverloadedLabels.IsLabel k (Data.Proxy.Proxy l)
+ Data.Extensible.Label: instance forall k1 v1 (xs :: [Type.Membership.Internal.Assoc k1 v1]) (k2 :: k1) (v2 :: v1) (h :: v1 -> *) a. (Type.Membership.Internal.Lookup xs k2 v2, Data.Extensible.Wrapper.Wrapper h, Data.Extensible.Wrapper.Repr h v2 GHC.Types.~ a) => GHC.Records.HasField k2 (Data.Extensible.Field.RecordOf h xs) a
+ Data.Extensible.Label: instance forall v1 (f :: * -> *) (p :: * -> * -> *) (e :: [Type.Membership.Internal.Assoc GHC.Types.Symbol v1] -> (Type.Membership.Internal.Assoc GHC.Types.Symbol v1 -> *) -> *) (xs :: [Type.Membership.Internal.Assoc GHC.Types.Symbol v1]) (k :: GHC.Types.Symbol) (v2 :: v1) (h :: v1 -> *) rep s t rep'. (Data.Extensible.Class.Extensible f p e, Type.Membership.Internal.Lookup xs k v2, Data.Extensible.Field.Labelling k p, Data.Extensible.Wrapper.Wrapper h, Data.Extensible.Class.ExtensibleConstr e xs (Data.Extensible.Field.Field h) (k 'Type.Membership.Internal.:> v2), rep GHC.Types.~ Data.Extensible.Wrapper.Repr h v2, s GHC.Types.~ e xs (Data.Extensible.Field.Field h), s GHC.Types.~ t, rep GHC.Types.~ rep') => GHC.OverloadedLabels.IsLabel k (p rep (f rep') -> p s (f t))
+ Data.Extensible.Struct: instance forall k s (h :: k -> *) a. (s GHC.Types.~ 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.Types.~ 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.Types.~ 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 i (f :: j -> *) (g :: i -> j) (a :: i). Language.Haskell.TH.Syntax.Lift (f (g a)) => Language.Haskell.TH.Syntax.Lift (Data.Extensible.Wrapper.Comp f g a)
- Data.Extensible: Proxy :: Proxy
+ Data.Extensible: Proxy :: Proxy (t :: k)
- Data.Extensible.Bits: BitProd :: r -> BitProd r
+ Data.Extensible.Bits: BitProd :: r -> BitProd r (xs :: [k]) (h :: k -> Type)
- Data.Extensible.Bits: [unBitProd] :: BitProd r -> r
+ Data.Extensible.Bits: [unBitProd] :: BitProd r (xs :: [k]) (h :: k -> Type) -> r
- Data.Extensible.Class: association :: Lookup xs k1 v1 => Membership xs (k1 :> v1)
+ Data.Extensible.Class: association :: Lookup xs k2 v => Membership xs (k2 :> v)
- Data.Extensible.Class: class Lookup (xs :: [Assoc k v]) (k1 :: k) (v1 :: v) | k1 xs -> v1
+ Data.Extensible.Class: class Lookup (xs :: [Assoc k k1]) (k2 :: k) (v :: k1) | k2 xs -> v
- Data.Extensible.Class: compareMembership :: () => Membership xs x -> Membership xs y -> Either Ordering (x :~: y)
+ Data.Extensible.Class: compareMembership :: forall k (xs :: [k]) (x :: k) (y :: k). Membership xs x -> Membership xs y -> Either Ordering (x :~: y)
- Data.Extensible.Class: leadership :: () => Membership (x : xs) x
+ Data.Extensible.Class: leadership :: forall k (x :: k) (xs :: [k]). Membership (x : xs) x
- Data.Extensible.Class: type (>:) = ((:>) :: k -> v -> Assoc k v)
+ Data.Extensible.Class: type (>:) = '(:>) :: k -> v -> Assoc k v
- Data.Extensible.Field: Field :: h (TargetOf kv) -> Field
+ Data.Extensible.Field: Field :: h (TargetOf kv) -> Field (h :: v -> Type) (kv :: Assoc k v)
- Data.Extensible.Field: [getField] :: Field -> h (TargetOf kv)
+ Data.Extensible.Field: [getField] :: Field (h :: v -> Type) (kv :: Assoc k v) -> h (TargetOf kv)
- Data.Extensible.Field: class pv TargetOf kv => TargetIs (pv :: k1 -> Constraint) (kv :: Assoc k k1)
+ Data.Extensible.Field: class pv TargetOf kv => TargetIs (pv :: k -> Constraint) (kv :: Assoc k1 k)
- Data.Extensible.Field: proxyKeyOf :: () => proxy kv -> Proxy (KeyOf kv)
+ Data.Extensible.Field: proxyKeyOf :: forall k v proxy (kv :: Assoc k v). proxy kv -> Proxy (KeyOf kv)
- Data.Extensible.Field: proxyTargetOf :: () => proxy kv -> Proxy (TargetOf kv)
+ Data.Extensible.Field: proxyTargetOf :: forall k1 k2 proxy (kv :: Assoc k1 k2). proxy kv -> Proxy (TargetOf kv)
- Data.Extensible.Field: stringKeyOf :: (IsString a, KnownSymbol (KeyOf kv)) => proxy kv -> a
+ Data.Extensible.Field: stringKeyOf :: forall v a (kv :: Assoc Symbol v) proxy. (IsString a, KnownSymbol (KeyOf kv)) => proxy kv -> a
- Data.Extensible.Wrapper: Comp :: f (g a) -> Comp
+ Data.Extensible.Wrapper: Comp :: f (g a) -> Comp (f :: j -> Type) (g :: i -> j) (a :: i)
- Data.Extensible.Wrapper: [getComp] :: Comp -> f (g a)
+ Data.Extensible.Wrapper: [getComp] :: Comp (f :: j -> Type) (g :: i -> j) (a :: i) -> f (g a)
Files
- .travis.yml +0/−110
- CHANGELOG.md +7/−0
- README.md +2/−1
- extensible.cabal +5/−6
- src/Data/Extensible/Dictionary.hs +5/−69
- src/Data/Extensible/Tangle.hs +5/−0
− .travis.yml
@@ -1,110 +0,0 @@-# This Travis job script has been generated by a script via-#-# haskell-ci './extensible.cabal'-#-# For more information, see https://github.com/haskell-CI/haskell-ci-#-# version: 0.2.1-#-language: c-dist: xenial--git:- submodules: false # whether to recursively clone submodules--cache:- directories:- - $HOME/.cabal/packages- - $HOME/.cabal/store--before_cache:- - rm -fv $CABALHOME/packages/hackage.haskell.org/build-reports.log- # remove files that are regenerated by 'cabal update'- - rm -fv $CABALHOME/packages/hackage.haskell.org/00-index.*- - rm -fv $CABALHOME/packages/hackage.haskell.org/*.json- - rm -fv $CABALHOME/packages/hackage.haskell.org/01-index.cache- - rm -fv $CABALHOME/packages/hackage.haskell.org/01-index.tar- - rm -fv $CABALHOME/packages/hackage.haskell.org/01-index.tar.idx-- - rm -rfv $CABALHOME/packages/head.hackage--matrix:- include:- - compiler: "ghc-8.6.3"- addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.4,ghc-8.6.3], sources: [hvr-ghc]}}- - compiler: "ghc-8.4.4"- addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.4,ghc-8.4.4], sources: [hvr-ghc]}}--before_install:- - HC=/opt/ghc/bin/${CC}- - HCPKG=${HC/ghc/ghc-pkg}- - unset CC- - CABAL=/opt/ghc/bin/cabal- - CABALHOME=$HOME/.cabal- - export PATH="$CABALHOME/bin:$PATH"- - ROOTDIR=$(pwd)- - HCNUMVER=$(( $(${HC} --numeric-version|sed -E 's/([0-9]+)\.([0-9]+)\.([0-9]+).*/\1 * 10000 + \2 * 100 + \3/') ))- - echo $HCNUMVER--install:- - ${CABAL} --version- - echo "$(${HC} --version) [$(${HC} --print-project-git-commit-id 2> /dev/null || echo '?')]"- - TEST=--enable-tests- - BENCH=--enable-benchmarks- - GHCHEAD=${GHCHEAD-false}- - travis_retry ${CABAL} update -v- - sed -i.bak 's/^jobs:/-- jobs:/' $CABALHOME/config- - rm -fv cabal.project cabal.project.local- - grep -Ev -- '^\s*--' $CABALHOME/config | grep -Ev '^\s*$'- - rm -f cabal.project- - touch cabal.project- - "printf 'packages: \".\"\\n' >> cabal.project"- - "printf 'write-ghc-environment-files: always\\n' >> cabal.project"- - touch cabal.project.local- - "for pkg in $($HCPKG list --simple-output); do echo $pkg | sed 's/-[^-]*$//' | grep -vE -- '^(extensible)$' | sed 's/^/constraints: /' | sed 's/$/ installed/' >> cabal.project.local; done"- - cat cabal.project || true- - cat cabal.project.local || true- - if [ -f "./configure.ac" ]; then (cd "." && autoreconf -i); fi- - rm -f cabal.project.freeze- - ${CABAL} new-freeze -w ${HC} ${TEST} ${BENCH} --project-file="cabal.project" --dry- - "cat \"cabal.project.freeze\" | sed -E 's/^(constraints: *| *)//' | sed 's/any.//'"- - rm "cabal.project.freeze"- - ${CABAL} new-build -w ${HC} ${TEST} ${BENCH} --project-file="cabal.project" --dep -j2 all- - ${CABAL} new-build -w ${HC} --disable-tests --disable-benchmarks --project-file="cabal.project" --dep -j2 all- - rm -rf .ghc.environment.* "."/dist- - DISTDIR=$(mktemp -d /tmp/dist-test.XXXX)--# Here starts the actual work to be performed for the package under test;-# any command which exits with a non-zero exit code causes the build to fail.-script:- # test that source-distributions can be generated- - ${CABAL} new-sdist all- - mv dist-newstyle/sdist/*.tar.gz ${DISTDIR}/- - cd ${DISTDIR} || false- - find . -maxdepth 1 -name '*.tar.gz' -exec tar -xvf '{}' \;- - rm -f cabal.project- - touch cabal.project- - "printf 'packages: \"extensible-*/*.cabal\"\\n' >> cabal.project"- - "printf 'write-ghc-environment-files: always\\n' >> cabal.project"- - touch cabal.project.local- - "for pkg in $($HCPKG list --simple-output); do echo $pkg | sed 's/-[^-]*$//' | grep -vE -- '^(extensible)$' | sed 's/^/constraints: /' | sed 's/$/ installed/' >> cabal.project.local; done"- - cat cabal.project || true- - cat cabal.project.local || true- # this builds all libraries and executables (without tests/benchmarks)- - ${CABAL} new-build -w ${HC} --disable-tests --disable-benchmarks all-- # build & run tests, build benchmarks- - ${CABAL} new-build -w ${HC} ${TEST} ${BENCH} all- - if [ "x$TEST" = "x--enable-tests" ]; then ${CABAL} new-test -w ${HC} ${TEST} ${BENCH} all; fi-- # cabal check- - (cd extensible-* && ${CABAL} check)-- # haddock- - ${CABAL} new-haddock -w ${HC} ${TEST} ${BENCH} all-- # Build without installed constraints for packages in global-db- - rm -f cabal.project.local; ${CABAL} new-build -w ${HC} --disable-tests --disable-benchmarks all;--# REGENDATA ["./extensible.cabal"]-# EOF
CHANGELOG.md view
@@ -1,3 +1,10 @@+0.7.1+------------------------------------------------+* Removed `vector` and `prettyprinter` orphans+* Deprecated `Data.Extensible.Tangle`; use [tangle](https://hackage.haskell.org/package/tangle)+* `parseJSON` gives more informative failure messages on failure+* Supported `barbies ^>= 2`+ 0.7 ------------------------------------------------- * Moved `Data.Extensible.Effect` into new `extensible-skeleton` package
README.md view
@@ -1,7 +1,8 @@  -[](https://travis-ci.org/fumieval/extensible)+ [](https://hackage.haskell.org/package/extensible)+[](https://discord.gg/DG93Tgs) This package provides extensible poly-kinded records, variants and effects.
extensible.cabal view
@@ -1,6 +1,6 @@ cabal-version: 2.4 name: extensible-version: 0.7+version: 0.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@@ -16,12 +16,11 @@ category: Data, Records build-type: Simple stability: experimental-Tested-With: GHC == 8.4.4, GHC == 8.6.3+Tested-With: GHC == 8.4.4, GHC == 8.6.5, GHC == 8.8.2 extra-source-files: examples/*.hs .gitignore- .travis.yml README.md CHANGELOG.md @@ -81,7 +80,7 @@ , hashable , membership , monad-skeleton >= 0.1.2- , prettyprinter+ , prettyprinter >= 1.2.1 && <2 , primitive , profunctors , QuickCheck@@ -92,9 +91,9 @@ , th-lift , transformers , unordered-containers- , vector+ , vector >= 0.12.1.2 if flag(barbies)- build-depends: barbies+ build-depends: barbies ^>= 2 cpp-options: -DBARBIES if flag(cassava) build-depends: cassava
src/Data/Extensible/Dictionary.hs view
@@ -21,6 +21,7 @@ module Data.Extensible.Dictionary (library, WrapForall, Instance1, And) where import Control.DeepSeq import qualified Data.Aeson as J+import qualified Data.Aeson.Types as J #ifdef CASSAVA import qualified Data.Csv as Csv import qualified Data.ByteString.Char8 as BC@@ -35,7 +36,6 @@ import Data.Constraint import Data.Extensible.Struct import Data.Extensible.Wrapper-import Data.Functor.Identity import Data.Hashable import qualified Data.HashMap.Strict as HM import Data.Text.Prettyprint.Doc@@ -52,8 +52,7 @@ import Type.Membership #ifdef BARBIES-import Data.Barbie-import qualified Data.Barbie.Constraints as B+import Barbies import Data.Functor.Product #endif @@ -71,14 +70,6 @@ (\i r -> showsPrec 0 (hlookup i xs) . showString " <: " . r) (showString "nil") -#if !MIN_VERSION_prettyprinter(1,2,1)-instance Pretty a => Pretty (Identity a) where- pretty = pretty . runIdentity--instance Pretty a => Pretty (Const a b) where- pretty = pretty . getConst-#endif- instance WrapForall Pretty h xs => Pretty (xs :& h) where pretty xs = align $ encloseSep (flatAlt "" "{ ") (flatAlt "" " }") (flatAlt "" "; ")@@ -163,9 +154,7 @@ basicUnsafeNew n = fmap MV_Product $ hgenerateFor (Proxy :: Proxy (Instance1 U.Unbox h)) (const $ Comp <$> M.basicUnsafeNew n)-#if MIN_VERSION_vector(0,11,0) 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@@ -221,7 +210,7 @@ parseJSON = J.withObject "Object" $ \v -> hgenerateFor (Proxy :: Proxy (KeyTargetAre KnownSymbol (Instance1 J.FromJSON h))) $ \m -> let k = symbolVal (proxyKeyOf m)- in fmap Field $ J.parseJSON $ maybe J.Null id $ HM.lookup (T.pack k) v+ in fmap Field $ J.prependFailure ("parsing #" ++ k ++ ": ") $ J.parseJSON $ maybe J.Null id $ HM.lookup (T.pack k) v instance Forall (KeyTargetAre KnownSymbol (Instance1 J.ToJSON h)) xs => J.ToJSON (xs :& Field h) where toJSON = J.Object . hfoldlWithIndexFor@@ -300,56 +289,6 @@ class c (h x) => Instance1 c h x instance c (h x) => Instance1 c h x -#if !MIN_VERSION_vector(0,12,1)-newtype instance U.MVector s (Identity a) = MV_Identity (U.MVector s a)-newtype instance U.Vector (Identity a) = V_Identity (U.Vector a)--instance (U.Unbox a) => M.MVector U.MVector (Identity a) where- {-# INLINE basicLength #-}- {-# INLINE basicUnsafeSlice #-}- {-# INLINE basicOverlaps #-}- {-# INLINE basicUnsafeNew #-}- {-# INLINE basicUnsafeReplicate #-}- {-# INLINE basicUnsafeRead #-}- {-# INLINE basicUnsafeWrite #-}- {-# INLINE basicClear #-}- {-# INLINE basicSet #-}- {-# INLINE basicUnsafeCopy #-}- {-# INLINE basicUnsafeGrow #-}- basicLength (MV_Identity v) = M.basicLength v- basicUnsafeSlice i n (MV_Identity v) = MV_Identity $ M.basicUnsafeSlice i n v- basicOverlaps (MV_Identity v1) (MV_Identity v2) = M.basicOverlaps v1 v2- basicUnsafeNew n = MV_Identity <$> M.basicUnsafeNew n-#if MIN_VERSION_vector(0,11,0)- basicInitialize (MV_Identity v) = M.basicInitialize v- {-# INLINE basicInitialize #-}-#endif- basicUnsafeReplicate n (Identity x) = MV_Identity <$> M.basicUnsafeReplicate n x- basicUnsafeRead (MV_Identity v) i = Identity <$> M.basicUnsafeRead v i- basicUnsafeWrite (MV_Identity v) i (Identity x) = M.basicUnsafeWrite v i x- basicClear (MV_Identity v) = M.basicClear v- basicSet (MV_Identity v) (Identity x) = M.basicSet v x- basicUnsafeCopy (MV_Identity v1) (MV_Identity v2) = M.basicUnsafeCopy v1 v2- basicUnsafeMove (MV_Identity v1) (MV_Identity v2) = M.basicUnsafeMove v1 v2- basicUnsafeGrow (MV_Identity v) n = MV_Identity <$> M.basicUnsafeGrow v n--instance (U.Unbox a) => G.Vector U.Vector (Identity a) where- {-# INLINE basicUnsafeFreeze #-}- {-# INLINE basicUnsafeThaw #-}- {-# INLINE basicLength #-}- {-# INLINE basicUnsafeSlice #-}- {-# INLINE basicUnsafeIndexM #-}- basicUnsafeFreeze (MV_Identity v) = V_Identity <$> G.basicUnsafeFreeze v- basicUnsafeThaw (V_Identity v) = MV_Identity <$> G.basicUnsafeThaw v- basicLength (V_Identity v) = G.basicLength v- basicUnsafeSlice i n (V_Identity v) = V_Identity $ G.basicUnsafeSlice i n v- basicUnsafeIndexM (V_Identity v) i = Identity <$> G.basicUnsafeIndexM v i- basicUnsafeCopy (MV_Identity mv) (V_Identity v) = G.basicUnsafeCopy mv v--instance (U.Unbox a) => U.Unbox (Identity a)--#endif- #ifdef BARBIES instance FunctorB ((:&) xs) where bmap = hmap@@ -363,9 +302,9 @@ instance TraversableB ((:/) xs) where btraverse f (EmbedAt i x) = EmbedAt i <$> f x -instance Generate xs => ProductB ((:&) xs) where+instance Generate xs => ApplicativeB ((:&) xs) where bprod = hzipWith Pair- buniq = hrepeat+ bpure = hrepeat instance ConstraintsB ((:&) xs) where type AllB c ((:&) xs) = Forall c xs@@ -375,7 +314,4 @@ type AllB c ((:/) xs) = Forall c xs baddDicts (EmbedAt i x) = EmbedAt i (Pair (hlookup i bdicts) x) -instance Generate xs => ProductBC ((:&) xs) where- bdicts :: forall c ys. Forall c ys => ys :& B.Dict c- bdicts = hrepeatFor (Proxy :: Proxy c) $ B.Dict #endif
src/Data/Extensible/Tangle.hs view
@@ -32,6 +32,7 @@ newtype TangleT xs h m a = TangleT { unTangleT :: RWST (xs :& Comp (TangleT xs h m) h) () (xs :& Nullable h) m a } deriving (Functor, Applicative, Monad)+{-# DEPRECATED TangleT "Use the tangle package instead" #-} instance MonadTrans (TangleT xs h) where lift = TangleT . lift@@ -48,6 +49,7 @@ => FieldName k -> TangleT xs h m (Repr h (k ':> v)) lasso _ = view _Wrapper <$> hitchAt (association :: Membership xs (k ':> v)) {-# INLINE lasso #-}+{-# DEPRECATED lasso "Use the tangle package instead" #-} -- | Take a value from the tangles. The result is memoized. hitchAt :: Monad m => Membership xs x -> TangleT xs h m (h x)@@ -60,6 +62,7 @@ a <- unTangleT $ getComp $ hlookup k tangles modify $ over (pieceAt k) $ const $ Nullable $ Just a return a+{-# DEPRECATED hitchAt "Use the tangle package instead" #-} -- | Run a 'TangleT' action and return the result and the calculated values. runTangleT :: Monad m@@ -70,6 +73,7 @@ runTangleT tangles rec0 (TangleT m) = (\(a, s, _) -> (a, s)) <$> runRWST m tangles rec0 {-# INLINE runTangleT #-}+{-# DEPRECATED runTangleT "Use the tangle package instead" #-} -- | Run a 'TangleT' action. evalTangleT :: Monad m@@ -79,6 +83,7 @@ -> m a evalTangleT tangles rec0 (TangleT m) = fst <$> evalRWST m tangles rec0 {-# INLINE evalTangleT #-}+{-# DEPRECATED evalTangleT "Use the tangle package instead" #-} -- | Run tangles and collect all the results as a 'Record'. runTangles :: Monad m