    module Language.Haskell.TH.Compat.Constraint.Current (
      classP,
      ) where

    import Language.Haskell.TH (Q, Name, Type, Pred, conT, appT)

    -- | type-class predicate context.
    --   definition to keep backward comatiblity.
    classP :: Name -> [Q Type] -> Q Pred
    classP :: Name -> [Q Type] -> Q Type
    classP Name
    cla [Q Type]
    tys = (Q Type -> Q Type -> Q Type) -> Q Type -> [Q Type] -> Q Type
    forall b a. (b -> a -> b) -> b -> [a] -> b
    forall (t :: * -> *) b a.
    Foldable t =>
    (b -> a -> b) -> b -> t a -> b
    foldl Q Type -> Q Type -> Q Type
    forall (m :: * -> *). Quote m => m Type -> m Type -> m Type
    appT (Name -> Q Type
    forall (m :: * -> *). Quote m => Name -> m Type
    conT Name
    cla) [Q Type]
    tys