content: {- |
  Description: Arm features as nullary constraints
  
  This module provides the constraint interface to detect CPU features.
  You can mark your function with @Has\<FEATURE NAME\> =>@ to indicate that
  it requires a specific CPU feature.
  You can detect the availability and get the constraint @Has\<FEATURE NAME\>@
  by pattern-matching on the variable @query\<FEATURE NAME\>@.
  
  Example:
  
  > -- This function requires FEAT_PMULL
  > someFunction :: HasFEAT_PMULL => ...
  >
  > case queryFEAT_PMULL of
  >   Just Dict -> {- In this branch, HasFEAT_PMULL is available -} someFunction
  >   Nothing -> {- In this branch, HasFEAT_PMULL is not available -} error "FEAT_PMULL not available"
  -}
  module System.CPUFeatures.Arm.Constraint
    (HasFEAT_AES, queryFEAT_AES
    ,HasFEAT_AFP, queryFEAT_AFP
    ,HasFEAT_BF16, queryFEAT_BF16
    ,HasFEAT_BTI, queryFEAT_BTI
    ,HasFEAT_CSV2, queryFEAT_CSV2
    ,HasFEAT_CSV3, queryFEAT_CSV3
    ,HasFEAT_DIT, queryFEAT_DIT
    ,HasFEAT_DotProd, queryFEAT_DotProd
    ,HasFEAT_DPB, queryFEAT_DPB
    ,HasFEAT_DPB2, queryFEAT_DPB2
    ,HasFEAT_ECV, queryFEAT_ECV
    ,HasFEAT_FCMA, queryFEAT_FCMA
    ,HasFEAT_FHM, queryFEAT_FHM
    ,HasFEAT_FlagM, queryFEAT_FlagM
    ,HasFEAT_FlagM2, queryFEAT_FlagM2
    ,HasFEAT_FP16, queryFEAT_FP16
    ,HasFEAT_FPAC, queryFEAT_FPAC
    ,HasFEAT_FRINTTS, queryFEAT_FRINTTS
    ,HasFEAT_I8MM, queryFEAT_I8MM
    ,HasFEAT_JSCVT, queryFEAT_JSCVT
    ,HasFEAT_LRCPC, queryFEAT_LRCPC
    ,HasFEAT_LRCPC2, queryFEAT_LRCPC2
    ,HasFEAT_LSE, queryFEAT_LSE
    ,HasFEAT_LSE2, queryFEAT_LSE2
    ,HasFEAT_PAuth, queryFEAT_PAuth
    ,HasFEAT_PAuth2, queryFEAT_PAuth2
    ,HasFEAT_PMULL, queryFEAT_PMULL
    ,HasFEAT_RDM, queryFEAT_RDM
    ,HasFEAT_RPRES, queryFEAT_RPRES
    ,HasFEAT_SB, queryFEAT_SB
    ,HasFEAT_SHA1, queryFEAT_SHA1
    ,HasFEAT_SHA256, queryFEAT_SHA256
    ,HasFEAT_SHA3, queryFEAT_SHA3
    ,HasFEAT_SHA512, queryFEAT_SHA512
    ,HasFEAT_SME, queryFEAT_SME
    ,HasFEAT_SME_F64F64, queryFEAT_SME_F64F64
    ,HasFEAT_SME_I16I64, queryFEAT_SME_I16I64
    ,HasFEAT_SME2, queryFEAT_SME2
    ,HasFEAT_SPECRES, queryFEAT_SPECRES
    ,HasFEAT_SSBS, queryFEAT_SSBS
    ,HasFEAT_SVE, queryFEAT_SVE
    ,HasFEAT_SVE2, queryFEAT_SVE2
    ,HasFEAT_WFxT, queryFEAT_WFxT
    ,Dict(Dict)
    ) where
  import System.CPUFeatures.Arm.Constraint.Unsafe
  