{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE ViewPatterns #-}

module Unison.UnisonFile.Error where

data Error v a
  = -- A free type variable that couldn't be resolved
    UnknownType v a
  | -- A variable which is both a data and an ability declaration
    DupDataAndAbility v a a
  deriving (Error v a -> Error v a -> Bool
(Error v a -> Error v a -> Bool)
-> (Error v a -> Error v a -> Bool) -> Eq (Error v a)
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
forall v a. (Eq v, Eq a) => Error v a -> Error v a -> Bool
$c== :: forall v a. (Eq v, Eq a) => Error v a -> Error v a -> Bool
== :: Error v a -> Error v a -> Bool
$c/= :: forall v a. (Eq v, Eq a) => Error v a -> Error v a -> Bool
/= :: Error v a -> Error v a -> Bool
Eq, Eq (Error v a)
Eq (Error v a) =>
(Error v a -> Error v a -> Ordering)
-> (Error v a -> Error v a -> Bool)
-> (Error v a -> Error v a -> Bool)
-> (Error v a -> Error v a -> Bool)
-> (Error v a -> Error v a -> Bool)
-> (Error v a -> Error v a -> Error v a)
-> (Error v a -> Error v a -> Error v a)
-> Ord (Error v a)
Error v a -> Error v a -> Bool
Error v a -> Error v a -> Ordering
Error v a -> Error v a -> Error v a
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
forall v a. (Ord v, Ord a) => Eq (Error v a)
forall v a. (Ord v, Ord a) => Error v a -> Error v a -> Bool
forall v a. (Ord v, Ord a) => Error v a -> Error v a -> Ordering
forall v a. (Ord v, Ord a) => Error v a -> Error v a -> Error v a
$ccompare :: forall v a. (Ord v, Ord a) => Error v a -> Error v a -> Ordering
compare :: Error v a -> Error v a -> Ordering
$c< :: forall v a. (Ord v, Ord a) => Error v a -> Error v a -> Bool
< :: Error v a -> Error v a -> Bool
$c<= :: forall v a. (Ord v, Ord a) => Error v a -> Error v a -> Bool
<= :: Error v a -> Error v a -> Bool
$c> :: forall v a. (Ord v, Ord a) => Error v a -> Error v a -> Bool
> :: Error v a -> Error v a -> Bool
$c>= :: forall v a. (Ord v, Ord a) => Error v a -> Error v a -> Bool
>= :: Error v a -> Error v a -> Bool
$cmax :: forall v a. (Ord v, Ord a) => Error v a -> Error v a -> Error v a
max :: Error v a -> Error v a -> Error v a
$cmin :: forall v a. (Ord v, Ord a) => Error v a -> Error v a -> Error v a
min :: Error v a -> Error v a -> Error v a
Ord, Int -> Error v a -> ShowS
[Error v a] -> ShowS
Error v a -> String
(Int -> Error v a -> ShowS)
-> (Error v a -> String)
-> ([Error v a] -> ShowS)
-> Show (Error v a)
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
forall v a. (Show v, Show a) => Int -> Error v a -> ShowS
forall v a. (Show v, Show a) => [Error v a] -> ShowS
forall v a. (Show v, Show a) => Error v a -> String
$cshowsPrec :: forall v a. (Show v, Show a) => Int -> Error v a -> ShowS
showsPrec :: Int -> Error v a -> ShowS
$cshow :: forall v a. (Show v, Show a) => Error v a -> String
show :: Error v a -> String
$cshowList :: forall v a. (Show v, Show a) => [Error v a] -> ShowS
showList :: [Error v a] -> ShowS
Show)