Could someone please explain the difference between a symbol block and quote node in an expression? Thank you.
Do you mean a Symbol node and a QuoteNode node in expression trees?  I’m not sure what you mean by a “symbol block”.
I mean something like this. The head here is a symbol block. Also, is there any list of all possible head entries that I can read for sake of completeness? I think this part is not as well documented as other parts. Thanks.
julia> e = :(a = 2; b = 2)
quote
    a = 2
    b = 2
end
julia> dump(e)
Expr
  head: Symbol block
  args: Array{Any}((2,))
    1: Expr
      head: Symbol =
      args: Array{Any}((2,))
        1: Symbol a
        2: Int64 2
      typ: Any
    2: Expr
      head: Symbol =
      args: Array{Any}((2,))
        1: Symbol b
        2: Int64 2
      typ: Any
  typ: Any