red-black-record 2.1.0.2 → 2.1.0.3
raw patch · 4 files changed
+12/−8 lines, 4 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- Data.RBR.Internal: instance (GHC.Classes.Eq k, GHC.Classes.Eq v) => GHC.Classes.Eq (Data.RBR.Internal.Map k v)
- Data.RBR.Internal: instance (GHC.Show.Show k, GHC.Show.Show v) => GHC.Show.Show (Data.RBR.Internal.Map k v)
- Data.RBR.Internal: instance forall k v (c :: k -> v -> GHC.Types.Constraint). Data.RBR.Internal.KeysValuesAll c 'Data.RBR.Internal.E
- Data.RBR.Internal: instance forall k1 (k2 :: GHC.Types.Symbol) (v :: k1). (GHC.TypeLits.KnownSymbol k2, Data.Typeable.Internal.Typeable v) => Data.RBR.Internal.KnownKeyTypeableValue k2 v
- Data.RBR.Internal: instance forall k1 v1 (c :: k1 -> v1 -> GHC.Types.Constraint) (k2 :: k1) (v2 :: v1) (left :: Data.RBR.Internal.Map k1 v1) (right :: Data.RBR.Internal.Map k1 v1) (color :: Data.RBR.Internal.Color). (c k2 v2, Data.RBR.Internal.KeysValuesAll c left, Data.RBR.Internal.KeysValuesAll c right) => Data.RBR.Internal.KeysValuesAll c ('Data.RBR.Internal.N color left k2 v2 right)
- Data.RBR.Internal: instance forall v (left1 :: Data.RBR.Internal.Map GHC.Types.Symbol v) (k1 :: GHC.Types.Symbol) (v1 :: v) (k2 :: GHC.Types.Symbol) (v2 :: v) (right2 :: Data.RBR.Internal.Map GHC.Types.Symbol v). Data.RBR.Internal.BalanceableL left1 k1 v1 ('Data.RBR.Internal.N 'Data.RBR.Internal.B 'Data.RBR.Internal.E k2 v2 right2) => Data.RBR.Internal.FuseableHelper2 'Data.RBR.Internal.E ('Data.RBR.Internal.N 'Data.RBR.Internal.B left1 k1 v1 'Data.RBR.Internal.E) ('Data.RBR.Internal.N 'Data.RBR.Internal.B 'Data.RBR.Internal.E k2 v2 right2)
- Data.RBR.Internal: instance forall v (left1 :: Data.RBR.Internal.Map GHC.Types.Symbol v) (k1 :: GHC.Types.Symbol) (v1 :: v) (right1 :: Data.RBR.Internal.Map GHC.Types.Symbol v) (left2 :: Data.RBR.Internal.Map GHC.Types.Symbol v) (k2 :: GHC.Types.Symbol) (v2 :: v) (right2 :: Data.RBR.Internal.Map GHC.Types.Symbol v). Data.RBR.Internal.Fuseable ('Data.RBR.Internal.N 'Data.RBR.Internal.B left1 k1 v1 right1) left2 => Data.RBR.Internal.Fuseable ('Data.RBR.Internal.N 'Data.RBR.Internal.B left1 k1 v1 right1) ('Data.RBR.Internal.N 'Data.RBR.Internal.R left2 k2 v2 right2)
- Data.RBR.Internal: instance forall v (right1 :: Data.RBR.Internal.Map GHC.Types.Symbol v) (left2 :: Data.RBR.Internal.Map GHC.Types.Symbol v) (fused :: Data.RBR.Internal.Map GHC.Types.Symbol v) (left1 :: Data.RBR.Internal.Map GHC.Types.Symbol v) (k1 :: GHC.Types.Symbol) (v1 :: v) (k2 :: GHC.Types.Symbol) (v2 :: v) (right2 :: Data.RBR.Internal.Map GHC.Types.Symbol v). (Data.RBR.Internal.Fuseable right1 left2, Data.RBR.Internal.Fuse right1 left2 Data.Type.Equality.~ fused, Data.RBR.Internal.FuseableHelper1 fused ('Data.RBR.Internal.N 'Data.RBR.Internal.R left1 k1 v1 right1) ('Data.RBR.Internal.N 'Data.RBR.Internal.R left2 k2 v2 right2)) => Data.RBR.Internal.Fuseable ('Data.RBR.Internal.N 'Data.RBR.Internal.R left1 k1 v1 right1) ('Data.RBR.Internal.N 'Data.RBR.Internal.R left2 k2 v2 right2)
- Data.RBR.Internal: instance forall v (right1 :: Data.RBR.Internal.Map GHC.Types.Symbol v) (left2 :: Data.RBR.Internal.Map GHC.Types.Symbol v) (fused :: Data.RBR.Internal.Map GHC.Types.Symbol v) (left1 :: Data.RBR.Internal.Map GHC.Types.Symbol v) (k1 :: GHC.Types.Symbol) (v1 :: v) (k2 :: GHC.Types.Symbol) (v2 :: v) (right2 :: Data.RBR.Internal.Map GHC.Types.Symbol v). (Data.RBR.Internal.Fuseable right1 left2, Data.RBR.Internal.Fuse right1 left2 Data.Type.Equality.~ fused, Data.RBR.Internal.FuseableHelper2 fused ('Data.RBR.Internal.N 'Data.RBR.Internal.B left1 k1 v1 right1) ('Data.RBR.Internal.N 'Data.RBR.Internal.B left2 k2 v2 right2)) => Data.RBR.Internal.Fuseable ('Data.RBR.Internal.N 'Data.RBR.Internal.B left1 k1 v1 right1) ('Data.RBR.Internal.N 'Data.RBR.Internal.B left2 k2 v2 right2)
- Data.RBR.Internal: instance forall v (right1 :: Data.RBR.Internal.Map GHC.Types.Symbol v) (left2 :: Data.RBR.Internal.Map GHC.Types.Symbol v) (k2 :: GHC.Types.Symbol) (v2 :: v) (right2 :: Data.RBR.Internal.Map GHC.Types.Symbol v) (left1 :: Data.RBR.Internal.Map GHC.Types.Symbol v) (k1 :: GHC.Types.Symbol) (v1 :: v). Data.RBR.Internal.Fuseable right1 ('Data.RBR.Internal.N 'Data.RBR.Internal.B left2 k2 v2 right2) => Data.RBR.Internal.Fuseable ('Data.RBR.Internal.N 'Data.RBR.Internal.R left1 k1 v1 right1) ('Data.RBR.Internal.N 'Data.RBR.Internal.B left2 k2 v2 right2)
- Data.RBR.Internal: instance forall v (right1 :: Data.RBR.Internal.Map GHC.Types.Symbol v) (left2 :: Data.RBR.Internal.Map GHC.Types.Symbol v) (s1 :: Data.RBR.Internal.Map GHC.Types.Symbol v) (z :: GHC.Types.Symbol) (zv :: v) (s2 :: Data.RBR.Internal.Map GHC.Types.Symbol v) (left1 :: Data.RBR.Internal.Map GHC.Types.Symbol v) (k1 :: GHC.Types.Symbol) (v1 :: v) (k2 :: GHC.Types.Symbol) (v2 :: v) (right2 :: Data.RBR.Internal.Map GHC.Types.Symbol v). (Data.RBR.Internal.Fuseable right1 left2, Data.RBR.Internal.Fuse right1 left2 Data.Type.Equality.~ 'Data.RBR.Internal.N 'Data.RBR.Internal.B s1 z zv s2) => Data.RBR.Internal.FuseableHelper1 ('Data.RBR.Internal.N 'Data.RBR.Internal.B s1 z zv s2) ('Data.RBR.Internal.N 'Data.RBR.Internal.R left1 k1 v1 right1) ('Data.RBR.Internal.N 'Data.RBR.Internal.R left2 k2 v2 right2)
- Data.RBR.Internal: instance forall v (right1 :: Data.RBR.Internal.Map GHC.Types.Symbol v) (left2 :: Data.RBR.Internal.Map GHC.Types.Symbol v) (s1 :: Data.RBR.Internal.Map GHC.Types.Symbol v) (z :: GHC.Types.Symbol) (zv :: v) (s2 :: Data.RBR.Internal.Map GHC.Types.Symbol v) (left1 :: Data.RBR.Internal.Map GHC.Types.Symbol v) (k1 :: GHC.Types.Symbol) (v1 :: v) (k2 :: GHC.Types.Symbol) (v2 :: v) (right2 :: Data.RBR.Internal.Map GHC.Types.Symbol v). (Data.RBR.Internal.Fuseable right1 left2, Data.RBR.Internal.Fuse right1 left2 Data.Type.Equality.~ 'Data.RBR.Internal.N 'Data.RBR.Internal.B s1 z zv s2, Data.RBR.Internal.BalanceableL left1 k1 v1 ('Data.RBR.Internal.N 'Data.RBR.Internal.B ('Data.RBR.Internal.N 'Data.RBR.Internal.B s1 z zv s2) k2 v2 right2)) => Data.RBR.Internal.FuseableHelper2 ('Data.RBR.Internal.N 'Data.RBR.Internal.B s1 z zv s2) ('Data.RBR.Internal.N 'Data.RBR.Internal.B left1 k1 v1 right1) ('Data.RBR.Internal.N 'Data.RBR.Internal.B left2 k2 v2 right2)
- Data.RBR.Internal: instance forall v (right1 :: Data.RBR.Internal.Map GHC.Types.Symbol v) (left2 :: Data.RBR.Internal.Map GHC.Types.Symbol v) (s1 :: Data.RBR.Internal.Map GHC.Types.Symbol v) (z :: GHC.Types.Symbol) (zv :: v) (s2 :: Data.RBR.Internal.Map GHC.Types.Symbol v) (left1 :: Data.RBR.Internal.Map GHC.Types.Symbol v) (k1 :: GHC.Types.Symbol) (v1 :: v) (k2 :: GHC.Types.Symbol) (v2 :: v) (right2 :: Data.RBR.Internal.Map GHC.Types.Symbol v). (Data.RBR.Internal.Fuseable right1 left2, Data.RBR.Internal.Fuse right1 left2 Data.Type.Equality.~ 'Data.RBR.Internal.N 'Data.RBR.Internal.R s1 z zv s2) => Data.RBR.Internal.FuseableHelper1 ('Data.RBR.Internal.N 'Data.RBR.Internal.R s1 z zv s2) ('Data.RBR.Internal.N 'Data.RBR.Internal.R left1 k1 v1 right1) ('Data.RBR.Internal.N 'Data.RBR.Internal.R left2 k2 v2 right2)
- Data.RBR.Internal: instance forall v (right1 :: Data.RBR.Internal.Map GHC.Types.Symbol v) (left2 :: Data.RBR.Internal.Map GHC.Types.Symbol v) (s1 :: Data.RBR.Internal.Map GHC.Types.Symbol v) (z :: GHC.Types.Symbol) (zv :: v) (s2 :: Data.RBR.Internal.Map GHC.Types.Symbol v) (left1 :: Data.RBR.Internal.Map GHC.Types.Symbol v) (k1 :: GHC.Types.Symbol) (v1 :: v) (k2 :: GHC.Types.Symbol) (v2 :: v) (right2 :: Data.RBR.Internal.Map GHC.Types.Symbol v). (Data.RBR.Internal.Fuseable right1 left2, Data.RBR.Internal.Fuse right1 left2 Data.Type.Equality.~ 'Data.RBR.Internal.N 'Data.RBR.Internal.R s1 z zv s2) => Data.RBR.Internal.FuseableHelper2 ('Data.RBR.Internal.N 'Data.RBR.Internal.R s1 z zv s2) ('Data.RBR.Internal.N 'Data.RBR.Internal.B left1 k1 v1 right1) ('Data.RBR.Internal.N 'Data.RBR.Internal.B left2 k2 v2 right2)
- Data.RBR.Internal: instance forall v (t2 :: Data.RBR.Internal.Map GHC.Types.Symbol v) (z :: GHC.Types.Symbol) (zv :: v) (t3 :: Data.RBR.Internal.Map GHC.Types.Symbol v) (g :: Data.RBR.Internal.Map GHC.Types.Symbol v) (t1 :: Data.RBR.Internal.Map GHC.Types.Symbol v) (y :: GHC.Types.Symbol) (yv :: v). ('Data.RBR.Internal.N 'Data.RBR.Internal.R t2 z zv t3 Data.Type.Equality.~ g, Data.RBR.Internal.BalanceableHelper (Data.RBR.Internal.ShouldBalance t1 g) t1 y yv g) => Data.RBR.Internal.BalanceableHelperL 'GHC.Types.True t1 y yv ('Data.RBR.Internal.N 'Data.RBR.Internal.B t2 z zv t3)
- Data.RBR.Internal: instance forall v1 (k :: GHC.Types.Symbol) (k' :: GHC.Types.Symbol) (ordering :: GHC.Types.Ordering) (v2 :: v1) (color :: Data.RBR.Internal.Color) (left :: Data.RBR.Internal.Map GHC.Types.Symbol v1) (v' :: v1) (right :: Data.RBR.Internal.Map GHC.Types.Symbol v1). (GHC.TypeLits.CmpSymbol k k' Data.Type.Equality.~ ordering, Data.RBR.Internal.InsertableHelper2 ordering k v2 color left k' v' right) => Data.RBR.Internal.InsertableHelper1 k v2 ('Data.RBR.Internal.N color left k' v' right)
- Data.RBR.Internal: instance forall v1 (k :: GHC.Types.Symbol) (v2 :: v1) (leftz :: Data.RBR.Internal.Map GHC.Types.Symbol v1) (kz :: GHC.Types.Symbol) (vz :: v1) (rightz :: Data.RBR.Internal.Map GHC.Types.Symbol v1) (kx :: GHC.Types.Symbol) (vx :: v1) (right :: Data.RBR.Internal.Map GHC.Types.Symbol v1). Data.RBR.Internal.Delable k v2 ('Data.RBR.Internal.N 'Data.RBR.Internal.R leftz kz vz rightz) => Data.RBR.Internal.DelableL k v2 ('Data.RBR.Internal.N 'Data.RBR.Internal.R leftz kz vz rightz) kx vx right
- Data.RBR.Internal: instance forall v1 (k :: GHC.Types.Symbol) (v2 :: v1) (leftz :: Data.RBR.Internal.Map GHC.Types.Symbol v1) (kz :: GHC.Types.Symbol) (vz :: v1) (rightz :: Data.RBR.Internal.Map GHC.Types.Symbol v1) (left :: Data.RBR.Internal.Map GHC.Types.Symbol v1) (kx :: GHC.Types.Symbol) (vx :: v1). Data.RBR.Internal.Delable k v2 ('Data.RBR.Internal.N 'Data.RBR.Internal.R leftz kz vz rightz) => Data.RBR.Internal.DelableR k v2 left kx vx ('Data.RBR.Internal.N 'Data.RBR.Internal.R leftz kz vz rightz)
- Data.RBR.Internal: instance forall v1 (kx :: GHC.Types.Symbol) (k :: GHC.Types.Symbol) (ordering :: GHC.Types.Ordering) (v2 :: v1) (left :: Data.RBR.Internal.Map GHC.Types.Symbol v1) (vx :: v1) (right :: Data.RBR.Internal.Map GHC.Types.Symbol v1) (color :: Data.RBR.Internal.Color). (GHC.TypeLits.CmpSymbol kx k Data.Type.Equality.~ ordering, Data.RBR.Internal.DelableHelper ordering k v2 left kx vx right) => Data.RBR.Internal.Delable k v2 ('Data.RBR.Internal.N color left kx vx right)
- Data.RBR.Internal: instance forall v1 (leftz :: Data.RBR.Internal.Map GHC.Types.Symbol v1) (kz :: GHC.Types.Symbol) (vz :: v1) (rightz :: Data.RBR.Internal.Map GHC.Types.Symbol v1) (g :: Data.RBR.Internal.Map GHC.Types.Symbol v1) (k :: GHC.Types.Symbol) (v2 :: v1) (deleted :: Data.RBR.Internal.Map GHC.Types.Symbol v1) (kx :: GHC.Types.Symbol) (vx :: v1) (right :: Data.RBR.Internal.Map GHC.Types.Symbol v1). ('Data.RBR.Internal.N 'Data.RBR.Internal.B leftz kz vz rightz Data.Type.Equality.~ g, Data.RBR.Internal.Delable k v2 g, Data.RBR.Internal.Del k v2 g Data.Type.Equality.~ deleted, Data.RBR.Internal.BalanceableL deleted kx vx right) => Data.RBR.Internal.DelableL k v2 ('Data.RBR.Internal.N 'Data.RBR.Internal.B leftz kz vz rightz) kx vx right
- Data.RBR.Internal: instance forall v1 (leftz :: Data.RBR.Internal.Map GHC.Types.Symbol v1) (kz :: GHC.Types.Symbol) (vz :: v1) (rightz :: Data.RBR.Internal.Map GHC.Types.Symbol v1) (g :: Data.RBR.Internal.Map GHC.Types.Symbol v1) (k :: GHC.Types.Symbol) (v2 :: v1) (deleted :: Data.RBR.Internal.Map GHC.Types.Symbol v1) (left :: Data.RBR.Internal.Map GHC.Types.Symbol v1) (kx :: GHC.Types.Symbol) (vx :: v1). ('Data.RBR.Internal.N 'Data.RBR.Internal.B leftz kz vz rightz Data.Type.Equality.~ g, Data.RBR.Internal.Delable k v2 g, Data.RBR.Internal.Del k v2 g Data.Type.Equality.~ deleted, Data.RBR.Internal.BalanceableR left kx vx deleted) => Data.RBR.Internal.DelableR k v2 left kx vx ('Data.RBR.Internal.N 'Data.RBR.Internal.B leftz kz vz rightz)
- Data.RBR.Internal: instance forall v1 (start :: [v1]) (colorR :: Data.RBR.Internal.Color) (leftR :: Data.RBR.Internal.Map GHC.Types.Symbol v1) (kR :: GHC.Types.Symbol) (vR :: v1) (rightR :: Data.RBR.Internal.Map GHC.Types.Symbol v1) (middle :: [v1]) (v2 :: v1) (colorL :: Data.RBR.Internal.Color) (leftL :: Data.RBR.Internal.Map GHC.Types.Symbol v1) (kL :: GHC.Types.Symbol) (vL :: v1) (rightL :: Data.RBR.Internal.Map GHC.Types.Symbol v1) (result :: [v1]) (color :: Data.RBR.Internal.Color) (k :: GHC.Types.Symbol). (Data.RBR.Internal.Sumlike start ('Data.RBR.Internal.N colorR leftR kR vR rightR) middle, Data.RBR.Internal.Sumlike (v2 : middle) ('Data.RBR.Internal.N colorL leftL kL vL rightL) result) => Data.RBR.Internal.Sumlike start ('Data.RBR.Internal.N color ('Data.RBR.Internal.N colorL leftL kL vL rightL) k v2 ('Data.RBR.Internal.N colorR leftR kR vR rightR)) result
- Data.RBR.Internal: instance forall v1 (start :: [v1]) (right :: Data.RBR.Internal.Map GHC.Types.Symbol v1) (middle :: [v1]) (v2 :: v1) (left :: Data.RBR.Internal.Map GHC.Types.Symbol v1) (result :: [v1]) (color :: Data.RBR.Internal.Color) (k :: GHC.Types.Symbol). (Data.RBR.Internal.Productlike start right middle, Data.RBR.Internal.Productlike (v2 : middle) left result) => Data.RBR.Internal.Productlike start ('Data.RBR.Internal.N color left k v2 right) result
- Data.RBR.Internal: instance forall v1 (v2 :: v1) (start :: [v1]) (colorL :: Data.RBR.Internal.Color) (leftL :: Data.RBR.Internal.Map GHC.Types.Symbol v1) (kL :: GHC.Types.Symbol) (vL :: v1) (rightL :: Data.RBR.Internal.Map GHC.Types.Symbol v1) (result :: [v1]) (color :: Data.RBR.Internal.Color) (k :: GHC.Types.Symbol). Data.RBR.Internal.Sumlike (v2 : start) ('Data.RBR.Internal.N colorL leftL kL vL rightL) result => Data.RBR.Internal.Sumlike start ('Data.RBR.Internal.N color ('Data.RBR.Internal.N colorL leftL kL vL rightL) k v2 'Data.RBR.Internal.E) result
- Data.RBR.Internal: instance forall z (k :: GHC.Types.Symbol) (v :: z). GHC.TypeLits.KnownSymbol k => Data.RBR.Internal.KnownKey k v
+ Data.RBR.Internal: instance (GHC.Classes.Eq symbol, GHC.Classes.Eq q) => GHC.Classes.Eq (Data.RBR.Internal.Map symbol q)
+ Data.RBR.Internal: instance (GHC.Show.Show symbol, GHC.Show.Show q) => GHC.Show.Show (Data.RBR.Internal.Map symbol q)
+ Data.RBR.Internal: instance forall q (k :: GHC.Types.Symbol) (k' :: GHC.Types.Symbol) (ordering :: GHC.Types.Ordering) (v :: q) (color :: Data.RBR.Internal.Color) (left :: Data.RBR.Internal.Map GHC.Types.Symbol q) (v' :: q) (right :: Data.RBR.Internal.Map GHC.Types.Symbol q). (GHC.TypeLits.CmpSymbol k k' Data.Type.Equality.~ ordering, Data.RBR.Internal.InsertableHelper2 ordering k v color left k' v' right) => Data.RBR.Internal.InsertableHelper1 k v ('Data.RBR.Internal.N color left k' v' right)
+ Data.RBR.Internal: instance forall q (k :: GHC.Types.Symbol) (v :: q) (leftz :: Data.RBR.Internal.Map GHC.Types.Symbol q) (kz :: GHC.Types.Symbol) (vz :: q) (rightz :: Data.RBR.Internal.Map GHC.Types.Symbol q) (kx :: GHC.Types.Symbol) (vx :: q) (right :: Data.RBR.Internal.Map GHC.Types.Symbol q). Data.RBR.Internal.Delable k v ('Data.RBR.Internal.N 'Data.RBR.Internal.R leftz kz vz rightz) => Data.RBR.Internal.DelableL k v ('Data.RBR.Internal.N 'Data.RBR.Internal.R leftz kz vz rightz) kx vx right
+ Data.RBR.Internal: instance forall q (k :: GHC.Types.Symbol) (v :: q) (leftz :: Data.RBR.Internal.Map GHC.Types.Symbol q) (kz :: GHC.Types.Symbol) (vz :: q) (rightz :: Data.RBR.Internal.Map GHC.Types.Symbol q) (left :: Data.RBR.Internal.Map GHC.Types.Symbol q) (kx :: GHC.Types.Symbol) (vx :: q). Data.RBR.Internal.Delable k v ('Data.RBR.Internal.N 'Data.RBR.Internal.R leftz kz vz rightz) => Data.RBR.Internal.DelableR k v left kx vx ('Data.RBR.Internal.N 'Data.RBR.Internal.R leftz kz vz rightz)
+ Data.RBR.Internal: instance forall q (k :: GHC.Types.Symbol) (v :: q). (GHC.TypeLits.KnownSymbol k, Data.Typeable.Internal.Typeable v) => Data.RBR.Internal.KnownKeyTypeableValue k v
+ Data.RBR.Internal: instance forall q (k :: GHC.Types.Symbol) (v :: q). GHC.TypeLits.KnownSymbol k => Data.RBR.Internal.KnownKey k v
+ Data.RBR.Internal: instance forall q (kx :: GHC.Types.Symbol) (k :: GHC.Types.Symbol) (ordering :: GHC.Types.Ordering) (v :: q) (left :: Data.RBR.Internal.Map GHC.Types.Symbol q) (vx :: q) (right :: Data.RBR.Internal.Map GHC.Types.Symbol q) (color :: Data.RBR.Internal.Color). (GHC.TypeLits.CmpSymbol kx k Data.Type.Equality.~ ordering, Data.RBR.Internal.DelableHelper ordering k v left kx vx right) => Data.RBR.Internal.Delable k v ('Data.RBR.Internal.N color left kx vx right)
+ Data.RBR.Internal: instance forall q (left1 :: Data.RBR.Internal.Map GHC.Types.Symbol q) (k1 :: GHC.Types.Symbol) (v1 :: q) (k2 :: GHC.Types.Symbol) (v2 :: q) (right2 :: Data.RBR.Internal.Map GHC.Types.Symbol q). Data.RBR.Internal.BalanceableL left1 k1 v1 ('Data.RBR.Internal.N 'Data.RBR.Internal.B 'Data.RBR.Internal.E k2 v2 right2) => Data.RBR.Internal.FuseableHelper2 'Data.RBR.Internal.E ('Data.RBR.Internal.N 'Data.RBR.Internal.B left1 k1 v1 'Data.RBR.Internal.E) ('Data.RBR.Internal.N 'Data.RBR.Internal.B 'Data.RBR.Internal.E k2 v2 right2)
+ Data.RBR.Internal: instance forall q (left1 :: Data.RBR.Internal.Map GHC.Types.Symbol q) (k1 :: GHC.Types.Symbol) (v1 :: q) (right1 :: Data.RBR.Internal.Map GHC.Types.Symbol q) (left2 :: Data.RBR.Internal.Map GHC.Types.Symbol q) (k2 :: GHC.Types.Symbol) (v2 :: q) (right2 :: Data.RBR.Internal.Map GHC.Types.Symbol q). Data.RBR.Internal.Fuseable ('Data.RBR.Internal.N 'Data.RBR.Internal.B left1 k1 v1 right1) left2 => Data.RBR.Internal.Fuseable ('Data.RBR.Internal.N 'Data.RBR.Internal.B left1 k1 v1 right1) ('Data.RBR.Internal.N 'Data.RBR.Internal.R left2 k2 v2 right2)
+ Data.RBR.Internal: instance forall q (leftz :: Data.RBR.Internal.Map GHC.Types.Symbol q) (kz :: GHC.Types.Symbol) (vz :: q) (rightz :: Data.RBR.Internal.Map GHC.Types.Symbol q) (g :: Data.RBR.Internal.Map GHC.Types.Symbol q) (k :: GHC.Types.Symbol) (v :: q) (deleted :: Data.RBR.Internal.Map GHC.Types.Symbol q) (kx :: GHC.Types.Symbol) (vx :: q) (right :: Data.RBR.Internal.Map GHC.Types.Symbol q). ('Data.RBR.Internal.N 'Data.RBR.Internal.B leftz kz vz rightz Data.Type.Equality.~ g, Data.RBR.Internal.Delable k v g, Data.RBR.Internal.Del k v g Data.Type.Equality.~ deleted, Data.RBR.Internal.BalanceableL deleted kx vx right) => Data.RBR.Internal.DelableL k v ('Data.RBR.Internal.N 'Data.RBR.Internal.B leftz kz vz rightz) kx vx right
+ Data.RBR.Internal: instance forall q (leftz :: Data.RBR.Internal.Map GHC.Types.Symbol q) (kz :: GHC.Types.Symbol) (vz :: q) (rightz :: Data.RBR.Internal.Map GHC.Types.Symbol q) (g :: Data.RBR.Internal.Map GHC.Types.Symbol q) (k :: GHC.Types.Symbol) (v :: q) (deleted :: Data.RBR.Internal.Map GHC.Types.Symbol q) (left :: Data.RBR.Internal.Map GHC.Types.Symbol q) (kx :: GHC.Types.Symbol) (vx :: q). ('Data.RBR.Internal.N 'Data.RBR.Internal.B leftz kz vz rightz Data.Type.Equality.~ g, Data.RBR.Internal.Delable k v g, Data.RBR.Internal.Del k v g Data.Type.Equality.~ deleted, Data.RBR.Internal.BalanceableR left kx vx deleted) => Data.RBR.Internal.DelableR k v left kx vx ('Data.RBR.Internal.N 'Data.RBR.Internal.B leftz kz vz rightz)
+ Data.RBR.Internal: instance forall q (right1 :: Data.RBR.Internal.Map GHC.Types.Symbol q) (left2 :: Data.RBR.Internal.Map GHC.Types.Symbol q) (fused :: Data.RBR.Internal.Map GHC.Types.Symbol q) (left1 :: Data.RBR.Internal.Map GHC.Types.Symbol q) (k1 :: GHC.Types.Symbol) (v1 :: q) (k2 :: GHC.Types.Symbol) (v2 :: q) (right2 :: Data.RBR.Internal.Map GHC.Types.Symbol q). (Data.RBR.Internal.Fuseable right1 left2, Data.RBR.Internal.Fuse right1 left2 Data.Type.Equality.~ fused, Data.RBR.Internal.FuseableHelper1 fused ('Data.RBR.Internal.N 'Data.RBR.Internal.R left1 k1 v1 right1) ('Data.RBR.Internal.N 'Data.RBR.Internal.R left2 k2 v2 right2)) => Data.RBR.Internal.Fuseable ('Data.RBR.Internal.N 'Data.RBR.Internal.R left1 k1 v1 right1) ('Data.RBR.Internal.N 'Data.RBR.Internal.R left2 k2 v2 right2)
+ Data.RBR.Internal: instance forall q (right1 :: Data.RBR.Internal.Map GHC.Types.Symbol q) (left2 :: Data.RBR.Internal.Map GHC.Types.Symbol q) (fused :: Data.RBR.Internal.Map GHC.Types.Symbol q) (left1 :: Data.RBR.Internal.Map GHC.Types.Symbol q) (k1 :: GHC.Types.Symbol) (v1 :: q) (k2 :: GHC.Types.Symbol) (v2 :: q) (right2 :: Data.RBR.Internal.Map GHC.Types.Symbol q). (Data.RBR.Internal.Fuseable right1 left2, Data.RBR.Internal.Fuse right1 left2 Data.Type.Equality.~ fused, Data.RBR.Internal.FuseableHelper2 fused ('Data.RBR.Internal.N 'Data.RBR.Internal.B left1 k1 v1 right1) ('Data.RBR.Internal.N 'Data.RBR.Internal.B left2 k2 v2 right2)) => Data.RBR.Internal.Fuseable ('Data.RBR.Internal.N 'Data.RBR.Internal.B left1 k1 v1 right1) ('Data.RBR.Internal.N 'Data.RBR.Internal.B left2 k2 v2 right2)
+ Data.RBR.Internal: instance forall q (right1 :: Data.RBR.Internal.Map GHC.Types.Symbol q) (left2 :: Data.RBR.Internal.Map GHC.Types.Symbol q) (k2 :: GHC.Types.Symbol) (v2 :: q) (right2 :: Data.RBR.Internal.Map GHC.Types.Symbol q) (left1 :: Data.RBR.Internal.Map GHC.Types.Symbol q) (k1 :: GHC.Types.Symbol) (v1 :: q). Data.RBR.Internal.Fuseable right1 ('Data.RBR.Internal.N 'Data.RBR.Internal.B left2 k2 v2 right2) => Data.RBR.Internal.Fuseable ('Data.RBR.Internal.N 'Data.RBR.Internal.R left1 k1 v1 right1) ('Data.RBR.Internal.N 'Data.RBR.Internal.B left2 k2 v2 right2)
+ Data.RBR.Internal: instance forall q (right1 :: Data.RBR.Internal.Map GHC.Types.Symbol q) (left2 :: Data.RBR.Internal.Map GHC.Types.Symbol q) (s1 :: Data.RBR.Internal.Map GHC.Types.Symbol q) (z :: GHC.Types.Symbol) (zv :: q) (s2 :: Data.RBR.Internal.Map GHC.Types.Symbol q) (left1 :: Data.RBR.Internal.Map GHC.Types.Symbol q) (k1 :: GHC.Types.Symbol) (v1 :: q) (k2 :: GHC.Types.Symbol) (v2 :: q) (right2 :: Data.RBR.Internal.Map GHC.Types.Symbol q). (Data.RBR.Internal.Fuseable right1 left2, Data.RBR.Internal.Fuse right1 left2 Data.Type.Equality.~ 'Data.RBR.Internal.N 'Data.RBR.Internal.B s1 z zv s2) => Data.RBR.Internal.FuseableHelper1 ('Data.RBR.Internal.N 'Data.RBR.Internal.B s1 z zv s2) ('Data.RBR.Internal.N 'Data.RBR.Internal.R left1 k1 v1 right1) ('Data.RBR.Internal.N 'Data.RBR.Internal.R left2 k2 v2 right2)
+ Data.RBR.Internal: instance forall q (right1 :: Data.RBR.Internal.Map GHC.Types.Symbol q) (left2 :: Data.RBR.Internal.Map GHC.Types.Symbol q) (s1 :: Data.RBR.Internal.Map GHC.Types.Symbol q) (z :: GHC.Types.Symbol) (zv :: q) (s2 :: Data.RBR.Internal.Map GHC.Types.Symbol q) (left1 :: Data.RBR.Internal.Map GHC.Types.Symbol q) (k1 :: GHC.Types.Symbol) (v1 :: q) (k2 :: GHC.Types.Symbol) (v2 :: q) (right2 :: Data.RBR.Internal.Map GHC.Types.Symbol q). (Data.RBR.Internal.Fuseable right1 left2, Data.RBR.Internal.Fuse right1 left2 Data.Type.Equality.~ 'Data.RBR.Internal.N 'Data.RBR.Internal.B s1 z zv s2, Data.RBR.Internal.BalanceableL left1 k1 v1 ('Data.RBR.Internal.N 'Data.RBR.Internal.B ('Data.RBR.Internal.N 'Data.RBR.Internal.B s1 z zv s2) k2 v2 right2)) => Data.RBR.Internal.FuseableHelper2 ('Data.RBR.Internal.N 'Data.RBR.Internal.B s1 z zv s2) ('Data.RBR.Internal.N 'Data.RBR.Internal.B left1 k1 v1 right1) ('Data.RBR.Internal.N 'Data.RBR.Internal.B left2 k2 v2 right2)
+ Data.RBR.Internal: instance forall q (right1 :: Data.RBR.Internal.Map GHC.Types.Symbol q) (left2 :: Data.RBR.Internal.Map GHC.Types.Symbol q) (s1 :: Data.RBR.Internal.Map GHC.Types.Symbol q) (z :: GHC.Types.Symbol) (zv :: q) (s2 :: Data.RBR.Internal.Map GHC.Types.Symbol q) (left1 :: Data.RBR.Internal.Map GHC.Types.Symbol q) (k1 :: GHC.Types.Symbol) (v1 :: q) (k2 :: GHC.Types.Symbol) (v2 :: q) (right2 :: Data.RBR.Internal.Map GHC.Types.Symbol q). (Data.RBR.Internal.Fuseable right1 left2, Data.RBR.Internal.Fuse right1 left2 Data.Type.Equality.~ 'Data.RBR.Internal.N 'Data.RBR.Internal.R s1 z zv s2) => Data.RBR.Internal.FuseableHelper1 ('Data.RBR.Internal.N 'Data.RBR.Internal.R s1 z zv s2) ('Data.RBR.Internal.N 'Data.RBR.Internal.R left1 k1 v1 right1) ('Data.RBR.Internal.N 'Data.RBR.Internal.R left2 k2 v2 right2)
+ Data.RBR.Internal: instance forall q (right1 :: Data.RBR.Internal.Map GHC.Types.Symbol q) (left2 :: Data.RBR.Internal.Map GHC.Types.Symbol q) (s1 :: Data.RBR.Internal.Map GHC.Types.Symbol q) (z :: GHC.Types.Symbol) (zv :: q) (s2 :: Data.RBR.Internal.Map GHC.Types.Symbol q) (left1 :: Data.RBR.Internal.Map GHC.Types.Symbol q) (k1 :: GHC.Types.Symbol) (v1 :: q) (k2 :: GHC.Types.Symbol) (v2 :: q) (right2 :: Data.RBR.Internal.Map GHC.Types.Symbol q). (Data.RBR.Internal.Fuseable right1 left2, Data.RBR.Internal.Fuse right1 left2 Data.Type.Equality.~ 'Data.RBR.Internal.N 'Data.RBR.Internal.R s1 z zv s2) => Data.RBR.Internal.FuseableHelper2 ('Data.RBR.Internal.N 'Data.RBR.Internal.R s1 z zv s2) ('Data.RBR.Internal.N 'Data.RBR.Internal.B left1 k1 v1 right1) ('Data.RBR.Internal.N 'Data.RBR.Internal.B left2 k2 v2 right2)
+ Data.RBR.Internal: instance forall q (start :: [q]) (colorR :: Data.RBR.Internal.Color) (leftR :: Data.RBR.Internal.Map GHC.Types.Symbol q) (kR :: GHC.Types.Symbol) (vR :: q) (rightR :: Data.RBR.Internal.Map GHC.Types.Symbol q) (middle :: [q]) (v :: q) (colorL :: Data.RBR.Internal.Color) (leftL :: Data.RBR.Internal.Map GHC.Types.Symbol q) (kL :: GHC.Types.Symbol) (vL :: q) (rightL :: Data.RBR.Internal.Map GHC.Types.Symbol q) (result :: [q]) (color :: Data.RBR.Internal.Color) (k :: GHC.Types.Symbol). (Data.RBR.Internal.Sumlike start ('Data.RBR.Internal.N colorR leftR kR vR rightR) middle, Data.RBR.Internal.Sumlike (v : middle) ('Data.RBR.Internal.N colorL leftL kL vL rightL) result) => Data.RBR.Internal.Sumlike start ('Data.RBR.Internal.N color ('Data.RBR.Internal.N colorL leftL kL vL rightL) k v ('Data.RBR.Internal.N colorR leftR kR vR rightR)) result
+ Data.RBR.Internal: instance forall q (start :: [q]) (right :: Data.RBR.Internal.Map GHC.Types.Symbol q) (middle :: [q]) (v :: q) (left :: Data.RBR.Internal.Map GHC.Types.Symbol q) (result :: [q]) (color :: Data.RBR.Internal.Color) (k :: GHC.Types.Symbol). (Data.RBR.Internal.Productlike start right middle, Data.RBR.Internal.Productlike (v : middle) left result) => Data.RBR.Internal.Productlike start ('Data.RBR.Internal.N color left k v right) result
+ Data.RBR.Internal: instance forall q (t2 :: Data.RBR.Internal.Map GHC.Types.Symbol q) (z :: GHC.Types.Symbol) (zv :: q) (t3 :: Data.RBR.Internal.Map GHC.Types.Symbol q) (g :: Data.RBR.Internal.Map GHC.Types.Symbol q) (t1 :: Data.RBR.Internal.Map GHC.Types.Symbol q) (y :: GHC.Types.Symbol) (yv :: q). ('Data.RBR.Internal.N 'Data.RBR.Internal.R t2 z zv t3 Data.Type.Equality.~ g, Data.RBR.Internal.BalanceableHelper (Data.RBR.Internal.ShouldBalance t1 g) t1 y yv g) => Data.RBR.Internal.BalanceableHelperL 'GHC.Types.True t1 y yv ('Data.RBR.Internal.N 'Data.RBR.Internal.B t2 z zv t3)
+ Data.RBR.Internal: instance forall q (v :: q) (start :: [q]) (colorL :: Data.RBR.Internal.Color) (leftL :: Data.RBR.Internal.Map GHC.Types.Symbol q) (kL :: GHC.Types.Symbol) (vL :: q) (rightL :: Data.RBR.Internal.Map GHC.Types.Symbol q) (result :: [q]) (color :: Data.RBR.Internal.Color) (k :: GHC.Types.Symbol). Data.RBR.Internal.Sumlike (v : start) ('Data.RBR.Internal.N colorL leftL kL vL rightL) result => Data.RBR.Internal.Sumlike start ('Data.RBR.Internal.N color ('Data.RBR.Internal.N colorL leftL kL vL rightL) k v 'Data.RBR.Internal.E) result
+ Data.RBR.Internal: instance forall symbol q (c :: symbol -> q -> GHC.Types.Constraint) (k :: symbol) (v :: q) (left :: Data.RBR.Internal.Map symbol q) (right :: Data.RBR.Internal.Map symbol q) (color :: Data.RBR.Internal.Color). (c k v, Data.RBR.Internal.KeysValuesAll c left, Data.RBR.Internal.KeysValuesAll c right) => Data.RBR.Internal.KeysValuesAll c ('Data.RBR.Internal.N color left k v right)
+ Data.RBR.Internal: instance forall symbol q (c :: symbol -> q -> GHC.Types.Constraint). Data.RBR.Internal.KeysValuesAll c 'Data.RBR.Internal.E
- Data.RBR: class KeysValuesAllF c t => KeysValuesAll (c :: k -> v -> Constraint) (t :: Map k v)
+ Data.RBR: class KeysValuesAllF c t => KeysValuesAll (c :: symbol -> q -> Constraint) (t :: Map symbol q)
- Data.RBR: class KnownSymbol k => KnownKey (k :: Symbol) (v :: z)
+ Data.RBR: class KnownSymbol k => KnownKey (k :: Symbol) (v :: q)
- Data.RBR: class (KnownSymbol k, Typeable v) => KnownKeyTypeableValue (k :: Symbol) v
+ Data.RBR: class (KnownSymbol k, Typeable v) => KnownKeyTypeableValue (k :: Symbol) (v :: q)
- Data.RBR: data Map k v
+ Data.RBR: data Map symbol q
- Data.RBR.Internal: E :: Map k v
+ Data.RBR.Internal: E :: Map symbol q
- Data.RBR.Internal: N :: Color -> Map k v -> k -> v -> Map k v -> Map k v
+ Data.RBR.Internal: N :: Color -> Map symbol q -> symbol -> q -> Map symbol q -> Map symbol q
- Data.RBR.Internal: class KeysValuesAllF c t => KeysValuesAll (c :: k -> v -> Constraint) (t :: Map k v)
+ Data.RBR.Internal: class KeysValuesAllF c t => KeysValuesAll (c :: symbol -> q -> Constraint) (t :: Map symbol q)
- Data.RBR.Internal: class KnownSymbol k => KnownKey (k :: Symbol) (v :: z)
+ Data.RBR.Internal: class KnownSymbol k => KnownKey (k :: Symbol) (v :: q)
- Data.RBR.Internal: class (KnownSymbol k, Typeable v) => KnownKeyTypeableValue (k :: Symbol) v
+ Data.RBR.Internal: class (KnownSymbol k, Typeable v) => KnownKeyTypeableValue (k :: Symbol) (v :: q)
- Data.RBR.Internal: data Map k v
+ Data.RBR.Internal: data Map symbol q
Files
- README.md +4/−1
- lib/Data/RBR/Examples.hs +1/−0
- lib/Data/RBR/Internal.hs +6/−6
- red-black-record.cabal +1/−1
README.md view
@@ -140,7 +140,7 @@ [this post](https://www.cs.kent.ac.uk/people/staff/smk/redblack/rb.html). * Besides depending on sop-core, I have copied and adapted code from it. In- particular the `KeysValuessAll` typeclass is a version of the `All` typeclass+ particular the `KeysValuesAll` typeclass is a version of the `All` typeclass from sop-core. * [Surgery for data@@ -191,4 +191,7 @@ representation. * [Coxswain](https://ghc.haskell.org/trac/ghc/wiki/Plugins/TypeChecker/RowTypes/Coxswain).++* [higgledy](http://hackage.haskell.org/package/higgledy). Provides you with HKD+ versions of normal records.
lib/Data/RBR/Examples.hs view
@@ -340,6 +340,7 @@ {- $externalexamples * [Is there a canonical way of comparing/changing one/two records in haskell? (SO)](https://stackoverflow.com/a/57574731/1364288) + * [Given a record of functions, and a record of data of the types acted on by the functions, how to generically apply the function record? (SO)](https://stackoverflow.com/a/58890226/1364288) * [Help with Generics. (Reddit)](https://www.reddit.com/r/haskell/comments/cteemj/help_with_generics/expyjfk) * [Adventures assembling records of capabilities. (Discourse)](https://discourse.haskell.org/t/adventures-assembling-records-of-capabilities/623) * [Resources on sop-core and generics-sop. (GitHub)](https://github.com/well-typed/generics-sop/issues/47)
lib/Data/RBR/Internal.hs view
@@ -63,8 +63,8 @@ deriving (Show,Eq) -- | A Red-Black tree. It will be used as a kind, to index the 'Record' and 'Variant' types. -data Map k v = E - | N Color (Map k v) k v (Map k v) +data Map symbol q = E + | N Color (Map symbol q) symbol q (Map symbol q) deriving (Show,Eq) -- | A map without entries. See also 'unit' and 'impossible'. @@ -80,13 +80,13 @@ -- -- UndecidableSuperClasses and RankNTypes seem to be required by KeysValuesAllF. type family - KeysValuesAllF (c :: k -> v -> Constraint) (t :: Map k v) :: Constraint where + KeysValuesAllF (c :: symbol -> q -> Constraint) (t :: Map symbol q) :: Constraint where KeysValuesAllF _ E = () KeysValuesAllF c (N color left k v right) = (c k v, KeysValuesAll c left, KeysValuesAll c right) {- | Require a constraint for every key-value pair in a tree. This is a generalization of 'Data.SOP.All' from "Data.SOP". -} -class KeysValuesAllF c t => KeysValuesAll (c :: k -> v -> Constraint) (t :: Map k v) where +class KeysValuesAllF c t => KeysValuesAll (c :: symbol -> q -> Constraint) (t :: Map symbol q) where -- 'cpara_Map' constructs a 'Record' by means of a constraint for producing -- the nodes of the tree. The constraint is passed as a 'Data.Proxy.Proxy'. @@ -142,7 +142,7 @@ Defined using the "class synonym" <https://www.reddit.com/r/haskell/comments/ab8ypl/monthly_hask_anything_january_2019/edk1ot3/ trick>. -} -class KnownSymbol k => KnownKey (k :: Symbol) (v :: z) +class KnownSymbol k => KnownKey (k :: Symbol) (v :: q) instance KnownSymbol k => KnownKey k v {- | @@ -168,7 +168,7 @@ Defined using the "class synonym" <https://www.reddit.com/r/haskell/comments/ab8ypl/monthly_hask_anything_january_2019/edk1ot3/ trick>. -} -class (KnownSymbol k, Typeable v) => KnownKeyTypeableValue (k :: Symbol) v +class (KnownSymbol k, Typeable v) => KnownKeyTypeableValue (k :: Symbol) (v :: q) instance (KnownSymbol k, Typeable v) => KnownKeyTypeableValue k v -- class KeyValueTop (k :: Symbol) (v :: z)
red-black-record.cabal view
@@ -1,6 +1,6 @@ cabal-version: 2.0 name: red-black-record -version: 2.1.0.2 +version: 2.1.0.3 synopsis: Extensible records and variants indexed by a type-level Red-Black tree. description: A library that provides extensible records and variants,