anchor.diff:  open System.Reflection
   open System.Collections.Generic
   
  -type TypeMapping(clrType : Type, varType : VariableType, translate : Value -> obj) =
  +type TypeMapping(clrType : Type, variableType : VariableType Lazy, translate : Value -> obj) =
  +    new (clrType : Type, variableType : VariableType, translate : Value -> obj) =
  +        TypeMapping(clrType, lazy variableType, translate)
       member this.CLRType = clrType
  -    member this.VariableType = varType
  +    member this.VariableType = variableType.Value
       member this.Translate = translate
   
   type ITypeHandler =
  
positive.code:                     , translateCollection emptyCons icollection clrElementType
                      ) |> Some
  
  /// Handles types implementing IEnumerable<T> that have a constructor taking an IEnumerable<T>,
  /// where T is supported by `rootHandler`.
  type EnumerableTypeHandler(rootHandler : ITypeHandler) =
      let translateEnumerable
          (cons : ConstructorInfo) // constructor taking IEnumerable<clrElementType>
          (clrElementType : Type)
  
negative.code:         match value with
          | NullValue -> null
          | ListValue vs ->
              let collection = Activator.CreateInstance(collectionType)
              for { Value = v } in vs do
                  ignore <| collectionAdd.Invoke(collection, [|rootHandler.TranslateValueTo(clrElementType, v)|])
              cons.Invoke([|collection|])
  