{-# LANGUAGE DeriveGeneric #-}

module Unison.ConstructorType where

import Unison.Prelude

data ConstructorType = Data | Effect deriving (ConstructorType -> ConstructorType -> Bool
(ConstructorType -> ConstructorType -> Bool)
-> (ConstructorType -> ConstructorType -> Bool)
-> Eq ConstructorType
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ConstructorType -> ConstructorType -> Bool
== :: ConstructorType -> ConstructorType -> Bool
$c/= :: ConstructorType -> ConstructorType -> Bool
/= :: ConstructorType -> ConstructorType -> Bool
Eq, Eq ConstructorType
Eq ConstructorType =>
(ConstructorType -> ConstructorType -> Ordering)
-> (ConstructorType -> ConstructorType -> Bool)
-> (ConstructorType -> ConstructorType -> Bool)
-> (ConstructorType -> ConstructorType -> Bool)
-> (ConstructorType -> ConstructorType -> Bool)
-> (ConstructorType -> ConstructorType -> ConstructorType)
-> (ConstructorType -> ConstructorType -> ConstructorType)
-> Ord ConstructorType
ConstructorType -> ConstructorType -> Bool
ConstructorType -> ConstructorType -> Ordering
ConstructorType -> ConstructorType -> ConstructorType
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
$ccompare :: ConstructorType -> ConstructorType -> Ordering
compare :: ConstructorType -> ConstructorType -> Ordering
$c< :: ConstructorType -> ConstructorType -> Bool
< :: ConstructorType -> ConstructorType -> Bool
$c<= :: ConstructorType -> ConstructorType -> Bool
<= :: ConstructorType -> ConstructorType -> Bool
$c> :: ConstructorType -> ConstructorType -> Bool
> :: ConstructorType -> ConstructorType -> Bool
$c>= :: ConstructorType -> ConstructorType -> Bool
>= :: ConstructorType -> ConstructorType -> Bool
$cmax :: ConstructorType -> ConstructorType -> ConstructorType
max :: ConstructorType -> ConstructorType -> ConstructorType
$cmin :: ConstructorType -> ConstructorType -> ConstructorType
min :: ConstructorType -> ConstructorType -> ConstructorType
Ord, Int -> ConstructorType -> ShowS
[ConstructorType] -> ShowS
ConstructorType -> String
(Int -> ConstructorType -> ShowS)
-> (ConstructorType -> String)
-> ([ConstructorType] -> ShowS)
-> Show ConstructorType
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ConstructorType -> ShowS
showsPrec :: Int -> ConstructorType -> ShowS
$cshow :: ConstructorType -> String
show :: ConstructorType -> String
$cshowList :: [ConstructorType] -> ShowS
showList :: [ConstructorType] -> ShowS
Show, Int -> ConstructorType
ConstructorType -> Int
ConstructorType -> [ConstructorType]
ConstructorType -> ConstructorType
ConstructorType -> ConstructorType -> [ConstructorType]
ConstructorType
-> ConstructorType -> ConstructorType -> [ConstructorType]
(ConstructorType -> ConstructorType)
-> (ConstructorType -> ConstructorType)
-> (Int -> ConstructorType)
-> (ConstructorType -> Int)
-> (ConstructorType -> [ConstructorType])
-> (ConstructorType -> ConstructorType -> [ConstructorType])
-> (ConstructorType -> ConstructorType -> [ConstructorType])
-> (ConstructorType
    -> ConstructorType -> ConstructorType -> [ConstructorType])
-> Enum ConstructorType
forall a.
(a -> a)
-> (a -> a)
-> (Int -> a)
-> (a -> Int)
-> (a -> [a])
-> (a -> a -> [a])
-> (a -> a -> [a])
-> (a -> a -> a -> [a])
-> Enum a
$csucc :: ConstructorType -> ConstructorType
succ :: ConstructorType -> ConstructorType
$cpred :: ConstructorType -> ConstructorType
pred :: ConstructorType -> ConstructorType
$ctoEnum :: Int -> ConstructorType
toEnum :: Int -> ConstructorType
$cfromEnum :: ConstructorType -> Int
fromEnum :: ConstructorType -> Int
$cenumFrom :: ConstructorType -> [ConstructorType]
enumFrom :: ConstructorType -> [ConstructorType]
$cenumFromThen :: ConstructorType -> ConstructorType -> [ConstructorType]
enumFromThen :: ConstructorType -> ConstructorType -> [ConstructorType]
$cenumFromTo :: ConstructorType -> ConstructorType -> [ConstructorType]
enumFromTo :: ConstructorType -> ConstructorType -> [ConstructorType]
$cenumFromThenTo :: ConstructorType
-> ConstructorType -> ConstructorType -> [ConstructorType]
enumFromThenTo :: ConstructorType
-> ConstructorType -> ConstructorType -> [ConstructorType]
Enum, (forall x. ConstructorType -> Rep ConstructorType x)
-> (forall x. Rep ConstructorType x -> ConstructorType)
-> Generic ConstructorType
forall x. Rep ConstructorType x -> ConstructorType
forall x. ConstructorType -> Rep ConstructorType x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. ConstructorType -> Rep ConstructorType x
from :: forall x. ConstructorType -> Rep ConstructorType x
$cto :: forall x. Rep ConstructorType x -> ConstructorType
to :: forall x. Rep ConstructorType x -> ConstructorType
Generic)