on 11bcbbb help sign in
rel8/src/Rel8/Schema/Spec/ConstrainDBType.hs
35 lines 862 B history raw
1{-# language ConstraintKinds #-}
2{-# language DataKinds #-}
3{-# language FlexibleInstances #-}
4{-# language MultiParamTypeClasses #-}
5{-# language QuantifiedConstraints #-}
6{-# language StandaloneKindSignatures #-}
7{-# language TypeFamilies #-}
8{-# language UndecidableInstances #-}
10module Rel8.Schema.Spec.ConstrainDBType
11 ( ConstrainDBType
12 )
13where
15-- base
16import Data.Kind ( Constraint, Type )
17import Prelude ()
19-- rel8
20import Rel8.Schema.Nullability ( Sql )
21import Rel8.Schema.Spec ( Spec( Spec ) )
24type ConstrainDBType :: (Type -> Constraint) -> Spec -> Constraint
25class
26 ( forall c labels necessity a. ()
27 => (spec ~ 'Spec labels necessity a)
28 => (forall x. (constraint x => c x)) => Sql c a
29 )
30 => ConstrainDBType constraint spec
31instance
32 ( spec ~ 'Spec labels necessity a
33 , Sql constraint a
34 )
35 => ConstrainDBType constraint spec