perf: Lazy run print monads

This commit is contained in:
Leni Aniva 2024-04-08 10:32:13 -07:00
parent be44eadde5
commit c629163aa1
Signed by: aniva
GPG Key ID: 4D9B1C8D10EA4C50
1 changed files with 6 additions and 8 deletions

View File

@ -160,14 +160,12 @@ partial def serialize_expression_ast (expr: Expr) (sanitize: Bool := true): Meta
of_name (name: Name) := name_to_ast name sanitize of_name (name: Name) := name_to_ast name sanitize
def serialize_expression (options: @&Protocol.Options) (e: Expr): MetaM Protocol.Expression := do def serialize_expression (options: @&Protocol.Options) (e: Expr): MetaM Protocol.Expression := do
let pp := toString (← Meta.ppExpr e) let pp?: Option String ← match options.printExprPretty with
let pp?: Option String := match options.printExprPretty with | true => pure $ .some $ toString $ ← Meta.ppExpr e
| true => .some pp | false => pure $ .none
| false => .none let sexp?: Option String ← match options.printExprAST with
let sexp: String ← serialize_expression_ast e | true => pure $ .some $ ← serialize_expression_ast e
let sexp?: Option String := match options.printExprAST with | false => pure $ .none
| true => .some sexp
| false => .none
return { return {
pp?, pp?,
sexp? sexp?