haskus-utils-types 1.4 → 1.4.1
raw patch · 2 files changed
+16/−2 lines, 2 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ Haskus.Utils.Types.Constraint: type family ConstraintAll1 (f :: k -> Constraint) (xs :: [k]) :: Constraint
Files
haskus-utils-types.cabal view
@@ -1,5 +1,5 @@ name: haskus-utils-types-version: 1.4+version: 1.4.1 synopsis: Haskus types utility modules license: BSD3 license-file: LICENSE@@ -12,7 +12,7 @@ cabal-version: 1.20 description:- Haskus types utility modules+ Haskus types utility modules (Nat, List, etc.) source-repository head type: git
src/lib/Haskus/Utils/Types/Constraint.hs view
@@ -1,9 +1,23 @@+{-# LANGUAGE ConstraintKinds #-}+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE PolyKinds #-}+{-# LANGUAGE KindSignatures #-}+{-# LANGUAGE TypeOperators #-}+{-# LANGUAGE TypeFamilies #-}+ -- | Type-level Constraint -- -- Use it with `ConstraintKinds` LANGUAGE pragma module Haskus.Utils.Types.Constraint ( Constraint+ , ConstraintAll1 ) where import GHC.Exts (Constraint)++-- | Build a list of constraints+-- e.g., ConstraintAll1 Eq '[A,B,C] ==> (Eq A, Eq B, Eq C)+type family ConstraintAll1 (f :: k -> Constraint) (xs :: [k]) :: Constraint where+ ConstraintAll1 f '[] = ()+ ConstraintAll1 f (x ': xs) = (f x, ConstraintAll1 f xs)