module Edtypes where

data EDirection = ELeft | ERight deriving (EDirection -> EDirection -> Bool
(EDirection -> EDirection -> Bool)
-> (EDirection -> EDirection -> Bool) -> Eq EDirection
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: EDirection -> EDirection -> Bool
$c/= :: EDirection -> EDirection -> Bool
== :: EDirection -> EDirection -> Bool
$c== :: EDirection -> EDirection -> Bool
Eq, Eq EDirection
Eq EDirection
-> (EDirection -> EDirection -> Ordering)
-> (EDirection -> EDirection -> Bool)
-> (EDirection -> EDirection -> Bool)
-> (EDirection -> EDirection -> Bool)
-> (EDirection -> EDirection -> Bool)
-> (EDirection -> EDirection -> EDirection)
-> (EDirection -> EDirection -> EDirection)
-> Ord EDirection
EDirection -> EDirection -> Bool
EDirection -> EDirection -> Ordering
EDirection -> EDirection -> EDirection
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
min :: EDirection -> EDirection -> EDirection
$cmin :: EDirection -> EDirection -> EDirection
max :: EDirection -> EDirection -> EDirection
$cmax :: EDirection -> EDirection -> EDirection
>= :: EDirection -> EDirection -> Bool
$c>= :: EDirection -> EDirection -> Bool
> :: EDirection -> EDirection -> Bool
$c> :: EDirection -> EDirection -> Bool
<= :: EDirection -> EDirection -> Bool
$c<= :: EDirection -> EDirection -> Bool
< :: EDirection -> EDirection -> Bool
$c< :: EDirection -> EDirection -> Bool
compare :: EDirection -> EDirection -> Ordering
$ccompare :: EDirection -> EDirection -> Ordering
$cp1Ord :: Eq EDirection
Ord)


newline :: Char
newline = Char
'\n'

type EditStopFn = String -> String -> EditStopChoice
data EditStopChoice = EdGo EDirection EditStopFn | EdStop
type IsSelect = Bool