1use sim_kernel::Expr;
4
5pub fn expr_kind(value: &Expr) -> &'static str {
7 match value {
8 Expr::Nil => "nil",
9 Expr::Bool(_) => "bool",
10 Expr::Number(_) => "number",
11 Expr::Symbol(_) => "symbol",
12 Expr::Local(_) => "local",
13 Expr::String(_) => "string",
14 Expr::Bytes(_) => "bytes",
15 Expr::List(_) => "list",
16 Expr::Vector(_) => "vector",
17 Expr::Map(_) => "map",
18 Expr::Set(_) => "set",
19 Expr::Call { .. } => "call",
20 Expr::Infix { .. } => "infix",
21 Expr::Prefix { .. } => "prefix",
22 Expr::Postfix { .. } => "postfix",
23 Expr::Block(_) => "block",
24 Expr::Quote { .. } => "quote",
25 Expr::Annotated { .. } => "annotated",
26 Expr::Extension { .. } => "extension",
27 }
28}