minVariance :: Variance -> Variance -> Variance
minVariance v1 v2 = case v1 of
  NonVar -> v2
  _ -> case v2 of
         NonVar -> v1
         _ -> if v1 == v2 then v1 else InVar

-- | check subkinding (kinds with variances are greater)
minVariance :: Variance -> Variance -> Variance
minVariance v1 v2 = case v1 of
  NonVar -> v2
  _ -> case v2 of
         NonVar -> v1
         _ -> if v1 == v2 then v1 else InVar

-- | check subkinding (kinds with variances are greater)
minVariance v1 v2 = case v1 of
  NonVar -> v2
  _ -> case v2 of
         NonVar -> v1
         _ -> if v1 == v2 then v1 else InVar

-- | check subkinding (kinds with variances are greater)