anchor.diff:      let rec toCallValue abstractType = function
           | Sequential(x,y) ->
               toCallValue abstractType x @ toCallValue abstractType y
  -        | Call(None, mi, [lhs;rhs]) -> 
  +        | Call(None, mi, [lhs;rhs]) when hasAttribute typeof<ArrowAttribute> mi -> 
               let mi, args = toCall abstractType lhs
               let returns = ReturnValue(rhs.EvalUntyped(), mi.ReturnType)
               [mi,(args,returns)]
  
positive.code: 
  [<AutoOpen>]
  module Operators =
      let inline (-->) (source:'T) (value:'T) = ()
negative.code: [<AttributeUsage(AttributeTargets.Method)>]
  type PredicateAttribute() = inherit Attribute()
  
  /// Arrow attribute
  [<AttributeUsage(AttributeTargets.Method)>]
  type ArrowAttribute() = inherit Attribute()
  
  [<AutoOpen>]
  module internal Reflection =
      /// Returns true if method has specified attribute
      let hasAttribute a (mi:MethodInfo) = mi.GetCustomAttributes(a, true).Length > 0
      /// Converts expression to a tuple of MethodInfo and Arg array
      let toArgs args =        
          [|for arg in args ->
              match arg with
              | Call(_, mi, _) when hasAttribute typeof<WildcardAttribute> mi -> Any
  