{-# language ConstraintKinds #-}
{-# language DataKinds #-}
{-# language FlexibleInstances #-}
{-# language MultiParamTypeClasses #-}
{-# language QuantifiedConstraints #-}
{-# language StandaloneKindSignatures #-}
{-# language TypeFamilies #-}
{-# language UndecidableInstances #-}
module Rel8.Schema.Spec.ConstrainType
( ConstrainType
)
where
import Data.Kind ( Constraint, Type )
import Prelude ()
import Rel8.Schema.Spec ( Spec( Spec ) )
type ConstrainType :: (Type -> Constraint) -> Spec -> Constraint
class
( forall labels necessity a. ()
=> (spec ~ 'Spec labels necessity a)
=> constraint a
) =>
ConstrainType constraint spec
instance (spec ~ 'Spec labels necessity a, constraint a) =>
ConstrainType constraint spec