{-# LANGUAGE TypeOperators #-} {-# LANGUAGE ConstraintKinds #-} {-# LANGUAGE DataKinds #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE ExplicitNamespaces #-} module Data.ForAll (type ForAll) where import GHC.Exts (Constraint) type family ForAll c xs :: Constraint where ForAll c '[] = () ForAll c (x ': xs) = (c x, ForAll c xs)