{-| Module : Data.Aeson.Schema.Utils.TypeFamilies Maintainer : Brandon Chinn Stability : experimental Portability : portable Utilities for working with type families. -} {-# LANGUAGE DataKinds #-} {-# LANGUAGE KindSignatures #-} {-# LANGUAGE PolyKinds #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE TypeOperators #-} module Data.Aeson.Schema.Utils.TypeFamilies ( All ) where import Data.Kind (Constraint) type family All (f :: a -> Constraint) (xs :: [a]) :: Constraint where All _ '[] = () All f (x ': xs) = (f x, All f xs)