module Unison.Codebase.TermEdit.Typing where

import Unison.Codebase.TermEdit (Typing (Different, Same, Subtype))
import Unison.Type (Type)
import Unison.Typechecker qualified as Typechecker
import Unison.Var (Var)

typing :: (Var v) => Type v loc -> Type v loc -> Typing
typing :: forall v loc. Var v => Type v loc -> Type v loc -> Typing
typing Type v loc
newType Type v loc
oldType
  | Type v loc -> Type v loc -> Bool
forall v loc. Var v => Type v loc -> Type v loc -> Bool
Typechecker.isEqual Type v loc
newType Type v loc
oldType = Typing
Same
  | Type v loc -> Type v loc -> Bool
forall v loc. Var v => Type v loc -> Type v loc -> Bool
Typechecker.isSubtype Type v loc
newType Type v loc
oldType = Typing
Subtype
  | Bool
otherwise = Typing
Different