traq
Safe HaskellSafe-Inferred
LanguageHaskell2010

Traq.Analysis.Annotate.Prelude

Synopsis

Documentation

data AnnFailProb ext #

Constructors

AnnFailProb (FailProb (PrecType ext)) ext 

Instances

Instances details
(Show (PrecType ext), Show ext) => Show (AnnFailProb ext) # 
Instance details

Defined in Traq.Analysis.Annotate.Prelude

Methods

showsPrec :: Int -> AnnFailProb ext -> ShowS #

show :: AnnFailProb ext -> String #

showList :: [AnnFailProb ext] -> ShowS #

(Integral sizeT, Floating precT, RealFloat precT, TypingReqs sizeT, Show precT, sizeT ~ SizeT) => CompileQ (AnnFailProb (DefaultPrims sizeT precT)) # 
Instance details

Defined in Traq.Primitives

Methods

compileQ :: forall ext' m. (m ~ CompilerT ext', SizeType (AnnFailProb (DefaultPrims sizeT precT)) ~ SizeType ext', PrecType (AnnFailProb (DefaultPrims sizeT precT)) ~ PrecType ext', CompileQ ext') => AnnFailProb (DefaultPrims sizeT precT) -> [Ident] -> m (Stmt (SizeType (AnnFailProb (DefaultPrims sizeT precT)))) #

(Integral sizeT, RealFloat precT, sizeT ~ SizeT, Show sizeT, Show precT, TypingReqs sizeT) => CompileQ (AnnFailProb (Primitive (QSearchCFNW sizeT precT))) # 
Instance details

Defined in Traq.Primitives.Search.QSearchCFNW

Methods

compileQ :: forall ext' m. (m ~ CompilerT ext', SizeType (AnnFailProb (Primitive (QSearchCFNW sizeT precT))) ~ SizeType ext', PrecType (AnnFailProb (Primitive (QSearchCFNW sizeT precT))) ~ PrecType ext', CompileQ ext') => AnnFailProb (Primitive (QSearchCFNW sizeT precT)) -> [Ident] -> m (Stmt (SizeType (AnnFailProb (Primitive (QSearchCFNW sizeT precT))))) #

(Integral sizeT, Floating precT, RealFloat precT, TypingReqs sizeT, Show precT, SizeToPrec sizeT precT) => CompileU (AnnFailProb (DefaultPrims sizeT precT)) # 
Instance details

Defined in Traq.Primitives

Methods

compileU :: forall ext' m. (m ~ CompilerT ext', SizeType (AnnFailProb (DefaultPrims sizeT precT)) ~ SizeType ext', PrecType (AnnFailProb (DefaultPrims sizeT precT)) ~ PrecType ext') => AnnFailProb (DefaultPrims sizeT precT) -> [Ident] -> m (UStmt (SizeType (AnnFailProb (DefaultPrims sizeT precT)))) #

(Integral sizeT, RealFloat precT, Show sizeT, Show precT, TypingReqs sizeT, SizeToPrec sizeT precT) => CompileU (AnnFailProb (Primitive (QSearchCFNW sizeT precT))) # 
Instance details

Defined in Traq.Primitives.Search.QSearchCFNW

Methods

compileU :: forall ext' m. (m ~ CompilerT ext', SizeType (AnnFailProb (Primitive (QSearchCFNW sizeT precT))) ~ SizeType ext', PrecType (AnnFailProb (Primitive (QSearchCFNW sizeT precT))) ~ PrecType ext') => AnnFailProb (Primitive (QSearchCFNW sizeT precT)) -> [Ident] -> m (UStmt (SizeType (AnnFailProb (Primitive (QSearchCFNW sizeT precT))))) #

HasFreeVars ext => HasFreeVars (AnnFailProb ext) # 
Instance details

Defined in Traq.Analysis.Annotate.Prelude

Methods

freeVarsList :: AnnFailProb ext -> [Ident] #

(ToCodeString ext, Show (PrecType ext)) => ToCodeString (AnnFailProb ext) # 
Instance details

Defined in Traq.Analysis.Annotate.Prelude

Methods

build :: (MonadWriter [String] m, MonadFail m) => AnnFailProb ext -> m () #

TypeInferrable ext size => TypeInferrable (AnnFailProb ext) size # 
Instance details

Defined in Traq.Analysis.Annotate.Prelude

Methods

inferTypes :: forall ext' m. (m ~ TypeChecker ext', size ~ SizeType ext') => AnnFailProb ext -> m [VarType size] #

(UnitaryCostPrim prim size prec, QuantumHavocCostPrim prim size prec, CostReqs size prec) => CostQ (AnnFailProb (Primitive prim)) size prec # 
Instance details

Defined in Traq.Primitives.Class

Methods

costQ :: forall ext' cost m. (m ~ CostAnalysisMonad ext', CostQ ext' size prec, CostModelReqs size prec cost) => AnnFailProb (Primitive prim) -> m cost #

(UnitaryCostPrim prim size prec, QuantumHavocCostPrim prim size prec, QuantumExpCostPrim prim size prec, EvalPrim prim size prec, CostReqs size prec, EvalReqs size prec) => ExpCostQ (AnnFailProb (Primitive prim)) size prec # 
Instance details

Defined in Traq.Primitives.Class

Methods

expCostQ :: forall ext' cost m. (m ~ CostAnalysisMonad ext', ExpCostQ ext' size prec, CostModelReqs size prec cost) => AnnFailProb (Primitive prim) -> ProgramState size -> m cost #

(UnitaryCostPrim prim size prec, CostReqs size prec) => CostU (AnnFailProb (Primitive prim)) size prec # 
Instance details

Defined in Traq.Primitives.Class

Methods

costU :: forall ext' costT m. (m ~ CostAnalysisMonad ext', CostU ext' size prec, CostModelReqs size prec costT) => AnnFailProb (Primitive prim) -> m costT #

(UnitaryCostPrim prim size prec, QuantumHavocCostPrim prim size prec, ErrorReqs size prec) => TVErrorQ (AnnFailProb (Primitive prim)) size prec # 
Instance details

Defined in Traq.Primitives.Class

Methods

tvErrorQ :: forall ext' m. (m ~ ErrorAnalysisMonad ext', TVErrorQ ext' size prec, SizeType ext' ~ size, PrecType ext' ~ prec) => AnnFailProb (Primitive prim) -> m (FailProb prec) #

(UnitaryCostPrim prim size prec, ErrorReqs size prec) => TraceNormErrorU (AnnFailProb (Primitive prim)) size prec # 
Instance details

Defined in Traq.Primitives.Class

Methods

traceNormErrorU :: forall ext' m. (m ~ ErrorAnalysisMonad ext', TraceNormErrorU ext' size prec, SizeType ext' ~ size, PrecType ext' ~ prec) => AnnFailProb (Primitive prim) -> m (FailProb prec) #

Evaluatable ext size prec => Evaluatable (AnnFailProb ext) size prec # 
Instance details

Defined in Traq.Analysis.Annotate.Prelude

Methods

eval :: (Evaluatable ext' size prec, m ~ Evaluator ext', SizeType ext' ~ size, PrecType ext' ~ prec) => AnnFailProb ext -> ProgramState size -> m [Value size] #

type PrecType (AnnFailProb ext) # 
Instance details

Defined in Traq.Analysis.Annotate.Prelude

type PrecType (AnnFailProb ext) = PrecType ext
type SizeType (AnnFailProb ext) # 
Instance details

Defined in Traq.Analysis.Annotate.Prelude

type SizeType (AnnFailProb ext) = SizeType ext

Monad

type AnnotateMonad ext ext' = RWST (AnnotateEnv ext) () (AnnotateState ext ext') (Either String) #

type Annotater ext ext' = Program ext -> AnnotateMonad ext ext' (Program ext') #

annotateProgWith :: forall ext. Annotater ext (AnnFailProb ext) -> Program ext -> Either String (Program (AnnFailProb ext)) #

Env

data AnnotateEnv ext #

Instances

Instances details
Generic (AnnotateEnv ext) # 
Instance details

Defined in Traq.Analysis.Annotate.Prelude

Associated Types

type Rep (AnnotateEnv ext) :: Type -> Type #

Methods

from :: AnnotateEnv ext -> Rep (AnnotateEnv ext) x #

to :: Rep (AnnotateEnv ext) x -> AnnotateEnv ext #

HasPrecisionSplittingStrategy (AnnotateEnv ext) # 
Instance details

Defined in Traq.Analysis.Annotate.Prelude

HasDefault (AnnotateEnv ext) # 
Instance details

Defined in Traq.Analysis.Annotate.Prelude

Methods

default_ :: AnnotateEnv ext #

HasFunCtx (AnnotateEnv ext) ext # 
Instance details

Defined in Traq.Analysis.Annotate.Prelude

Methods

_funCtx :: Lens' (AnnotateEnv ext) (FunCtx ext) #

type Rep (AnnotateEnv ext) # 
Instance details

Defined in Traq.Analysis.Annotate.Prelude

type Rep (AnnotateEnv ext) = D1 ('MetaData "AnnotateEnv" "Traq.Analysis.Annotate.Prelude" "traq-0.2.0.0-inplace" 'False) (C1 ('MetaCons "AnnotateEnv" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (FunCtx ext)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PrecisionSplittingStrategy)))

data PrecisionSplittingStrategy #

Instances

Instances details
Enum PrecisionSplittingStrategy # 
Instance details

Defined in Traq.Analysis.Annotate.Prelude

Read PrecisionSplittingStrategy # 
Instance details

Defined in Traq.Analysis.Annotate.Prelude

Show PrecisionSplittingStrategy # 
Instance details

Defined in Traq.Analysis.Annotate.Prelude

Eq PrecisionSplittingStrategy # 
Instance details

Defined in Traq.Analysis.Annotate.Prelude

HasDefault PrecisionSplittingStrategy # 
Instance details

Defined in Traq.Analysis.Annotate.Prelude

State

data AnnotateState ext ext' #

Constructors

AnnotateSymState 

Fields

Instances

Instances details
HasDefault (AnnotateState ext ext') # 
Instance details

Defined in Traq.Analysis.Annotate.Prelude

Methods

default_ :: AnnotateState ext ext' #

HasFunCtx (AnnotateState ext ext') ext' # 
Instance details

Defined in Traq.Analysis.Annotate.Prelude

Methods

_funCtx :: Lens' (AnnotateState ext ext') (FunCtx ext') #

nextId :: m ~ AnnotateMonad ext ext' => m Int #