packages feed

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
@@ -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 @@ ![logo](https://github.com/fumieval/extensible/blob/master/artwork/logo.png?raw=true) -[![Build Status](https://travis-ci.org/fumieval/extensible.svg?branch=master)](https://travis-ci.org/fumieval/extensible)+![Haskell CI](https://github.com/fumieval/extensible/workflows/Haskell%20CI/badge.svg) [![Hackage](https://img.shields.io/hackage/v/extensible.svg)](https://hackage.haskell.org/package/extensible)+[![Discord](https://img.shields.io/discord/664807830116892674?color=%237095ec&label=Discord&style=plastic)](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