module RBS class VarianceCalculator type variance = :unused | :covariant | :contravariant | :invariant class Result attr_reader result: Hash[Symbol, variance] def initialize: (variables: Array[Symbol]) -> void def covariant: (Symbol) -> void def contravariant: (Symbol) -> void def invariant: (Symbol) -> void def each: () { ([Symbol, variance]) -> void } -> void def include?: (Symbol) -> bool def compatible?: (Symbol, with_annotation: variance) -> bool end attr_reader builder: DefinitionBuilder def initialize: (builder: DefinitionBuilder) -> void def env: () -> Environment def in_method_type: (method_type: MethodType, variables: Array[Symbol]) -> Result def in_inherit: (name: TypeName, args: Array[Types::t], variables: Array[Symbol]) -> Result def type: (Types::t, result: Result, context: variance) -> void end end