anchor.diff:              ??> new BuiltinTypeHandler()
               ??> new NullableTypeHandler(root)
               ??> new ArrayTypeHandler(root)
  +            ??> new SequenceInterfaceTypeHandler(root)
               ??> new CollectionTypeHandler(root)
  -            ??> new EnumerableTypeHandler(root)
  +            ??> new EnumerableConstructorTypeHandler(root)
               ??> new SingleConstructorTypeHandler(root)
           )
       let enumValuesByName = new Dictionary<string, EnumValue>()
  
positive.code:             let parameters = cons.GetParameters()
              if parameters.Length < 1 then None else
              let fields =
                  [
                      for parameter in parameters do
                          let varTy = rootHandler.VariableTypeOf(parameter.ParameterType)
                          yield parameter.Name, varTy
                  ] |> dictionary
              new TypeMapping
                  ( targetType
                  , (ObjectType fields).Nullable(not targetType.IsValueType)
                  ,
                      function
                      | NullValue -> null
  
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|])
  