anchor.diff:  
           | Fable.Lambda(arg, body, name) ->
               transformFunction com ctx name [arg] body
  -            ||> makeArrowFunctionExpression
  +            ||> makeArrowFunctionExpression name
   
           | Fable.Delegate(args, body, name) ->
               transformFunction com ctx name args body
  -            ||> makeArrowFunctionExpression
  +            ||> makeArrowFunctionExpression name
   
           | Fable.ObjectExpr (members, typ, baseCall) ->
             transformObjectExpr com ctx members baseCall
  
positive.code: 
          | Fable.Lambda(arg, body, name) ->
              let args, body = transformFunction com ctx name [arg] body
              let expr', stmts = makeArrowFunctionExpression args body
              stmts @ (expr' |> resolveExpr ctx expr.Type returnStrategy)
  
          | Fable.Delegate(args, body, name) ->
              let args, body = transformFunction com ctx name args body
              let expr', stmts = makeArrowFunctionExpression args body
              stmts @ (expr' |> resolveExpr ctx expr.Type returnStrategy)
  
          | Fable.ObjectExpr (members, t, baseCall) ->
  
negative.code: 
          match stmt with
          // Remove `self = self`
          | Statement.Assign { Targets = [ Name {Id=Identifier(x)}]; Value = Name {Id=Identifier(y)}} when x = y -> None
          | Expr expr ->
              if hasNoSideEffects expr.Value then
                  None
  