let print_lexp (l: lexp) = match l with
      LVar(id)          ->  "LVar("^ (print_ide id) ^")"
    | LVec(id,ex)       ->  "LVec("^ (print_ide id) ^","^ (print_aexp ex) ^")"
    | LMat(id,ex1,ex2)  ->  "LMat("^ (print_ide id) ^","^ (print_aexp ex1) ^","^ (print_aexp ex2) ^")"