{-# LANGUAGE DataKinds #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE KindSignatures #-}
{-# LANGUAGE TypeOperators #-}
{-# OPTIONS_HADDOCK hide #-}
module LLVM.AST.Type.Global
where
import LLVM.AST.Type.Name
import LLVM.AST.Type.Operand
import LLVM.AST.Type.Representation
data Parameter a where
Parameter :: PrimType a -> Name a -> Parameter a
data FunctionAttribute
= NoReturn
| NoUnwind
| ReadOnly
| ReadNone
| AlwaysInline
| NoDuplicate
| Convergent
data GroupID = GroupID !Word
data GlobalFunction args t where
Body :: Type r -> Label -> GlobalFunction '[] r
Lam :: PrimType a -> Operand a -> GlobalFunction args t -> GlobalFunction (a ': args) t
data HList (l :: [*]) where
HNil :: HList '[]
HCons :: e -> HList l -> HList (e ': l)