suffixtree-0.2: examples/Tiny.hs
module Main where
import qualified Data.SuffixTree as S
import System.Environment (getArgs)
main = do
[fileName, cons] <- getArgs
let ctor = case cons of
"1" -> S.constructWith [minBound..maxBound]
"2" -> S.construct
tree <- ctor `fmap` readFile fileName
putStrLn (show (S.fold id id (\_ a _ -> a+1) id 0 tree) ++ " edges")
(lines `fmap` getContents) >>= mapM_ (print . (`S.elem` tree))