module Symantic.Parser.Automaton ( module Symantic.Parser.Automaton.Instructions ) where import Symantic.Parser.Automaton.Instructions import Symantic.Parser.Grammar import Data.Function ((.)) import qualified Data.Functor as Functor import System.IO (IO) import qualified Language.Haskell.TH.Syntax as TH generateAutomaton :: Grammar repr => ObserveSharing TH.Name (OptimizeComb TH.Name repr) a -> IO (repr a) generateAutomaton = (optimizeComb Functor.<$>) . observeSharing