| Safe Haskell | Safe-Inferred |
|---|---|
| Language | Haskell2010 |
Traq.CQPL.Syntax
Synopsis
- data MetaParam sizeT
- class HasAdjoint a where
- adjoint :: a -> a
- data Unitary sizeT
- data UStmt sizeT
- = USkipS
- | UnitaryS { }
- | UCallS { }
- | USeqS [UStmt sizeT]
- | UCommentS String
- | URepeatS {
- n_iter :: MetaParam sizeT
- uloop_body :: UStmt sizeT
- | UForInRangeS {
- iter_meta_var :: Ident
- iter_lim :: MetaParam sizeT
- uloop_body :: UStmt sizeT
- dagger :: Bool
- | UWithComputedS {
- with_ustmt, body_ustmt :: UStmt sizeT
- data FunctionCall
- data Stmt sizeT
- = SkipS
- | CommentS String
- | AssignS { }
- | RandomS {
- rets :: [Ident]
- distr_expr :: DistrExpr sizeT
- | RandomDynS { }
- | CallS {
- fun :: FunctionCall
- meta_params :: [Either (MetaParam sizeT) Ident]
- args :: [Ident]
- | SeqS [Stmt sizeT]
- | IfThenElseS { }
- | RepeatS { }
- | WhileK { }
- | WhileKWithCondExpr { }
- | ForInArray {
- loop_index :: Ident
- loop_index_ty :: VarType sizeT
- loop_values :: [BasicExpr sizeT]
- loop_body :: Stmt sizeT
- data ParamTag
- data UProcBody sizeT
- = UProcBody {
- uproc_param_names :: [Ident]
- uproc_param_tags :: [ParamTag]
- uproc_body_stmt :: UStmt sizeT
- | UProcDecl
- = UProcBody {
- data CProcBody sizeT
- = CProcBody {
- cproc_param_names :: [Ident]
- cproc_local_vars :: [(Ident, VarType sizeT)]
- cproc_body_stmt :: Stmt sizeT
- | CProcDecl
- = CProcBody {
- data ProcBody sizeT
- data ProcDef sizeT = ProcDef {
- info_comment :: String
- proc_name :: Ident
- proc_meta_params :: [Ident]
- proc_param_types :: [VarType sizeT]
- proc_body :: ProcBody sizeT
- type ProcCtx sizeT = Context (ProcDef sizeT)
- newtype Program sizeT = Program [ProcDef sizeT]
- ifThenS :: Ident -> Stmt sizeT -> Stmt sizeT
- mkForInRangeS :: Ident -> MetaParam sizeT -> UStmt sizeT -> UStmt sizeT
- desugarS :: CanDesugar p => p -> Maybe p
- class HasProcCtx s where
- isUProc :: ClassifyProc p => p -> Bool
- isCProc :: ClassifyProc p => p -> Bool
Syntax
Compile-time constant parameters
Unitary Fragment
class HasAdjoint a where #
Instances
| HasAdjoint (UStmt sizeT) # | |
Defined in Traq.CQPL.Syntax | |
| HasAdjoint (Unitary sizeT) # | |
Defined in Traq.CQPL.Syntax | |
Unitary operators in CQPL
Constructors
| Toffoli | |
| CNOT | |
| XGate | |
| HGate | |
| COPY | |
| SWAP | |
| LoadData Ident | |
| Refl0 | reflect about |0>_T |
| RevEmbedU [Ident] (BasicExpr sizeT) | |
| DistrU (DistrExpr sizeT) | |
| Controlled (Unitary sizeT) | |
| Adjoint (Unitary sizeT) |
Instances
| Read sizeT => Read (Unitary sizeT) # | |
| Show sizeT => Show (Unitary sizeT) # | |
| Eq sizeT => Eq (Unitary sizeT) # | |
| HasAdjoint (Unitary sizeT) # | |
Defined in Traq.CQPL.Syntax | |
| Show sizeT => ToCodeString (Unitary sizeT) # | |
Defined in Traq.CQPL.Syntax | |
| type SizeType (Unitary sizeT) # | |
Defined in Traq.CQPL.Syntax | |
Unitary Statement
Constructors
| USkipS | |
| UnitaryS | |
| UCallS | |
| USeqS [UStmt sizeT] | |
| UCommentS String | |
| URepeatS | |
Fields
| |
| UForInRangeS | |
Fields
| |
| UWithComputedS | |
Fields
| |
Instances
| Read sizeT => Read (UStmt sizeT) # | |
| Show sizeT => Show (UStmt sizeT) # | |
| Eq sizeT => Eq (UStmt sizeT) # | |
| HasAdjoint (UStmt sizeT) # | |
Defined in Traq.CQPL.Syntax | |
| Show sizeT => ToCodeString (UStmt sizeT) # | |
Defined in Traq.CQPL.Syntax | |
| type SizeType (UStmt sizeT) # | |
Defined in Traq.CQPL.Syntax | |
Classical Fragment
data FunctionCall #
Type of function call
Constructors
| FunctionCall Ident | |
| UProcAndMeas Ident |
Instances
| Read FunctionCall # | |
Defined in Traq.CQPL.Syntax Methods readsPrec :: Int -> ReadS FunctionCall # readList :: ReadS [FunctionCall] # | |
| Show FunctionCall # | |
Defined in Traq.CQPL.Syntax Methods showsPrec :: Int -> FunctionCall -> ShowS # show :: FunctionCall -> String # showList :: [FunctionCall] -> ShowS # | |
| Eq FunctionCall # | |
Defined in Traq.CQPL.Syntax | |
CQ Statement
Constructors
| SkipS | |
| CommentS String | |
| AssignS | |
| RandomS | |
Fields
| |
| RandomDynS | |
| CallS | |
Fields
| |
| SeqS [Stmt sizeT] | |
| IfThenElseS | |
| RepeatS | |
| WhileK | |
| WhileKWithCondExpr | |
| ForInArray | |
Fields
| |
Instances
| Read sizeT => Read (Stmt sizeT) # | |
| Show sizeT => Show (Stmt sizeT) # | |
| Eq sizeT => Eq (Stmt sizeT) # | |
| HasAst (Stmt sizeT) # | |
Defined in Traq.CQPL.Syntax Methods _ast :: Traversal' (Stmt sizeT) (Stmt sizeT) # | |
| HasStmt (Stmt sizeT) # | |
Defined in Traq.CQPL.Syntax | |
| Show sizeT => ToCodeString (Stmt sizeT) # | |
Defined in Traq.CQPL.Syntax | |
| type SizeType (Stmt sizeT) # | |
Defined in Traq.CQPL.Syntax | |
| type StmtOf (Stmt sizeT) # | |
Defined in Traq.CQPL.Syntax | |
Procedures
Instances
| Enum ParamTag # | |
| Read ParamTag # | |
| Show ParamTag # | |
| Eq ParamTag # | |
| ToCodeString ParamTag # | |
Defined in Traq.CQPL.Syntax | |
Unitary Procedure body: either a statement (with parameter name bindings) or a tick.
Constructors
| UProcBody | |
Fields
| |
| UProcDecl | |
Classical Procedure body: either a tick, or statement with bindings for parameters names, and optionally using local variables.
Constructors
| CProcBody | |
Fields
| |
| CProcDecl | |
Instances
Constructors
| ProcDef | |
Fields
| |
Instances
| Read sizeT => Read (ProcDef sizeT) # | |
| Show sizeT => Show (ProcDef sizeT) # | |
| Eq sizeT => Eq (ProcDef sizeT) # | |
| HasProcCtx (ProcCtx sizeT) # | |
| HasStmt (ProcDef sizeT) # | |
Defined in Traq.CQPL.Syntax | |
| Show sizeT => ToCodeString (ProcDef sizeT) # | |
Defined in Traq.CQPL.Syntax | |
| type SizeType (ProcDef sizeT) # | |
Defined in Traq.CQPL.Syntax | |
| type StmtOf (ProcDef sizeT) # | |
Defined in Traq.CQPL.Syntax | |
Program
CQ Program
Instances
| Read sizeT => Read (Program sizeT) # | |
| Show sizeT => Show (Program sizeT) # | |
| Eq sizeT => Eq (Program sizeT) # | |
| HasStmt (Program sizeT) # | |
Defined in Traq.CQPL.Syntax | |
| Show sizeT => ToCodeString (Program sizeT) # | |
Defined in Traq.CQPL.Syntax | |
| type SizeType (Program sizeT) # | |
Defined in Traq.CQPL.Syntax | |
| type StmtOf (Program sizeT) # | |
Defined in Traq.CQPL.Syntax | |
Syntax Sugar
Lenses
class HasProcCtx s where #
Instances
| HasProcCtx (ProcCtx sizeT) # | |
| HasProcCtx (CheckingCtx sizeT) # | |
Defined in Traq.CQPL.TypeCheck Methods _procCtx :: (sizeT0 ~ SizeType (CheckingCtx sizeT), precT ~ PrecType (CheckingCtx sizeT)) => Lens' (CheckingCtx sizeT) (ProcCtx sizeT0) # | |