content: [workspace]
  resolver = "3"
  members = ["crates/*"]
  default-members = ["crates/morphic_compiler"]
  
  [workspace.package]
  authors = ["William Brandon", "Wilson Berkow", "Frank Dai", "Benjamin Driscoll"]
  description = "Pure functional programming with whole-program memory management inference"
  edition = "2021"
  
  [workspace.dependencies]
  benchmark = { path = "./crates/benchmark" }
  find_tool = { path = "./crates/find_tool" }
  morphic_backend = { path = "./crates/morphic_backend" }
  morphic_common = { path = "./crates/morphic_common" }
  morphic_compiler = { path = "./crates/morphic_compiler" }
  morphic_frontend = { path = "./crates/morphic_frontend" }
  morphic_macros = { path = "./crates/morphic_macros" }
  
  # Misc.
  walkdir = "2.4.0"
  which = "8.0.0"
  lalrpop = "0.20.0"
  lalrpop-util = "0.20.0"
  im-rc = "15.1.0"
  stacker = "0.1.15"
  better-panic = "0.3.0"
  clap = { version = "4.4.10", features = ["color", "string"] }
  cc = "1.0.83"
  tempfile = "3.8.1"
  crossbeam-channel = "0.5.8"
  inkwell = { git = "https://github.com/TheDan64/inkwell", rev = "b8d81bfe7224d1ee689a8b777d6f5ba9a869b98b", features = [
      "llvm16-0",
  ] }
  ansi_term = "0.12.1"
  textwrap = "0.16.0"
  json = "0.12.4" # Used for string escaping in profile report generation
  indicatif = "0.17.7"
  id_collections = "1.0.1"
  id_graph_sccs = "0.1.1"
  once_cell = "1.19.0"
  num-traits = "0.2.19"
  hashbrown = "0.14.5"
  rustc-hash = "2.0.0"
  serde = { version = "1.0.193", features = ["derive"] }
  serde_json = "1.0.108"
  
  # Error handling
  anyhow = "1.0.75"
  thiserror = "1.0.50"
  
  # RNG used for procedurally (but deterministically) generating test inputs
  rand = "0.9"
  rand_distr = "0.5"
  rand_pcg = "0.9"
  
  # Proc-macros
  proc-macro2 = "1.0.86"
  quote = "1.0.36"
  syn = { version = "2.0.72", features = ["extra-traits", "parsing"] }
  