///|
pub fn unit(loc? : @basic.Location) -> @syntax.Expr {
  @syntax.Expr::Unit(
    loc=loc.unwrap_or({
      start: { fname: "", lnum: 0, bol: 0, cnum: 0 },
      end: { fname: "", lnum: 0, bol: 0, cnum: 0 },
    }),
    faked=true,
  )
}

///|
#callsite(autofill(loc))
pub fn[A] error(msg : String, loc~ : SourceLoc) -> A {
  println("\{msg} \{loc}")
  panic()
}