-- | The 'axiom' runs a backtracking algebra. The name comes from Robert
-- Giegerichs @ADP@ where @axiom@ runs the fully formed algorithm.
module ADP.Fusion.SynVar.Axiom where
-- | The Axiom type class
class Axiom t where
-- | The corresponding stream being returned by 'axiom'
type AxiomStream t :: *
-- | Given a table, run the axiom
axiom :: t -> AxiomStream t