Functor to represent queries to oracles specified by an OracleSpec ι,
defined to be the object type of the corresponding PFunctor.
In particular an element of OracleQuery spec α consists of an input value t : spec.Domain,
and a continuation f : spec.Range t → α specifying what to do with the result.
See OracleQuery.query for the case when the continuation f just returns the query result.
Equations
Instances For
Equations
Instances For
OracleQuery spec inherets the functorial structure from PFunctor.Obj.
Equations
The oracle input used in an oracle query.
Equations
Instances For
The continutation used for the result of an oracle query.
Equations
Instances For
Two oracles queries are equal if they query for the same input and run extensionally equal continuation on the results of the query.
If an oracle exists and the output type is non-empty then the type of queries is non-empty.
Equations
If there are no oracles available then the type of queries is empty.
If there is a at most one oracle and output, then ther is at most one query.
Query an oracle on in input t to get a result in the corresponding range t.
Note: could consider putting this in the OracleQuery monad, type inference struggles tho.