PS
# arrowex.m4
# https://tex.stackexchange.com/questions/727004/how-do-i-create-hook-arrows-in-tikz-diagram-instead-of-plain-arrows
gen_init

 movewid = 1
 moveht = 12bp__

 ifdpic(
  `{{ arrow -> 0 }; move; "\tt arrow -> 0" ljust }
   move down_; right_
   {{ arrow -> 1 }; move; "{\tt arrow -> 1} (default)" ljust }
   move down_; right_
   {{ arrow -> 3 }; move; "\tt arrow -> 3" ljust } ',
  `{{arrowhead = 0; arrow}; move; "\tt arrowhead = 0; arrow" ljust }
   move down_; right_
   {{arrowhead = 1; arrow}; move
     "{\tt arrowhead = 1; arrow} (default)" ljust } ')

 move down_; right_
 arrowwid = 8bp__; arrowht = 10bp__
 {{ sarrow(,type=Plain)}; move;
  {"`\tt arrowwid=8bp\_\_; arrowht=10bp\_\_; sarrow(,type=Plain)'" ljust }}
 move down_; right_
 {{ sarrow(,type=PP;hook=R;)}; move;
  {"`\tt sarrow(,type=PP;hook=R;)'" ljust }}
 move down_; right_
 {{ sarrow(,type=Open)}; move;
  {"`\tt sarrow(,type=Open)'" ljust }}
 move down_; right_
 {{ sarrow(,type=DI;head=colored "blue")}; move;
  {"`\tt sarrow(,type=DI;head=colored \"blue\")'" ljust }}
 move down_; right_
 {{ sarrow(,type=Open;head=fill_(0))}; move;
  {"`\tt sarrow(,type=Open;head=fill\_(0))'" ljust }}
 move down_; right_
 {{ sarrow(,type=Crow;shaft=dashed)}; move
  {"`\tt sarrow(,type=Crow;shaft=dashed)'" ljust }}
 move down_; right_
 {{ sarrow(,type=Diamond;head=shaded "red";lgth=16bp__)}; move
  {"`\tt sarrow(,type=Diamond;head=shaded \"red\";lgth=16bp\_\_)'" ljust }}

PE