aern2-real-0.1.0.3: Exact real numbers via Cauchy sequences and MPFR

Copyright(c) Michal Konecny
LicenseBSD3
Maintainermikkonecny@gmail.com
Stabilityexperimental
Portabilityportable
Safe HaskellNone
LanguageHaskell98

AERN2.QA.Protocol

Contents

Description

Cacheable question-answer protocols

Synopsis

QA protocols and objects

class (Show p, Show (Q p), Show (A p)) => QAProtocol p Source #

A QA protocol at this level is simply a pair of types.

Associated Types

type Q p Source #

type A p Source #

Instances

Show a => QAProtocol (SequenceP a) Source # 

Associated Types

type Q (SequenceP a) :: * Source #

type A (SequenceP a) :: * Source #

(QAProtocol p, SuitableForCE es) => QAProtocol (CollectErrors es p) Source # 

Associated Types

type Q (CollectErrors es p) :: * Source #

type A (CollectErrors es p) :: * Source #

(Show a, Show prm) => QAProtocol (WithGlobalParamP prm a) Source # 

Associated Types

type Q (WithGlobalParamP prm a) :: * Source #

type A (WithGlobalParamP prm a) :: * Source #

class (QAProtocol p, HasOrderCertainly (Q p) (Q p)) => QAProtocolCacheable p where Source #

A QA protocol with a caching method.

Minimal complete definition

newQACache, lookupQACache, updateQACache

Associated Types

type QACache p Source #

Methods

newQACache :: p -> QACache p Source #

lookupQACache :: p -> QACache p -> Q p -> (Maybe (A p), Maybe String) Source #

updateQACache :: p -> Q p -> A p -> QACache p -> QACache p Source #

data QA to p Source #

An object we can ask queries about. Queries can be asked in some Arrow to.

Constructors

QA__ 

Fields

Instances

HasLimits Rational CauchyReal Source # 
HasLimits Rational (WithLipschitz (CauchyReal -> CauchyRealCN)) Source # 
(QAArrow to0, ConvertibleExactly Int a0, CanSetPrecision a0, SuitableForSeq a0) => ConvertibleExactly Int (SequenceA to0 a0) # 
(QAArrow to0, ConvertibleExactly Integer a0, CanSetPrecision a0, SuitableForSeq a0) => ConvertibleExactly Integer (SequenceA to0 a0) # 
(QAArrow to, ConvertibleWithPrecision Rational a, CanSetPrecision a, SuitableForSeq a) => ConvertibleExactly Rational (SequenceA to a) # 
(QAArrow to0, ConvertibleExactly Dyadic a0, CanSetPrecision a0, SuitableForSeq a0) => ConvertibleExactly Dyadic (SequenceA to0 a0) # 
(Arrow to, SuitableForCE es, CanEnsureCE es a) => CanEnsureCE es (SequenceA to a) # 

Associated Types

type EnsureCE es (SequenceA to a) :: * #

type EnsureNoCE es (SequenceA to a) :: * #

Methods

ensureCE :: Maybe es -> SequenceA to a -> EnsureCE es (SequenceA to a) #

deEnsureCE :: Maybe es -> EnsureCE es (SequenceA to a) -> Either es (SequenceA to a) #

ensureNoCE :: Maybe es -> SequenceA to a -> (Maybe (EnsureNoCE es (SequenceA to a)), es) #

noValueECE :: Maybe (SequenceA to a) -> es -> EnsureCE es (SequenceA to a) #

prependErrorsECE :: Maybe (SequenceA to a) -> es -> EnsureCE es (SequenceA to a) -> EnsureCE es (SequenceA to a) #

HasLimits Rational (CauchyReal -> CauchyRealCN) Source # 
(Arrow to, SuitableForCE es, CanEnsureCE es a) => CanEnsureCE es (WithGlobalParamA to prm a) # 

Associated Types

type EnsureCE es (WithGlobalParamA to prm a) :: * #

type EnsureNoCE es (WithGlobalParamA to prm a) :: * #

Methods

ensureCE :: Maybe es -> WithGlobalParamA to prm a -> EnsureCE es (WithGlobalParamA to prm a) #

deEnsureCE :: Maybe es -> EnsureCE es (WithGlobalParamA to prm a) -> Either es (WithGlobalParamA to prm a) #

ensureNoCE :: Maybe es -> WithGlobalParamA to prm a -> (Maybe (EnsureNoCE es (WithGlobalParamA to prm a)), es) #

noValueECE :: Maybe (WithGlobalParamA to prm a) -> es -> EnsureCE es (WithGlobalParamA to prm a) #

prependErrorsECE :: Maybe (WithGlobalParamA to prm a) -> es -> EnsureCE es (WithGlobalParamA to prm a) -> EnsureCE es (WithGlobalParamA to prm a) #

Show a => Show (Sequence a) # 

Methods

showsPrec :: Int -> Sequence a -> ShowS #

show :: Sequence a -> String #

showList :: [Sequence a] -> ShowS #

(CanSwitchArrow to1 to2, QAArrow to1, QAArrow to2, QAProtocolCacheable p) => ConvertibleExactly (QA to1 p) (QA to2 p) Source # 

Methods

safeConvertExactly :: QA to1 p -> ConvertResult (QA to2 p) #

type DivType Double CauchyReal # 
type DivType CauchyReal Double # 
type DivTypeNoCN Double CauchyReal # 
type DivTypeNoCN CauchyReal Double # 
type MulType Double CauchyReal # 
type MulType CauchyReal Double # 
type PowType Double CauchyReal # 
type PowType CauchyReal Double # 
type PowTypeNoCN Double CauchyReal # 
type PowTypeNoCN CauchyReal Double # 
type AddType Double CauchyReal # 
type AddType CauchyReal Double # 
type SubType Double CauchyReal # 
type SubType CauchyReal Double # 
type LimitType Rational CauchyReal Source # 
type DivType MPBall (Sequence b) # 
type DivTypeNoCN MPBall (Sequence b) # 
type MulType MPBall (Sequence b) # 
type PowType MPBall (Sequence e) # 
type PowTypeNoCN MPBall (Sequence e) # 
type AddType MPBall (Sequence b) # 
type SubType MPBall (Sequence b) # 
type MinMaxType MPBall (Sequence b) # 
type LimitType Rational (WithLipschitz (CauchyReal -> CauchyRealCN)) Source # 
type DivType Int (SequenceA to0 b0) # 
type DivType Int (SequenceA to0 b0) = SequenceA to0 (DivType Int b0)
type DivType Integer (SequenceA to0 b0) # 
type DivType Rational (SequenceA to0 b0) # 
type DivType Dyadic (SequenceA to0 b0) # 
type DivType Dyadic (SequenceA to0 b0) = SequenceA to0 (DivType Dyadic b0)
type DivTypeNoCN Int (SequenceA to0 b0) # 
type DivTypeNoCN Integer (SequenceA to0 b0) # 
type DivTypeNoCN Rational (SequenceA to0 b0) # 
type DivTypeNoCN Dyadic (SequenceA to0 b0) # 
type MulType Int (SequenceA to0 b0) # 
type MulType Int (SequenceA to0 b0) = SequenceA to0 (MulType Int b0)
type MulType Integer (SequenceA to0 b0) # 
type MulType Rational (SequenceA to0 b0) # 
type MulType Dyadic (SequenceA to0 b0) # 
type MulType Dyadic (SequenceA to0 b0) = SequenceA to0 (MulType Dyadic b0)
type PowType Int (SequenceA to0 a0) # 
type PowType Int (SequenceA to0 a0) = SequenceA to0 (PowType Int a0)
type PowType Integer (SequenceA to0 a0) # 
type PowType Rational (SequenceA to0 a0) # 
type PowType Dyadic (SequenceA to0 a0) # 
type PowType Dyadic (SequenceA to0 a0) = SequenceA to0 (PowType Dyadic a0)
type PowTypeNoCN Int (SequenceA to0 a0) # 
type PowTypeNoCN Integer (SequenceA to0 a0) # 
type PowTypeNoCN Rational (SequenceA to0 a0) # 
type PowTypeNoCN Dyadic (SequenceA to0 a0) # 
type AddType Int (SequenceA to0 b0) # 
type AddType Int (SequenceA to0 b0) = SequenceA to0 (AddType Int b0)
type AddType Integer (SequenceA to0 b0) # 
type AddType Rational (SequenceA to0 b0) # 
type AddType Dyadic (SequenceA to0 b0) # 
type AddType Dyadic (SequenceA to0 b0) = SequenceA to0 (AddType Dyadic b0)
type SubType Int (SequenceA to0 b0) # 
type SubType Int (SequenceA to0 b0) = SequenceA to0 (SubType Int b0)
type SubType Integer (SequenceA to0 b0) # 
type SubType Rational (SequenceA to0 b0) # 
type SubType Dyadic (SequenceA to0 b0) # 
type SubType Dyadic (SequenceA to0 b0) = SequenceA to0 (SubType Dyadic b0)
type MinMaxType Int (SequenceA to0 b0) # 
type MinMaxType Int (SequenceA to0 b0) = SequenceA to0 (MinMaxType Int b0)
type MinMaxType Integer (SequenceA to0 b0) # 
type MinMaxType Rational (SequenceA to0 b0) # 
type MinMaxType Dyadic (SequenceA to0 b0) # 
type OrderCompareType Int (SequenceA to0 a0) # 
type OrderCompareType Integer (SequenceA to0 a0) # 
type OrderCompareType Rational (SequenceA to0 a0) # 
type OrderCompareType Dyadic (SequenceA to0 a0) # 
type EqCompareType Int (SequenceA to0 a0) # 
type EqCompareType Integer (SequenceA to0 a0) # 
type EqCompareType Rational (SequenceA to0 a0) # 
type EqCompareType Dyadic (SequenceA to0 a0) # 
type EnsureNoCE es (SequenceA to a) # 
type EnsureNoCE es (SequenceA to a) = SequenceA to (EnsureNoCE es a)
type EnsureCE es (SequenceA to a) # 
type EnsureCE es (SequenceA to a) = SequenceA to (EnsureCE es a)
type LimitType Rational (CauchyReal -> CauchyRealCN) Source # 
type DivType Int (WithGlobalParamA to0 prm0 b0) # 
type DivType Int (WithGlobalParamA to0 prm0 b0) = WithGlobalParamA to0 prm0 (DivType Int b0)
type DivType Integer (WithGlobalParamA to0 prm0 b0) # 
type DivType Integer (WithGlobalParamA to0 prm0 b0) = WithGlobalParamA to0 prm0 (DivType Integer b0)
type DivType Rational (WithGlobalParamA to0 prm0 b0) # 
type DivType Dyadic (WithGlobalParamA to0 prm0 b0) # 
type DivType Dyadic (WithGlobalParamA to0 prm0 b0) = WithGlobalParamA to0 prm0 (DivType Dyadic b0)
type DivTypeNoCN Int (WithGlobalParamA to0 prm0 b0) # 
type DivTypeNoCN Int (WithGlobalParamA to0 prm0 b0) = WithGlobalParamA to0 prm0 (DivTypeNoCN Int b0)
type DivTypeNoCN Integer (WithGlobalParamA to0 prm0 b0) # 
type DivTypeNoCN Rational (WithGlobalParamA to0 prm0 b0) # 
type DivTypeNoCN Dyadic (WithGlobalParamA to0 prm0 b0) # 
type MulType Int (WithGlobalParamA to0 prm0 b0) # 
type MulType Int (WithGlobalParamA to0 prm0 b0) = WithGlobalParamA to0 prm0 (MulType Int b0)
type MulType Integer (WithGlobalParamA to0 prm0 b0) # 
type MulType Integer (WithGlobalParamA to0 prm0 b0) = WithGlobalParamA to0 prm0 (MulType Integer b0)
type MulType Rational (WithGlobalParamA to0 prm0 b0) # 
type MulType Dyadic (WithGlobalParamA to0 prm0 b0) # 
type MulType Dyadic (WithGlobalParamA to0 prm0 b0) = WithGlobalParamA to0 prm0 (MulType Dyadic b0)
type PowType Int (WithGlobalParamA to0 prm0 a0) # 
type PowType Int (WithGlobalParamA to0 prm0 a0) = WithGlobalParamA to0 prm0 (PowType Int a0)
type PowType Integer (WithGlobalParamA to0 prm0 a0) # 
type PowType Integer (WithGlobalParamA to0 prm0 a0) = WithGlobalParamA to0 prm0 (PowType Integer a0)
type PowType Rational (WithGlobalParamA to0 prm0 a0) # 
type PowType Dyadic (WithGlobalParamA to0 prm0 a0) # 
type PowType Dyadic (WithGlobalParamA to0 prm0 a0) = WithGlobalParamA to0 prm0 (PowType Dyadic a0)
type PowTypeNoCN Int (WithGlobalParamA to0 prm0 a0) # 
type PowTypeNoCN Int (WithGlobalParamA to0 prm0 a0) = WithGlobalParamA to0 prm0 (PowTypeNoCN Int a0)
type PowTypeNoCN Integer (WithGlobalParamA to0 prm0 a0) # 
type PowTypeNoCN Rational (WithGlobalParamA to0 prm0 a0) # 
type PowTypeNoCN Dyadic (WithGlobalParamA to0 prm0 a0) # 
type AddType Int (WithGlobalParamA to0 prm0 b0) # 
type AddType Int (WithGlobalParamA to0 prm0 b0) = WithGlobalParamA to0 prm0 (AddType Int b0)
type AddType Integer (WithGlobalParamA to0 prm0 b0) # 
type AddType Integer (WithGlobalParamA to0 prm0 b0) = WithGlobalParamA to0 prm0 (AddType Integer b0)
type AddType Rational (WithGlobalParamA to0 prm0 b0) # 
type AddType Dyadic (WithGlobalParamA to0 prm0 b0) # 
type AddType Dyadic (WithGlobalParamA to0 prm0 b0) = WithGlobalParamA to0 prm0 (AddType Dyadic b0)
type SubType Int (WithGlobalParamA to0 prm0 b0) # 
type SubType Int (WithGlobalParamA to0 prm0 b0) = WithGlobalParamA to0 prm0 (SubType Int b0)
type SubType Integer (WithGlobalParamA to0 prm0 b0) # 
type SubType Integer (WithGlobalParamA to0 prm0 b0) = WithGlobalParamA to0 prm0 (SubType Integer b0)
type SubType Rational (WithGlobalParamA to0 prm0 b0) # 
type SubType Dyadic (WithGlobalParamA to0 prm0 b0) # 
type SubType Dyadic (WithGlobalParamA to0 prm0 b0) = WithGlobalParamA to0 prm0 (SubType Dyadic b0)
type MinMaxType Int (WithGlobalParamA to0 prm0 b0) # 
type MinMaxType Int (WithGlobalParamA to0 prm0 b0) = WithGlobalParamA to0 prm0 (MinMaxType Int b0)
type MinMaxType Integer (WithGlobalParamA to0 prm0 b0) # 
type MinMaxType Rational (WithGlobalParamA to0 prm0 b0) # 
type MinMaxType Dyadic (WithGlobalParamA to0 prm0 b0) # 
type OrderCompareType Int (WithGlobalParamA to0 prm0 a0) # 
type OrderCompareType Integer (WithGlobalParamA to0 prm0 a0) # 
type OrderCompareType Rational (WithGlobalParamA to0 prm0 a0) # 
type OrderCompareType Dyadic (WithGlobalParamA to0 prm0 a0) # 
type EqCompareType Int (WithGlobalParamA to0 prm0 a0) # 
type EqCompareType Integer (WithGlobalParamA to0 prm0 a0) # 
type EqCompareType Rational (WithGlobalParamA to0 prm0 a0) # 
type EqCompareType Dyadic (WithGlobalParamA to0 prm0 a0) # 
type EnsureNoCE es (WithGlobalParamA to prm a) # 
type EnsureNoCE es (WithGlobalParamA to prm a) = WithGlobalParamA to prm (EnsureNoCE es a)
type EnsureCE es (WithGlobalParamA to prm a) # 
type EnsureCE es (WithGlobalParamA to prm a) = WithGlobalParamA to prm (EnsureCE es a)
type DivType (Sequence a) MPBall # 
type DivTypeNoCN (Sequence a) MPBall # 
type MulType (Sequence a) MPBall # 
type PowType (Sequence a) MPBall # 
type PowTypeNoCN (Sequence a) MPBall # 
type AddType (Sequence a) MPBall # 
type SubType (Sequence a) MPBall # 
type MinMaxType (Sequence a) MPBall # 
type MulType (Complex t) (CauchyRealA to) # 
type MulType (CauchyRealA to) (Complex t) # 
type AddType (Complex t) (CauchyRealA to) # 
type AddType (CauchyRealA to) (Complex t) # 
type SubType (Complex t) (CauchyRealA to) # 
type SubType (CauchyRealA to) (Complex t) # 
type SqrtType (SequenceA to a) # 
type SqrtType (SequenceA to a) = SequenceA to (SqrtType a)
type ExpType (SequenceA to a) # 
type ExpType (SequenceA to a) = SequenceA to (ExpType a)
type LogType (SequenceA to a) # 
type LogType (SequenceA to a) = SequenceA to (LogType a)
type SinCosType (SequenceA to a) # 
type AbsType (SequenceA to a) # 
type AbsType (SequenceA to a) = SequenceA to (AbsType a)
type NegType (SequenceA to a) # 
type NegType (SequenceA to a) = SequenceA to (NegType a)
type DivType (SequenceA to0 a0) Dyadic # 
type DivType (SequenceA to0 a0) Dyadic = SequenceA to0 (DivType a0 Dyadic)
type DivType (SequenceA to0 a0) Rational # 
type DivType (SequenceA to0 a0) Int # 
type DivType (SequenceA to0 a0) Int = SequenceA to0 (DivType a0 Int)
type DivType (SequenceA to0 a0) Integer # 
type DivTypeNoCN (SequenceA to0 a0) Dyadic # 
type DivTypeNoCN (SequenceA to0 a0) Rational # 
type DivTypeNoCN (SequenceA to0 a0) Int # 
type DivTypeNoCN (SequenceA to0 a0) Integer # 
type MulType (SequenceA to0 a0) Dyadic # 
type MulType (SequenceA to0 a0) Dyadic = SequenceA to0 (MulType a0 Dyadic)
type MulType (SequenceA to0 a0) Rational # 
type MulType (SequenceA to0 a0) Int # 
type MulType (SequenceA to0 a0) Int = SequenceA to0 (MulType a0 Int)
type MulType (SequenceA to0 a0) Integer # 
type PowType (SequenceA to0 a0) Rational # 
type PowType (SequenceA to0 a0) Dyadic # 
type PowType (SequenceA to0 a0) Dyadic = SequenceA to0 (PowType a0 Dyadic)
type PowType (SequenceA to0 a0) Int # 
type PowType (SequenceA to0 a0) Int = SequenceA to0 (PowType a0 Int)
type PowType (SequenceA to0 a0) Integer # 
type PowTypeNoCN (SequenceA to0 a0) Rational # 
type PowTypeNoCN (SequenceA to0 a0) Dyadic # 
type PowTypeNoCN (SequenceA to0 a0) Int # 
type PowTypeNoCN (SequenceA to0 a0) Integer # 
type AddType (SequenceA to0 a0) Dyadic # 
type AddType (SequenceA to0 a0) Dyadic = SequenceA to0 (AddType a0 Dyadic)
type AddType (SequenceA to0 a0) Rational # 
type AddType (SequenceA to0 a0) Int # 
type AddType (SequenceA to0 a0) Int = SequenceA to0 (AddType a0 Int)
type AddType (SequenceA to0 a0) Integer # 
type SubType (SequenceA to0 a0) Dyadic # 
type SubType (SequenceA to0 a0) Dyadic = SequenceA to0 (SubType a0 Dyadic)
type SubType (SequenceA to0 a0) Rational # 
type SubType (SequenceA to0 a0) Int # 
type SubType (SequenceA to0 a0) Int = SequenceA to0 (SubType a0 Int)
type SubType (SequenceA to0 a0) Integer # 
type MinMaxType (SequenceA to0 a0) Dyadic # 
type MinMaxType (SequenceA to0 a0) Rational # 
type MinMaxType (SequenceA to0 a0) Int # 
type MinMaxType (SequenceA to0 a0) Int = SequenceA to0 (MinMaxType a0 Int)
type MinMaxType (SequenceA to0 a0) Integer # 
type OrderCompareType (SequenceA to0 a0) Dyadic # 
type OrderCompareType (SequenceA to0 a0) Rational # 
type OrderCompareType (SequenceA to0 a0) Int # 
type OrderCompareType (SequenceA to0 a0) Integer # 
type EqCompareType (SequenceA to0 a0) Dyadic # 
type EqCompareType (SequenceA to0 a0) Rational # 
type EqCompareType (SequenceA to0 a0) Int # 
type EqCompareType (SequenceA to0 a0) Integer # 
type DivType (CollectErrors es a) (SequenceA to b) # 
type DivType (CollectErrors es a) (SequenceA to b) = EnsureCE es (DivType a (SequenceA to b))
type DivType (SequenceA to a) (CollectErrors es b) # 
type DivType (SequenceA to a) (CollectErrors es b) = EnsureCE es (DivType (SequenceA to a) b)
type DivType (SequenceA to a) (SequenceA to b) # 
type DivType (SequenceA to a) (SequenceA to b) = SequenceA to (DivType a b)
type DivTypeNoCN (CollectErrors es a) (SequenceA to b) # 
type DivTypeNoCN (SequenceA to a) (CollectErrors es b) # 
type DivTypeNoCN (SequenceA to a) (SequenceA to b) # 
type DivTypeNoCN (SequenceA to a) (SequenceA to b) = SequenceA to (DivTypeNoCN a b)
type MulType (CollectErrors es a) (SequenceA to b) # 
type MulType (CollectErrors es a) (SequenceA to b) = EnsureCE es (MulType a (SequenceA to b))
type MulType (SequenceA to a) (CollectErrors es b) # 
type MulType (SequenceA to a) (CollectErrors es b) = EnsureCE es (MulType (SequenceA to a) b)
type MulType (SequenceA to a) (SequenceA to b) # 
type MulType (SequenceA to a) (SequenceA to b) = SequenceA to (MulType a b)
type PowType (CollectErrors es a) (SequenceA to b) # 
type PowType (CollectErrors es a) (SequenceA to b) = EnsureCE es (PowType a (SequenceA to b))
type PowType (SequenceA to a) (CollectErrors es b) # 
type PowType (SequenceA to a) (CollectErrors es b) = EnsureCE es (PowType (SequenceA to a) b)
type PowType (SequenceA to a) (SequenceA to e) # 
type PowType (SequenceA to a) (SequenceA to e) = SequenceA to (PowType a e)
type PowTypeNoCN (CollectErrors es a) (SequenceA to b) # 
type PowTypeNoCN (SequenceA to a) (CollectErrors es b) # 
type PowTypeNoCN (SequenceA to a) (SequenceA to e) # 
type PowTypeNoCN (SequenceA to a) (SequenceA to e) = SequenceA to (PowTypeNoCN a e)
type AddType (CollectErrors es a) (SequenceA to b) # 
type AddType (CollectErrors es a) (SequenceA to b) = EnsureCE es (AddType a (SequenceA to b))
type AddType (SequenceA to a) (SequenceA to b) # 
type AddType (SequenceA to a) (SequenceA to b) = SequenceA to (AddType a b)
type AddType (SequenceA to a) (CollectErrors es b) # 
type AddType (SequenceA to a) (CollectErrors es b) = EnsureCE es (AddType (SequenceA to a) b)
type SubType (CollectErrors es a) (SequenceA to b) # 
type SubType (CollectErrors es a) (SequenceA to b) = EnsureCE es (SubType a (SequenceA to b))
type SubType (SequenceA to a) (SequenceA to b) # 
type SubType (SequenceA to a) (SequenceA to b) = SequenceA to (SubType a b)
type SubType (SequenceA to a) (CollectErrors es b) # 
type SubType (SequenceA to a) (CollectErrors es b) = EnsureCE es (SubType (SequenceA to a) b)
type MinMaxType (CollectErrors es a) (SequenceA to b) # 
type MinMaxType (CollectErrors es a) (SequenceA to b) = EnsureCE es (MinMaxType a (SequenceA to b))
type MinMaxType (SequenceA to a) (CollectErrors es b) # 
type MinMaxType (SequenceA to a) (CollectErrors es b) = EnsureCE es (MinMaxType (SequenceA to a) b)
type MinMaxType (SequenceA to a) (SequenceA to b) # 
type MinMaxType (SequenceA to a) (SequenceA to b) = SequenceA to (MinMaxType a b)
type OrderCompareType (CollectErrors es a) (SequenceA to b) # 
type OrderCompareType (SequenceA to a) (CollectErrors es b) # 
type OrderCompareType (SequenceA to a) (SequenceA to b) # 
type EqCompareType (CollectErrors es a) (SequenceA to b) # 
type EqCompareType (SequenceA to a) (CollectErrors es b) # 
type EqCompareType (SequenceA to a) (SequenceA to b) # 
type AndOrType (SequenceA to a) (SequenceA to b) # 
type AndOrType (SequenceA to a) (SequenceA to b) = SequenceA to (AndOrType a b)
type IfThenElseType (SequenceA to b) (SequenceA to t) # 
type DivType (CollectErrors es a) (WithGlobalParamA to prm b) # 
type DivType (CollectErrors es a) (WithGlobalParamA to prm b) = EnsureCE es (DivType a (WithGlobalParamA to prm b))
type DivTypeNoCN (CollectErrors es a) (WithGlobalParamA to prm b) # 
type MulType (CollectErrors es a) (WithGlobalParamA to prm b) # 
type MulType (CollectErrors es a) (WithGlobalParamA to prm b) = EnsureCE es (MulType a (WithGlobalParamA to prm b))
type PowType (CollectErrors es a) (WithGlobalParamA to prm b) # 
type PowType (CollectErrors es a) (WithGlobalParamA to prm b) = EnsureCE es (PowType a (WithGlobalParamA to prm b))
type PowTypeNoCN (CollectErrors es a) (WithGlobalParamA to prm b) # 
type AddType (CollectErrors es a) (WithGlobalParamA to prm b) # 
type AddType (CollectErrors es a) (WithGlobalParamA to prm b) = EnsureCE es (AddType a (WithGlobalParamA to prm b))
type SubType (CollectErrors es a) (WithGlobalParamA to prm b) # 
type SubType (CollectErrors es a) (WithGlobalParamA to prm b) = EnsureCE es (SubType a (WithGlobalParamA to prm b))
type MinMaxType (CollectErrors es a) (WithGlobalParamA to prm b) # 
type OrderCompareType (CollectErrors es a) (WithGlobalParamA to prm b) # 
type EqCompareType (CollectErrors es a) (WithGlobalParamA to prm b) # 
type SqrtType (WithGlobalParamA to prm a) # 
type SqrtType (WithGlobalParamA to prm a) = WithGlobalParamA to prm (SqrtType a)
type ExpType (WithGlobalParamA to prm a) # 
type ExpType (WithGlobalParamA to prm a) = WithGlobalParamA to prm (ExpType a)
type LogType (WithGlobalParamA to prm a) # 
type LogType (WithGlobalParamA to prm a) = WithGlobalParamA to prm (LogType a)
type SinCosType (WithGlobalParamA to prm a) # 
type AbsType (WithGlobalParamA to prm a) # 
type AbsType (WithGlobalParamA to prm a) = WithGlobalParamA to prm (AbsType a)
type NegType (WithGlobalParamA to prm a) # 
type NegType (WithGlobalParamA to prm a) = WithGlobalParamA to prm (NegType a)
type DivType (WithGlobalParamA to0 prm0 a0) Dyadic # 
type DivType (WithGlobalParamA to0 prm0 a0) Dyadic = WithGlobalParamA to0 prm0 (DivType a0 Dyadic)
type DivType (WithGlobalParamA to0 prm0 a0) Rational # 
type DivType (WithGlobalParamA to0 prm0 a0) Int # 
type DivType (WithGlobalParamA to0 prm0 a0) Int = WithGlobalParamA to0 prm0 (DivType a0 Int)
type DivType (WithGlobalParamA to0 prm0 a0) Integer # 
type DivType (WithGlobalParamA to0 prm0 a0) Integer = WithGlobalParamA to0 prm0 (DivType a0 Integer)
type DivTypeNoCN (WithGlobalParamA to0 prm0 a0) Dyadic # 
type DivTypeNoCN (WithGlobalParamA to0 prm0 a0) Rational # 
type DivTypeNoCN (WithGlobalParamA to0 prm0 a0) Int # 
type DivTypeNoCN (WithGlobalParamA to0 prm0 a0) Int = WithGlobalParamA to0 prm0 (DivTypeNoCN a0 Int)
type DivTypeNoCN (WithGlobalParamA to0 prm0 a0) Integer # 
type MulType (WithGlobalParamA to0 prm0 a0) Dyadic # 
type MulType (WithGlobalParamA to0 prm0 a0) Dyadic = WithGlobalParamA to0 prm0 (MulType a0 Dyadic)
type MulType (WithGlobalParamA to0 prm0 a0) Rational # 
type MulType (WithGlobalParamA to0 prm0 a0) Int # 
type MulType (WithGlobalParamA to0 prm0 a0) Int = WithGlobalParamA to0 prm0 (MulType a0 Int)
type MulType (WithGlobalParamA to0 prm0 a0) Integer # 
type MulType (WithGlobalParamA to0 prm0 a0) Integer = WithGlobalParamA to0 prm0 (MulType a0 Integer)
type PowType (WithGlobalParamA to0 prm0 a0) Rational # 
type PowType (WithGlobalParamA to0 prm0 a0) Dyadic # 
type PowType (WithGlobalParamA to0 prm0 a0) Dyadic = WithGlobalParamA to0 prm0 (PowType a0 Dyadic)
type PowType (WithGlobalParamA to0 prm0 a0) Int # 
type PowType (WithGlobalParamA to0 prm0 a0) Int = WithGlobalParamA to0 prm0 (PowType a0 Int)
type PowType (WithGlobalParamA to0 prm0 a0) Integer # 
type PowType (WithGlobalParamA to0 prm0 a0) Integer = WithGlobalParamA to0 prm0 (PowType a0 Integer)
type PowTypeNoCN (WithGlobalParamA to0 prm0 a0) Rational # 
type PowTypeNoCN (WithGlobalParamA to0 prm0 a0) Dyadic # 
type PowTypeNoCN (WithGlobalParamA to0 prm0 a0) Int # 
type PowTypeNoCN (WithGlobalParamA to0 prm0 a0) Int = WithGlobalParamA to0 prm0 (PowTypeNoCN a0 Int)
type PowTypeNoCN (WithGlobalParamA to0 prm0 a0) Integer # 
type AddType (WithGlobalParamA to0 prm0 a0) Dyadic # 
type AddType (WithGlobalParamA to0 prm0 a0) Dyadic = WithGlobalParamA to0 prm0 (AddType a0 Dyadic)
type AddType (WithGlobalParamA to0 prm0 a0) Rational # 
type AddType (WithGlobalParamA to0 prm0 a0) Int # 
type AddType (WithGlobalParamA to0 prm0 a0) Int = WithGlobalParamA to0 prm0 (AddType a0 Int)
type AddType (WithGlobalParamA to0 prm0 a0) Integer # 
type AddType (WithGlobalParamA to0 prm0 a0) Integer = WithGlobalParamA to0 prm0 (AddType a0 Integer)
type SubType (WithGlobalParamA to0 prm0 a0) Dyadic # 
type SubType (WithGlobalParamA to0 prm0 a0) Dyadic = WithGlobalParamA to0 prm0 (SubType a0 Dyadic)
type SubType (WithGlobalParamA to0 prm0 a0) Rational # 
type SubType (WithGlobalParamA to0 prm0 a0) Int # 
type SubType (WithGlobalParamA to0 prm0 a0) Int = WithGlobalParamA to0 prm0 (SubType a0 Int)
type SubType (WithGlobalParamA to0 prm0 a0) Integer # 
type SubType (WithGlobalParamA to0 prm0 a0) Integer = WithGlobalParamA to0 prm0 (SubType a0 Integer)
type MinMaxType (WithGlobalParamA to0 prm0 a0) Dyadic # 
type MinMaxType (WithGlobalParamA to0 prm0 a0) Rational # 
type MinMaxType (WithGlobalParamA to0 prm0 a0) Int # 
type MinMaxType (WithGlobalParamA to0 prm0 a0) Int = WithGlobalParamA to0 prm0 (MinMaxType a0 Int)
type MinMaxType (WithGlobalParamA to0 prm0 a0) Integer # 
type OrderCompareType (WithGlobalParamA to0 prm0 a0) Dyadic # 
type OrderCompareType (WithGlobalParamA to0 prm0 a0) Rational # 
type OrderCompareType (WithGlobalParamA to0 prm0 a0) Int # 
type OrderCompareType (WithGlobalParamA to0 prm0 a0) Integer # 
type EqCompareType (WithGlobalParamA to0 prm0 a0) Dyadic # 
type EqCompareType (WithGlobalParamA to0 prm0 a0) Rational # 
type EqCompareType (WithGlobalParamA to0 prm0 a0) Int # 
type EqCompareType (WithGlobalParamA to0 prm0 a0) Integer # 
type DivType (WithGlobalParamA to prm a) (CollectErrors es b) # 
type DivType (WithGlobalParamA to prm a) (CollectErrors es b) = EnsureCE es (DivType (WithGlobalParamA to prm a) b)
type DivTypeNoCN (WithGlobalParamA to prm a) (CollectErrors es b) # 
type MulType (WithGlobalParamA to prm a) (CollectErrors es b) # 
type MulType (WithGlobalParamA to prm a) (CollectErrors es b) = EnsureCE es (MulType (WithGlobalParamA to prm a) b)
type PowType (WithGlobalParamA to prm a) (CollectErrors es b) # 
type PowType (WithGlobalParamA to prm a) (CollectErrors es b) = EnsureCE es (PowType (WithGlobalParamA to prm a) b)
type PowTypeNoCN (WithGlobalParamA to prm a) (CollectErrors es b) # 
type AddType (WithGlobalParamA to prm a) (CollectErrors es b) # 
type AddType (WithGlobalParamA to prm a) (CollectErrors es b) = EnsureCE es (AddType (WithGlobalParamA to prm a) b)
type SubType (WithGlobalParamA to prm a) (CollectErrors es b) # 
type SubType (WithGlobalParamA to prm a) (CollectErrors es b) = EnsureCE es (SubType (WithGlobalParamA to prm a) b)
type MinMaxType (WithGlobalParamA to prm a) (CollectErrors es b) # 
type OrderCompareType (WithGlobalParamA to prm a) (CollectErrors es b) # 
type EqCompareType (WithGlobalParamA to prm a) (CollectErrors es b) # 
type DivType (WithGlobalParamA to prm a) (WithGlobalParamA to prm b) # 
type DivType (WithGlobalParamA to prm a) (WithGlobalParamA to prm b) = WithGlobalParamA to prm (DivType a b)
type DivTypeNoCN (WithGlobalParamA to prm a) (WithGlobalParamA to prm b) # 
type MulType (WithGlobalParamA to prm a) (WithGlobalParamA to prm b) # 
type MulType (WithGlobalParamA to prm a) (WithGlobalParamA to prm b) = WithGlobalParamA to prm (MulType a b)
type PowType (WithGlobalParamA to prm a) (WithGlobalParamA to prm e) # 
type PowType (WithGlobalParamA to prm a) (WithGlobalParamA to prm e) = WithGlobalParamA to prm (PowType a e)
type PowTypeNoCN (WithGlobalParamA to prm a) (WithGlobalParamA to prm e) # 
type AddType (WithGlobalParamA to prm a) (WithGlobalParamA to prm b) # 
type AddType (WithGlobalParamA to prm a) (WithGlobalParamA to prm b) = WithGlobalParamA to prm (AddType a b)
type SubType (WithGlobalParamA to prm a) (WithGlobalParamA to prm b) # 
type SubType (WithGlobalParamA to prm a) (WithGlobalParamA to prm b) = WithGlobalParamA to prm (SubType a b)
type MinMaxType (WithGlobalParamA to prm a) (WithGlobalParamA to prm b) # 
type MinMaxType (WithGlobalParamA to prm a) (WithGlobalParamA to prm b) = WithGlobalParamA to prm (MinMaxType a b)
type OrderCompareType (WithGlobalParamA to prm a) (WithGlobalParamA to prm b) # 
type EqCompareType (WithGlobalParamA to prm a) (WithGlobalParamA to prm b) # 
type AndOrType (WithGlobalParamA to prm a) (WithGlobalParamA to prm b) # 
type AndOrType (WithGlobalParamA to prm a) (WithGlobalParamA to prm b) = WithGlobalParamA to prm (AndOrType a b)
type IfThenElseType (WithGlobalParamA to prm b) (WithGlobalParamA to prm t) # 

type QAPromiseA to a = () `to` a Source #

(?..) :: QA to p -> Q p `to` QAPromiseA to (A p) infix 1 Source #

An infix synonym of qaMakeQuery.

qaRename :: (String -> String) -> QA to p -> QA to p Source #

mapQA :: Arrow to => (p1 -> p2) -> (Q p1 -> Q p2) -> (Q p2 -> Q p1) -> (A p1 -> A p2) -> QA to p1 -> QA to p2 Source #

mapQAsameQ :: (Arrow to, Q p1 ~ Q p2) => (p1 -> p2) -> (A p1 -> A p2) -> QA to p1 -> QA to p2 Source #

QAArrows

data AnyProtocolQA to Source #

Constructors

QAProtocolCacheable p => AnyProtocolQA (QA to p) 

class (ArrowChoice to, Eq (QAId to)) => QAArrow to where Source #

A class of Arrows suitable for use in QA objects.

Associated Types

type QAId to Source #

Methods

qaRegister :: QAProtocolCacheable p => [QARegOption] -> QA to p `to` QA to p Source #

Register a QA object, which leads to a change in its query processing mechanism so that, eg, answers can be cached or computations assigned to different threads/processes.

The "sources" component of the incoming QA object can be used to record the dependency graph among QA objects. After registration, the QA object should have its list of dependencies **empty** as the registration has recorded them elsewhere.

newQA :: QAProtocolCacheable p => String -> [AnyProtocolQA to] -> p -> Maybe (Q p) -> ((Maybe (QAId to), Maybe (QAId to)) -> Q p `to` A p) -> QA to p Source #

Create a qa object. The object is not "registered" automatically. Invoking this function does not lead to any to-arrow computation. The function is an operation of QAArrow so that for some arrows, the question-answer mechanism can be automatically altered. In particular, this is used to make all objects in the (->) arrow automatically (unsafely) caching their answers. For most arrows, the default implementation is sufficient.

qaFulfilPromiseA :: QAPromiseA to a `to` a Source #

qaMakeQueryGetPromiseA :: Maybe (QAId to) -> (QA to p, Q p) `to` QAPromiseA to (A p) Source #

defaultNewQA :: (QAArrow to, QAProtocolCacheable p) => String -> [AnyProtocolQA to] -> p -> Maybe (Q p) -> ((Maybe (QAId to), Maybe (QAId to)) -> Q p `to` A p) -> QA to p Source #

qaMakeQuery Source #

Arguments

:: QAArrow to 
=> QA to p 
-> Maybe (QAId to) 
-> Q p `to` A p

composition of qaMakeQueryGetPromise and the execution of the promise

qaMakeQueryA :: QAArrow to => Maybe (QAId to) -> (QA to p, Q p) `to` A p Source #

qaMakeQueriesA :: QAArrow to => Maybe (QAId to) -> [(QA to p, Q p)] `to` [A p] Source #

qaMakeQueryOnManyA :: QAArrow to => Maybe (QAId to) -> ([QA to p], Q p) `to` [A p] Source #

(?<-) :: QAArrow to => QA to p -> Maybe (QAId to) -> Q p `to` A p infix 1 Source #

An infix synonym of qaMakeQuery

(?) :: QAArrow to => QA to p -> Q p `to` A p infix 1 Source #

An infix synonym of qaMakeQuery with no source

(-:-) :: (QAArrow to, QAProtocolCacheable p) => QA to p `to` QA to p infix 0 Source #

An infix synonym of qaRegister

(-:-|) :: (QAArrow to, QAProtocolCacheable p) => QA to p `to` QA to p infix 0 Source #

An infix synonym of qaRegister

(-:-||) :: (QAArrow to, QAProtocolCacheable p) => QA to p `to` QA to p infix 0 Source #

An infix synonym of qaRegister

(-?<-) :: QAArrow to => Maybe (QAId to) -> (QA to p, Q p) `to` A p infix 0 Source #

An infix synonym of qaMakeQueryA

(-?-) :: QAArrow to => (QA to p, Q p) `to` A p Source #

An infix synonym of qaMakeQueryA with no source

(-?..<-) :: QAArrow to => Maybe (QAId to) -> (QA to p, Q p) `to` QAPromiseA to (A p) infix 0 Source #

An infix synonym of qaMakeQueryGetPromiseA

(-?..-) :: QAArrow to => (QA to p, Q p) `to` QAPromiseA to (A p) Source #

An infix synonym of qaMakeQueryGetPromiseA with no source

(-???<-) :: QAArrow to => Maybe (QAId to) -> [(QA to p, Q p)] `to` [A p] infix 0 Source #

An infix synonym of qaMakeQueriesA

(-<?<->-) :: QAArrow to => Maybe (QAId to) -> ([QA to p], Q p) `to` [A p] infix 0 Source #

An infix synonym of qaMakeQueryOnManyA

qaMake2Queries :: QAArrow to => (QA to p1, QA to p2) -> Maybe (QAId to) -> (Q p1, Q p2) `to` (A p1, A p2) Source #

Run two queries in an interleaving manner, enabling parallelism.

(??<-) :: QAArrow to => (QA to p1, QA to p2) -> Maybe (QAId to) -> (Q p1, Q p2) `to` (A p1, A p2) infix 0 Source #

An infix synonym of qaMake2Queries.

qaMake3Queries :: QAArrow to => (QA to p1, QA to p2, QA to p3) -> Maybe (QAId to) -> (Q p1, Q p2, Q p3) `to` (A p1, A p2, A p3) Source #

Run two queries in an interleaving manner, enabling parallelism.