diff --git a/haskus-utils-types.cabal b/haskus-utils-types.cabal
--- a/haskus-utils-types.cabal
+++ b/haskus-utils-types.cabal
@@ -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
diff --git a/src/lib/Haskus/Utils/Types/Constraint.hs b/src/lib/Haskus/Utils/Types/Constraint.hs
--- a/src/lib/Haskus/Utils/Types/Constraint.hs
+++ b/src/lib/Haskus/Utils/Types/Constraint.hs
@@ -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)
