Library for representation of positions in firstorder terms.
Author: JanHendrik Matthes
Version: February 2020
showPos
:: [Int] > String
Transforms a position into a string representation. 
eps
:: [Int]
The root position of a term. 
above
:: [Int] > [Int] > Bool
Checks whether the first position is above the second position. 
below
:: [Int] > [Int] > Bool
Checks whether the first position is below the second position. 
leftOf
:: [Int] > [Int] > Bool
Checks whether the first position is left from the second position. 
rightOf
:: [Int] > [Int] > Bool
Checks whether the first position is right from the second position. 
disjoint
:: [Int] > [Int] > Bool
Checks whether two positions are disjoint. 
positions
:: Term a > [[Int]]
Returns a list of all positions in a term. 
(.>)
:: [Int] > [Int] > [Int]
Concatenates two positions. 
(>)
:: Term a > [Int] > Term a
Returns the subterm of a term at the given position if the position exists within the term. 
replaceTerm
:: Term a > [Int] > Term a > Term a
Replaces the subterm of a term at the given position with the given term if the position exists within the term. 
A position in a term represented as a list of integers greater than zero.
Type synonym: Pos = [Int]
Transforms a position into a string representation. 
The root position of a term.

Checks whether the first position is above the second position. 
Checks whether the first position is below the second position. 
Checks whether the first position is left from the second position. 
Checks whether the first position is right from the second position. 
Checks whether two positions are disjoint. 
Concatenates two positions.

Returns the subterm of a term at the given position if the position exists within the term. 
Replaces the subterm of a term at the given position with the given term if the position exists within the term. 