module TypingImpls import TAP import public Quox.Typing import public Quox.Pretty export PrettyHL q => ToInfo (Error q) where toInfo (NotInScope x) = [("type", "NotInScope"), ("name", show x)] toInfo (ExpectedTYPE t) = [("type", "ExpectedTYPE"), ("got", prettyStr True t)] toInfo (ExpectedPi t) = [("type", "ExpectedPi"), ("got", prettyStr True t)] toInfo (ExpectedSig t) = [("type", "ExpectedSig"), ("got", prettyStr True t)] toInfo (ExpectedEq t) = [("type", "ExpectedEq"), ("got", prettyStr True t)] toInfo (BadUniverse k l) = [("type", "BadUniverse"), ("low", show k), ("high", show l)] toInfo (ClashT mode ty s t) = [("type", "ClashT"), ("mode", show mode), ("ty", prettyStr True ty), ("left", prettyStr True s), ("right", prettyStr True t)] toInfo (ClashE mode e f) = [("type", "ClashE"), ("mode", show mode), ("left", prettyStr True e), ("right", prettyStr True f)] toInfo (ClashU mode k l) = [("type", "ClashU"), ("mode", show mode), ("left", prettyStr True k), ("right", prettyStr True l)] toInfo (ClashQ pi rh) = [("type", "ClashQ"), ("left", prettyStr True pi), ("right", prettyStr True rh)] toInfo (ClashD p q) = [("type", "ClashD"), ("left", prettyStr True p), ("right", prettyStr True q)] toInfo (NotType ty) = [("type", "NotType"), ("actual", prettyStr True ty)] toInfo (WrongType ty s t) = [("type", "WrongType"), ("ty", prettyStr True ty), ("left", prettyStr True s), ("right", prettyStr True t)]