module Algebra.Field.Galois.Conway
(Conway,
ConwayPolynomial(..),
addConwayPolynomials,
conwayFile) where
import Algebra.Field.Galois.Internal
import Algebra.Prelude.Core
import Control.Monad (liftM)
import Language.Haskell.TH (runIO)
import Language.Haskell.TH (DecsQ)
do dat <- tail . init . lines <$> runIO (readFile "data/conway.txt")
concat <$> mapM (buildInstance . head . parseLine) dat
addConwayPolynomials :: [(Integer, Integer, [Integer])] -> DecsQ
addConwayPolynomials = liftM concat . mapM buildInstance
conwayFile :: FilePath -> DecsQ
conwayFile fp = do
dat <- tail . init . lines <$> runIO (readFile fp)
addConwayPolynomials $ concatMap parseLine dat