anchor.diff:      )
   
   let isByRef (t: FSharpType) =
  +    let t = getOrigType t
       if t.IsGenericParameter then
           false
       else
  -    let t = getOrigType t
       if t.IsTupleType || t.IsFunctionType then false else
       t.HasTypeDefinition && t.TypeDefinition.IsByRef
   
  
positive.code:         body |> List.foldBack (fun (c, r) body -> Let (c, r, body)) (List.zip captures results)
  
  let removeListOfArray (argType: FSharpType) (expr: Expression) =
      if isSeq argType then
          match IgnoreExprSourcePos expr with
          | Call (None, td, meth, [ NewArray _ as arr ]) 
              when td.Entity = Definitions.ListModule && meth.Entity = Definitions.ListOfArray  ->
  
negative.code:     if t.IsAbbreviation then getOrigType t.AbbreviatedType else t
  
  let isUnit (t: FSharpType) =
      let t = getOrigType t
      if t.IsGenericParameter then
          false
      else
  