Grow-1.1: Grow.hs
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 <target>"