anchor.diff:                      |> Seq.map (fun (sym, pow) ->
                           [for p in 0L .. pow-1L do yield sizeSymVars.[sym]]
                           |> String.concat "*")
  -                    |> Seq.append (Seq.singleton (sprintf "%d" fac.IntValue))
  +                    |> Seq.append (Seq.singleton (sprintf "%dLL" fac.IntValue))
                       |> String.concat " * ")
                   |> String.concat " + "
   
  
positive.code: 
      let generateSizeSpecCode (sizeSymVars: Map<SizeSymbolT, VarNameT>) (ss: SizeSpecT) =
          match SizeSpec.tryEval ss with
          | Some v -> sprintf "%d" v
          | None ->
              match SizeSpec.simplify ss with 
              | Base (Fixed c) -> sprintf "%d" c.IntValue
              | Base (Sym sym) -> sizeSymVars.[sym]
              | Broadcast -> "1"
              | Multinom m ->
                  m.Products
                  |> Map.toSeq
  
negative.code:         try
              match tn with
              | _ when tn = TypeName.ofType<int> -> sprintf "%d" (c.GetConvertedValue<int>())
              | _ when tn = TypeName.ofType<int64> -> sprintf "%d" (c.GetConvertedValue<int64>())
              | _ when tn = TypeName.ofType<single> -> sprintf "%e" (c.GetConvertedValue<single>())
              | _ when tn = TypeName.ofType<double> -> sprintf "%e" (c.GetConvertedValue<double>())
              | _ -> failwithf "unsupported type: %A" tn
  