anchor.diff:  
       elif ty.IsGenericType && ty.GetGenericTypeDefinition() = typedefof<list<_>> then
           let el_ty = ty.GetGenericArguments().[0]
  -        box <| project_list el_ty x
  +        (project_list el_ty x) |> box
   
       elif ty.IsArray then
           // GetMethod.MageGeneric.Invoke
  
positive.code:       // TODO get rid of float, is this even useful?
        project = project_array ty }
  
  let list ty=
      { embed = embed_ienumerable ;
        project = project_list ty}
  
  // let func =
  //     { embed = fst << embed_func ;
  
negative.code: /// <param name="x">The <c/>_JSValue> that is being projected</param>
  /// <return>A value of type <c>'T</c> which is the F# equivalent of <c>x</c></return>
  and project<'T> (x: _JSValue) : 'T =
      let ty = typeof<'T>
      
      project_hack ty x |> unbox<'T>
  
  and embed_func (x:obj) =
      // f is a function _JSValue -> _JSValue, which takes a JavaScript
  