anchor.diff:  and Ann<'T> =
       | Constr of 'T      // ^ core erlang construct
       | Ann of 'T * List<Const> // ^ core erlang annotated construct
  -    static member prt p ann : string =
  +    static member prt (printT: 'T -> string) ann : string =
           match ann with
  -        | Constr t -> p t
  -        | Ann (t, _) -> p t
  +        | Constr t -> printT t
  +        | Ann (t, _) -> printT t
   
   and Function = Function of Atom * int
   with
  
positive.code:                     litAtom "integer"
                      lst [litAtom "unsigned"; litAtom "big"]])
  
      static member prt printT (BitString (t, exps)) =
          let args = String.concat "," (List.map (Exps.prt 0) exps)
          let b = printT t
          sprintf "#<%s>(%s)" b args
  
negative.code:     | L of 'T list // no tail expr
      | LL of 'T list * 'T //head elements * tail
  with
      static member prt (printT: 'T -> string) (l: ExprList<'T>) =
          match l with
          | L ls ->
              let heads = String.concat "," (List.map printT ls)
  