zabt-0.3.0.0: Arity-typed abstract binding trees

Safe HaskellNone
LanguageHaskell2010

Zabt.Internal.Nameless

Synopsis

Documentation

data Nameless v f x a where Source #

Constructors

Free :: !v -> Nameless v f x G 
Bound :: !Index -> Nameless v f x G 
Pattern :: f x -> Nameless v f x G 
Abstraction :: !v -> x a -> Nameless v f x (B a) 

Instances

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

Alpha-equivalence

Methods

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

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

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

Alpha-equivalence

Methods

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

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

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

Methods

compare :: Nameless v f x (B a) -> Nameless v f x (B a) -> Ordering #

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

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

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

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

max :: Nameless v f x (B a) -> Nameless v f x (B a) -> Nameless v f x (B a) #

min :: Nameless v f x (B a) -> Nameless v f x (B a) -> Nameless v f x (B a) #

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

Methods

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

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

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

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

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

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

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

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

Methods

showsPrec :: Int -> Nameless v f x (B a) -> ShowS #

show :: Nameless v f x (B a) -> String #

showList :: [Nameless v f x (B a)] -> ShowS #

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

Methods

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

show :: Nameless v f x G -> String #

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