anchor.diff:                      litAtom "integer"
                       lst [litAtom "unsigned"; litAtom "big"]])
   
  -    static member prt printT (BitString (t, exps)) =
  +    static member prt (printT: 'T -> string) (BitString (t: 'T, exps)) =
           let args = String.concat "," (List.map (Exps.prt 0) exps)
           let b = printT t
           sprintf "#<%s>(%s)" b args
  
positive.code:     | L of 'T list // no tail expr
      | LL of 'T list * 'T //head elements * tail
  with
      static member prt printT l =
          match l with
          | L ls ->
              let heads = String.concat "," (List.map printT ls)
  
negative.code:         | Binary bs ->
              let x =
                  bs
                  |> List.map (BitString.prt (Exps.prt 0))
                  |> String.concat commaNl
              sprintf "%s#{%s}#" indent x
          | Seq (first, second) ->
  