packages feed

superrecord 0.5.0.0 → 0.5.0.1

raw patch · 3 files changed

+14/−5 lines, 3 filesdep ~basePVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependency ranges changed: base

API changes (from Hackage documentation)

- SuperRecord: (&) :: forall l t lts s sortedLts. (RecSize lts ~ s, sortedLts ~ Sort ((l := t) : lts), KnownNat s, KnownNat (RecVecIdxPos l sortedLts), KeyDoesNotExist l lts, RecCopy lts lts sortedLts) => l := t -> Rec lts -> Rec sortedLts
+ SuperRecord: (&) :: forall l t lts s sortedLts. (RecSize lts ~ s, sortedLts ~ Sort (l := t : lts), KnownNat s, KnownNat (RecVecIdxPos l sortedLts), KeyDoesNotExist l lts, RecCopy lts lts sortedLts) => l := t -> Rec lts -> Rec sortedLts
- SuperRecord: rcons :: forall l t lts s sortedLts. (RecSize lts ~ s, sortedLts ~ Sort ((l := t) : lts), KnownNat s, KnownNat (RecVecIdxPos l sortedLts), KeyDoesNotExist l lts, RecCopy lts lts sortedLts) => l := t -> Rec lts -> Rec sortedLts
+ SuperRecord: rcons :: forall l t lts s sortedLts. (RecSize lts ~ s, sortedLts ~ Sort (l := t : lts), KnownNat s, KnownNat (RecVecIdxPos l sortedLts), KeyDoesNotExist l lts, RecCopy lts lts sortedLts) => l := t -> Rec lts -> Rec sortedLts

Files

CHANGELOG.md view
@@ -1,3 +1,7 @@+# 0.5.0.1++* GHC 8.6 pre-release compatibility (h/t @galenhuntington)+ # 0.5.0.0  * Added variant types
src/SuperRecord/Sort.hs view
@@ -3,6 +3,10 @@ {-# LANGUAGE TypeOperators #-} {-# LANGUAGE DataKinds #-} {-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE CPP #-}+#if MIN_VERSION_base(4, 12, 0)+{-# LANGUAGE NoStarIsType #-}+#endif module SuperRecord.Sort     ( FieldListSort     )@@ -10,6 +14,7 @@  import SuperRecord.Field +import Data.Kind (Type) import Data.Proxy import GHC.TypeLits @@ -49,26 +54,26 @@     ListDrop xs 0 = xs     ListDrop (x ': xs) n = ListDrop xs (n - 1) -type family FieldListMergeHelper (xs :: [*]) (ys :: [*]) (o :: Ordering) :: [*] where+type family FieldListMergeHelper (xs :: [Type]) (ys :: [Type]) (o :: Ordering) :: [Type] where     FieldListMergeHelper (x := xv ': xs) (y := yv ': ys) 'GT =         (y := yv) ': FieldListMerge (x := xv ': xs) ys     FieldListMergeHelper (x := xv ': xs) (y := yv ': ys) leq =         (x := xv) ': FieldListMerge xs (y := yv ': ys) -type family FieldListMerge (xs :: [*]) (ys :: [*]) :: [*] where+type family FieldListMerge (xs :: [Type]) (ys :: [Type]) :: [Type] where     FieldListMerge xs '[] = xs     FieldListMerge '[] ys = ys     FieldListMerge (x := xv ': xs) (y := yv ': ys) =         FieldListMergeHelper (x := xv ': xs) (y := yv ': ys) (CmpSymbol x y) -type family ListSortStep (xs :: [*]) (halfLen :: Nat) :: [*] where+type family ListSortStep (xs :: [Type]) (halfLen :: Nat) :: [Type] where     ListSortStep xs halfLen =         FieldListMerge             (FieldListSort (ListTake xs halfLen))             (FieldListSort (ListDrop xs halfLen))  -- | Sort a list of fields using merge sort-type family FieldListSort (xs :: [*]) :: [*] where+type family FieldListSort (xs :: [Type]) :: [Type] where     FieldListSort '[] = '[]     FieldListSort '[x] = '[x]     FieldListSort '[x, y] = FieldListMerge '[x] '[y] -- not needed, just an optimization
superrecord.cabal view
@@ -1,5 +1,5 @@ name:                superrecord-version:             0.5.0.0+version:             0.5.0.1 synopsis:            Supercharged anonymous records description:         Anonymous records with various useful utilities homepage:            https://github.com/agrafix/superrecord#readme