A source of strings unique within F[_]
, an implementation must have the
property that, if Applicative[F], then (freshName |@| freshName)(_ != _).
The various representations of an arbitrary query, as seen by the filesystem connectors, along with the operations for dealing with them.
The various representations of an arbitrary query, as seen by the filesystem connectors, along with the operations for dealing with them.
There are a few patterns that are worth noting: -
(src: A, ..., lBranch: FreeQS[T], rBranch: FreeQS[T], ...)
– used in operations that combine multiple data sources (notably joins and unions). This holds the divergent parts of the data sources in the branches, with SrcHole indicating a reference back to the commonsrc
of the two branches. There is not required to be a SrcHole. -Free[F, A]
– we use this structure as a restricted form of variable binding, whereF
is some pattern functor, andA
is some enumeration that has a specific referent. E.g., FreeMap is a recursive structure of MapFunc that has a single “variable”, SrcHole, which (usually) refers to thesrc
parameter of that operation. JoinFunc, FreeQS, and therepair
parameter to Reduce behave similarly. - We use the type parameterQS[_]
to indicate QScript, as well as the type parametersIN[_]
andOUT[_]
to indicate the input and output coproducts in transformations where they can be different.