Looking into BCD subtyping rules in siek2020transitivity

Nat <: Real

Find B to be Nat -> Int & Nat -> String

   Real -> Top & Nat -> Top & Nat -> Int & Nat -> String
<: Nat -> Int & String

Including [Real -> Top] and [rury8pat -> Top] does not hurt?
since we can always later drop Top anyways when deriving 

TODO

  • todo thisweek fix the NotTopCod implementation
  • Question: For the constraint , in the implementation do we need to consider all possible subsets? or it is fine just to consider the maximal set such that all codomains’ elements inB are supertypes of C?
    • maybe true for functions, records,
    • not for recursive types dedicated rules