| 197 | | {- |
| 198 | | Stmts stmts@((_,pos):_) | not (runOptSeparately opts) -> do |
| 199 | | let withDump = stmts ++ [(Syn "env" [], pos)] |
| 200 | | return $ Stmts withDump |
| 201 | | -} |
| 202 | | _ | not (runOptSeparately opts) -> do |
| 203 | | -- let pos = SourcePos "<interactive>" 0 0 |
| 204 | | return $ Stmts exp (Syn "env" []) |
| 205 | | _ -> return exp |
| | 197 | _ | runOptSeparately opts -> return exp |
| | 198 | _ -> return $ makeDumpEnv exp |
| | 199 | -- XXX Generalize this into structural folding |
| | 200 | makeDumpEnv (Stmts x exp) = Stmts x $ makeDumpEnv exp |
| | 201 | makeDumpEnv (Cxt x exp) = Cxt x $ makeDumpEnv exp |
| | 202 | makeDumpEnv (Pad x y exp) = Pad x y $ makeDumpEnv exp |
| | 203 | makeDumpEnv (Sym x y exp) = Sym x y $ makeDumpEnv exp |
| | 204 | makeDumpEnv (Pos x exp) = Pos x $ makeDumpEnv exp |
| | 205 | makeDumpEnv (Parens exp) = Parens $ makeDumpEnv exp |
| | 206 | makeDumpEnv exp = Stmts exp (Syn "env" []) |