-- | The 'axiom' runs a backtracking algebra. The name comes from Robert -- Giegerichs @ADP@ where @axiom@ runs the fully formed algorithm. module ADP.Fusion.Core.SynVar.Axiom where -- | The Axiom type class class Axiom t where -- | The corresponding stream being returned by 'axiom' type AxiomStream t ∷ * -- | Index type when running the axiom type AxiomIx t ∷ * -- | Given a table, run the axiom axiom ∷ t → AxiomStream t -- | Given a table and index, run the axiom from the index on. This is useful -- for scanning type algorithms that need to return all locally optimal -- structures, as a locally optimal may start at any given index. axiomAt ∷ t → AxiomIx t → AxiomStream t