module Main where do' :: ((->) ([] AST.Expression) AST.Expression) do' = (fnCase (((:) var ((:) (AST.Symbol "<-") ((:) val rest))) (AST.SExpression (concat [[(AST.Symbol ">>=")],[val],[(AST.SExpression (concat [[(AST.Symbol "fn")],[(AST.SExpression (concat [[var]]))],[(do' rest)]]))]]))) (((:) val rest) (case rest of {[] -> val;_ -> (AST.SExpression (concat [[(AST.Symbol ">>")],[val],[(do' rest)]]))}))) main :: (IO ()) main = (do line (<-) getLine (putStrLn line) (pure ()))