anchor.diff:      type Type with
           member x.MaybeAssignableFromSubtype(other : Type) =
               if x.IsAssignableFrom other then true
  +            elif other.IsAssignableFrom x then true
               else other.IsInterface
   
       [<CompilationRepresentation(CompilationRepresentationFlags.ModuleSuffix)>]
  
positive.code:         inherit Cons(h,t)
  
  
      let private root = Some 1
  
      let ag = obj()
      open Aardvark.Base.Incremental
  
      [<Semantic; ReflectedDefinition>]
      type Sems() =
          member x.Value(s : Sepp<'a>) = 
              1
  
          member x.Sum(n : Nil) : int = 
              n?Index + n?Bla
  //            let o : obj = n?Index
  //            let b : obj = n?Bla
  //            o.GetHashCode() + b.GetHashCode()
  
          member x.Sum(c : Cons) : int = 
              c.Head + c.Tail?Sum()
  //
  //        member x.Index(r : Root<IList>) =
  //            inh <<= obj()
  //
  //        member x.Bla(r : Root<IList>) =
  //            inh <<= obj()
  
  
          member x.Index(r : Root<IList>) =
              inh <<= 0
          member x.Index(c : Cons) =
              inh <<= 1 + c?Index
  
          member x.Index(c : MyCons) =
              inh <<= 2 + c?Index
  
  
          member x.Bla(r : Root<IList>) =
              inh <<= 0
  
          member x.Bla(c : Cons) =
              inh <<= 10 + c?Bla
  
  
      [<Demo("aaaag")>]
      let run() =
          let functions = 
              Introspection.GetAllTypesWithAttribute<SemanticAttribute>()
                  |> Seq.map (fun t -> t.E0)
  
negative.code:         type Inh = class end
          let inh : Inh = Unchecked.defaultof<Inh>
  
          [<MethodImpl(MethodImplOptions.NoInlining)>]
          let (?) (o : 'a) (name : string) : 'b =
              failwith ""
              
          [<MethodImpl(MethodImplOptions.NoInlining)>]
          let (<<=) (m : Inh) (value : 'a) =
              ()
  
  