multistate 0.8.0.1 → 0.8.0.2
raw patch · 4 files changed
+19/−11 lines, 4 filesdep ~basedep ~hspecPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: base, hspec
API changes (from Hackage documentation)
- Data.HList.HList: class HInit (l1 :: [*])
+ Data.HList.HList: class HInit (l1 :: [Type])
- Data.HList.HList: data HList :: [*] -> *
+ Data.HList.HList: data HList :: [Type] -> Type
Files
- changelog.md +5/−0
- multistate.cabal +4/−3
- src/Control/Monad/Trans/MultiGST/Common.hs +6/−5
- src/Data/HList/HList.hs +4/−3
changelog.md view
@@ -1,5 +1,10 @@ # Changelog for [`multistate` package](https://hackage.haskell.org/package/multistate) +## 0.8.0.2 *June 2019*++ * Adapt for ghc-8.8 (optimistically; QuickCheck does not build so+ tests are untested)+ ## 0.8.0.1 *October 2018* * Adapt for ghc-8.6 (really, this time)
multistate.cabal view
@@ -1,5 +1,5 @@ Name: multistate-Version: 0.8.0.1+Version: 0.8.0.2 Cabal-Version: >= 1.10 Build-Type: Simple license: BSD3@@ -69,7 +69,7 @@ other-modules: Control.Monad.Trans.MultiGST.Common build-depends:- base >= 4.9 && <4.13,+ base >= 4.9 && <4.14, mtl >= 2.1 && <2.3, transformers >= 0.3 && <0.6, tagged >= 0.7 && <0.9,@@ -87,6 +87,7 @@ LambdaCase ghc-options: { -Wall+ -Wcompat -fno-warn-unused-imports } if impl(ghc > 8.0) {@@ -107,7 +108,7 @@ multistate, base <999, transformers <0.6,- hspec >=2 && <2.6+ hspec >=2 && <2.8 ghc-options: -Wall main-is: Test.hs hs-source-dirs: test
src/Control/Monad/Trans/MultiGST/Common.hs view
@@ -25,6 +25,7 @@ +import Data.Kind (Type) import Data.Semigroup import qualified Data.HList.HList as HList @@ -121,7 +122,7 @@ CanWriteConstraint 'TellableFlag = () CanWriteConstraint 'SettableFlag = () -data HListM :: [CanReadWrite *] -> * where+data HListM :: [CanReadWrite Type] -> Type where HNilM :: HListM '[] (:+-:) :: x -> HListM xr -> HListM ('Gettable x ': xr) (:++:) :: x -> HListM xr -> HListM ('Settable x ': xr)@@ -154,20 +155,20 @@ x1 :++: xr1 == x2 :++: xr2 = x1==x2 && xr1==xr2 x1 :++: xr1 /= x2 :++: xr2 = x1/=x2 || xr1/=xr2 -type family AppendM (l1 :: [CanReadWrite *]) (l2 :: [CanReadWrite *]) :: [CanReadWrite *] where+type family AppendM (l1 :: [CanReadWrite Type]) (l2 :: [CanReadWrite Type]) :: [CanReadWrite Type] where AppendM '[] l2 = l2 AppendM (car1 ': cdr2) l2 = car1 ': AppendM cdr2 l2 -type family HListMReaders (l :: [*]) :: [CanReadWrite *] where+type family HListMReaders (l :: [Type]) :: [CanReadWrite Type] where HListMReaders '[] = '[] HListMReaders (t ': tr) = 'Gettable t ': HListMReaders tr -type family AppendMReaders (l1 :: [*]) (l2 :: [CanReadWrite *]) :: [CanReadWrite *] where+type family AppendMReaders (l1 :: [Type]) (l2 :: [CanReadWrite Type]) :: [CanReadWrite Type] where AppendMReaders '[] l2 = l2 AppendMReaders (t ': tr) l2 = 'Gettable t ': AppendMReaders tr l2 class HListMGettableClass ts where- type HListMGettableOnly ts :: [*]+ type HListMGettableOnly ts :: [Type] hListMGettableOnly :: HListM ts -> HList.HList (HListMGettableOnly ts) instance HListMGettableClass '[] where
src/Data/HList/HList.hs view
@@ -22,6 +22,7 @@ import Prelude hiding (reverse) +import Data.Kind (Type) import Data.Monoid (Monoid, mappend, mempty) import Data.Semigroup @@ -29,7 +30,7 @@ -data HList :: [*] -> * where+data HList :: [Type] -> Type where HNil :: HList '[] (:+:) :: x -> HList xs -> HList (x ': xs) -- TCons :: x -> HList xs -> HList (Cons x xs)@@ -72,7 +73,7 @@ -- cannot use the closed variant because of ghc-7.8.4. -- (was not investigated more closely; there simply -- is some syntax error for code which works fine with ghc-7.10.)-type family Append (l1::[*]) (l2::[*]) :: [*]+type family Append (l1::[Type]) (l2::[Type]) :: [Type] type instance Append '[] l2 = l2 type instance Append (car1 ': cdr2) l2 = car1 ': Append cdr2 l2 @@ -80,7 +81,7 @@ hAppend HNil l = l hAppend (x:+:xs) l = x :+: hAppend xs l -class HInit (l1 :: [*]) where+class HInit (l1 :: [Type]) where hInit :: forall l2 . Proxy l2 -> HList (Append l1 l2) -> HList l1 hSplit :: forall l2 . HList (Append l1 l2) -> (HList l1, HList l2)