module Unison.Typed
( Typed (..),
)
where
import Unison.Type (Type)
data Typed a v ann = Typed
{ forall a v ann. Typed a v ann -> a
thing :: !a,
forall a v ann. Typed a v ann -> Type v ann
type_ :: !(Type v ann)
}
deriving stock (Typed a v ann -> Typed a v ann -> Bool
(Typed a v ann -> Typed a v ann -> Bool)
-> (Typed a v ann -> Typed a v ann -> Bool) -> Eq (Typed a v ann)
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
forall a v ann.
(Var v, Eq a) =>
Typed a v ann -> Typed a v ann -> Bool
$c== :: forall a v ann.
(Var v, Eq a) =>
Typed a v ann -> Typed a v ann -> Bool
== :: Typed a v ann -> Typed a v ann -> Bool
$c/= :: forall a v ann.
(Var v, Eq a) =>
Typed a v ann -> Typed a v ann -> Bool
/= :: Typed a v ann -> Typed a v ann -> Bool
Eq, Int -> Typed a v ann -> ShowS
[Typed a v ann] -> ShowS
Typed a v ann -> String
(Int -> Typed a v ann -> ShowS)
-> (Typed a v ann -> String)
-> ([Typed a v ann] -> ShowS)
-> Show (Typed a v ann)
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
forall a v ann. (Show a, Show v) => Int -> Typed a v ann -> ShowS
forall a v ann. (Show a, Show v) => [Typed a v ann] -> ShowS
forall a v ann. (Show a, Show v) => Typed a v ann -> String
$cshowsPrec :: forall a v ann. (Show a, Show v) => Int -> Typed a v ann -> ShowS
showsPrec :: Int -> Typed a v ann -> ShowS
$cshow :: forall a v ann. (Show a, Show v) => Typed a v ann -> String
show :: Typed a v ann -> String
$cshowList :: forall a v ann. (Show a, Show v) => [Typed a v ann] -> ShowS
showList :: [Typed a v ann] -> ShowS
Show)