{- | Description: RISC-V features as nullary constraints This module provides the constraint interface to detect CPU features. You can mark your function with @Has\ =>@ to indicate that it requires a specific CPU feature. You can detect the availability and get the constraint @Has\@ by pattern-matching on the variable @query\@. Example: > -- This function requires the Vector extension > someFunction :: HasV => ... > > case queryV of > Just Dict -> {- In this branch, HasV is available -} someFunction > Nothing -> {- In this branch, HasV is not available -} error "Vector extension not available" -} module System.CPUFeatures.RISCV.Constraint (HasC, queryC ,HasV, queryV ,HasZba, queryZba ,HasZbb, queryZbb ,HasZbs, queryZbs ,HasZicboz, queryZicboz ,HasZbc, queryZbc ,HasZbkb, queryZbkb ,HasZbkc, queryZbkc ,HasZbkx, queryZbkx ,HasZknd, queryZknd ,HasZkne, queryZkne ,HasZknh, queryZknh ,HasZksed, queryZksed ,HasZksh, queryZksh ,HasZkt, queryZkt ,HasZvbb, queryZvbb ,HasZvbc, queryZvbc ,HasZvkb, queryZvkb ,HasZvkg, queryZvkg ,HasZvkned, queryZvkned ,HasZvknha, queryZvknha ,HasZvknhb, queryZvknhb ,HasZvksed, queryZvksed ,HasZvksh, queryZvksh ,HasZvkt, queryZvkt ,HasZfh, queryZfh ,HasZfhmin, queryZfhmin ,HasZihintntl, queryZihintntl ,HasZvfh, queryZvfh ,HasZvfhmin, queryZvfhmin ,HasZfa, queryZfa ,HasZtso, queryZtso ,HasZacas, queryZacas ,HasZicntr, queryZicntr ,HasZicond, queryZicond ,HasZihintpause, queryZihintpause ,HasZihpm, queryZihpm ,HasZve32x, queryZve32x ,HasZve32f, queryZve32f ,HasZve64x, queryZve64x ,HasZve64f, queryZve64f ,HasZve64d, queryZve64d ,HasZimop, queryZimop ,HasZca, queryZca ,HasZcb, queryZcb ,HasZcd, queryZcd ,HasZcf, queryZcf ,HasZcmop, queryZcmop ,HasZawrs, queryZawrs ,HasZaamo, queryZaamo ,HasZalrsc, queryZalrsc ,HasSupm, querySupm ,HasZfbfmin, queryZfbfmin ,HasZvfbfmin, queryZvfbfmin ,HasZvfbfwma, queryZvfbfwma ,HasZicbom, queryZicbom ,Dict(Dict) ) where import System.CPUFeatures.RISCV.Constraint.Unsafe