module Grow where import Definitive import Language.Parser import Language.Grow import Language.Syntax.Grow c'growing :: Constraint (SyntaxT Growing) c'growing = id trans t = map (getMax . fst) . grow t . reduce -- trans = id main :: IO () main = cli "Grow" $ case ?cliargs of [t] -> void $ do l <- (readString "Seed" <&> map2 c'growing (cut growExpr)^..parser) case l of [] -> putStrLn "Couldn't parse the Seed file" _ -> forl_ (traverse.l'2.traverse) l $ \a -> print =<< trans t a _ -> error "Usage: grow "