anchor.diff:              sprintf "%A%A" t tys
   
   module Ty =
  -  /// Converts a .Net type to a `Ty`.
     let rec ofType (t: Type) =
       if t.IsArray then
         App (Arr (t.GetArrayRank ()), [|ofType (t.GetElementType ())|])
  
positive.code: /// `T<A, U<[B]>>`.
  type TyCursor = list<int>
  
  /// Represents a mapping of types to values of type `'r` such that given a type,
  /// the type value pairs of the mapping can be filtered based on the given type
  /// and produced in an order from more specific to less specific types with
  /// respect to unification.
  type TyTree<'r> = Lazy<TyTreeFun<'r>>
  and TyTreeFun<'r> =
    | Empty
  
negative.code: 
  ////////////////////////////////////////////////////////////////////////////////
  
    let rec containsVars ty =
      match ty with
       | Var _ -> true
       | App (_, tys) -> Array.exists containsVars tys
  
    let rec resolveTop v2ty ty =
      match ty with
       | Var v ->
  