zabt-0.4.0.0: Simple-minded abstract binding trees

Safe HaskellSafe
LanguageHaskell2010

Zabt.Internal.Nameless

Documentation

data Scope v x Source #

Constructors

Scope !v x 

Instances

Eq x => Eq (Scope v x) Source # 

Methods

(==) :: Scope v x -> Scope v x -> Bool #

(/=) :: Scope v x -> Scope v x -> Bool #

Ord x => Ord (Scope v x) Source # 

Methods

compare :: Scope v x -> Scope v x -> Ordering #

(<) :: Scope v x -> Scope v x -> Bool #

(<=) :: Scope v x -> Scope v x -> Bool #

(>) :: Scope v x -> Scope v x -> Bool #

(>=) :: Scope v x -> Scope v x -> Bool #

max :: Scope v x -> Scope v x -> Scope v x #

min :: Scope v x -> Scope v x -> Scope v x #

(Show v, Show x) => Show (Scope v x) Source # 

Methods

showsPrec :: Int -> Scope v x -> ShowS #

show :: Scope v x -> String #

showList :: [Scope v x] -> ShowS #

data Nameless v f x Source #

Constructors

Free !v 
Bound !Index 
Pattern (f x) 
Abstraction !(Scope v x) 

Instances

(Eq v, Eq x, Eq (f x)) => Eq (Nameless v f x) Source # 

Methods

(==) :: Nameless v f x -> Nameless v f x -> Bool #

(/=) :: Nameless v f x -> Nameless v f x -> Bool #

(Ord v, Ord x, Ord (f x)) => Ord (Nameless v f x) Source # 

Methods

compare :: Nameless v f x -> Nameless v f x -> Ordering #

(<) :: Nameless v f x -> Nameless v f x -> Bool #

(<=) :: Nameless v f x -> Nameless v f x -> Bool #

(>) :: Nameless v f x -> Nameless v f x -> Bool #

(>=) :: Nameless v f x -> Nameless v f x -> Bool #

max :: Nameless v f x -> Nameless v f x -> Nameless v f x #

min :: Nameless v f x -> Nameless v f x -> Nameless v f x #

(Show v, Show (f x), Show x) => Show (Nameless v f x) Source # 

Methods

showsPrec :: Int -> Nameless v f x -> ShowS #

show :: Nameless v f x -> String #

showList :: [Nameless v f x] -> ShowS #