-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Calculation of YH sequence system -- -- Please see the README on GitHub at -- https://github.com/Hexirp/yhseq#readme @package yhseq @version 0.3.0.0 module Numeric.YHSeq.V0110.Type type Seq = [Integer] type Index = Integer type Diff = Integer type ParentIndex = Index type ParentList = [ParentIndex] type Depth = Integer type DPNTuple = (Diff, ParentList, Depth) type DPN = [DPNTuple] type Class = Integer length :: [a] -> Integer lengthSeq :: Seq -> Integer lengthDPN :: DPN -> Integer index :: [a] -> Integer -> a index1 :: [a] -> Integer -> a idx :: [a] -> Integer -> a indexSeq :: Seq -> Index -> Integer indexDPN :: DPN -> Index -> DPNTuple indexD :: DPN -> Index -> Diff indexP :: DPN -> Index -> ParentList indexN :: DPN -> Index -> Depth indexPList :: ParentList -> Index -> ParentIndex slice :: Integer -> Integer -> [a] -> [a] slice1 :: Integer -> Integer -> [a] -> [a] sliceSeq :: Integer -> Integer -> Seq -> Seq sliceDPN :: Integer -> Integer -> DPN -> DPN dropLast :: [a] -> [a] module Numeric.YHSeq.V0110.Expansion badRoot :: DPN -> Index goodPart :: DPN -> DPN badPart :: DPN -> DPN cuttedPart :: DPN -> DPN pnt :: DPN -> Index -> Depth -> ParentIndex anc :: DPN -> Index -> Depth -> [ParentIndex] badRootL :: DPN -> Index delta :: DPN -> Integer amt :: DPN -> Index -> Integer bas :: DPN -> Index -> ParentList rising :: DPN -> Integer -> Index -> ParentIndex -> ParentIndex ris :: DPN -> Integer -> Index -> ParentList -> ParentList newD :: DPN -> Integer -> Index -> Diff newP :: DPN -> Integer -> Index -> ParentList newN :: DPN -> Integer -> Index -> Depth copiedBadPart :: DPN -> Integer -> DPN expand :: DPN -> Class -> Integer -> DPN module Numeric.YHSeq.V0110.Decompression reD :: DPN -> Index -> Depth -> Diff reP :: DPN -> Index -> Depth -> Diff decompress :: DPN -> Seq module Numeric.YHSeq.V0110.Compression mtD :: Seq -> Index -> Depth -> Diff mtP :: Seq -> Index -> Depth -> ParentIndex searchParent :: Seq -> Index -> ParentIndex searchParentAnc :: Seq -> Index -> Depth -> ParentIndex anc :: Seq -> Index -> Depth -> [ParentIndex] nonEmptyDepth :: Seq -> Depth cl :: Seq -> Class compressionDepth :: Seq -> Depth btm :: Seq -> Index -> Depth cN :: Seq -> Index -> Depth cU :: Seq -> Index -> Depth cM :: Seq -> Index -> Depth cD :: Seq -> Index -> Diff cP :: Seq -> Index -> ParentList seqClass :: Seq -> Class compress :: Seq -> DPN module Numeric.YHSeq.V0110 data Cofinal IsZero :: Cofinal IsSucc :: Cofinal IsLimit :: Cofinal isZero :: Seq -> Bool isSucc :: Seq -> Bool isLimit :: Seq -> Bool scof :: Seq -> Cofinal fseq :: Seq -> Integer -> Seq pseq :: Seq -> Seq -- | It's a very very large function. yhseq :: Seq -> Integer -> Integer module Numeric.YHSeq.V0111.Type type Seq = [Integer] type Index = Integer type Diff = Integer type ParentIndex = Index type ParentList = [ParentIndex] type Depth = Integer type DPNTuple = (Diff, ParentList, Depth) type DPN = [DPNTuple] type Class = Integer length :: [a] -> Integer lengthSeq :: Seq -> Integer lengthDPN :: DPN -> Integer index :: [a] -> Integer -> a index1 :: [a] -> Integer -> a idx :: [a] -> Integer -> a indexSeq :: Seq -> Index -> Integer indexDPN :: DPN -> Index -> DPNTuple indexD :: DPN -> Index -> Diff indexP :: DPN -> Index -> ParentList indexN :: DPN -> Index -> Depth indexPList :: ParentList -> Index -> ParentIndex slice :: Integer -> Integer -> [a] -> [a] slice1 :: Integer -> Integer -> [a] -> [a] sliceDPN :: Integer -> Integer -> DPN -> DPN dropLast :: [a] -> [a] module Numeric.YHSeq.V0111.Expansion badRoot :: DPN -> Index goodPart :: DPN -> DPN badPart :: DPN -> DPN cuttedPart :: DPN -> DPN pnt :: DPN -> Index -> Depth -> ParentIndex anc :: DPN -> Index -> Depth -> [ParentIndex] badRootL :: DPN -> Index delta :: DPN -> Integer amt :: DPN -> Index -> Bool bas :: DPN -> Index -> ParentList rising :: DPN -> Integer -> Index -> ParentIndex -> ParentIndex ris :: DPN -> Integer -> Index -> ParentList -> ParentList newD :: DPN -> Integer -> Index -> Diff newP :: DPN -> Integer -> Index -> ParentList newN :: DPN -> Integer -> Index -> Depth copiedBadPart :: DPN -> Integer -> DPN expand :: DPN -> Class -> Integer -> DPN module Numeric.YHSeq.V0111.Decompression reD :: DPN -> Index -> Depth -> Diff reP :: DPN -> Index -> Depth -> Diff decompress :: DPN -> Seq module Numeric.YHSeq.V0111.Compression mtD :: Seq -> Index -> Depth -> Diff mtP :: Seq -> Index -> Depth -> ParentIndex isAnc :: Seq -> Index -> Depth -> ParentIndex -> Bool anc :: Seq -> Index -> Depth -> [ParentIndex] nonEmptyDepth :: Seq -> Depth cl :: Seq -> Class compressionDepth :: Seq -> Depth cM :: Seq -> Index -> Depth cU :: Seq -> Index -> Depth btm :: Seq -> Index -> Depth cD :: Seq -> Index -> Diff cP :: Seq -> Index -> ParentList cN :: Seq -> Index -> Depth seqClass :: Seq -> Class compress :: Seq -> DPN module Numeric.YHSeq.V0111 data Cofinal IsZero :: Cofinal IsSucc :: Cofinal IsLimit :: Cofinal isZero :: Seq -> Bool isSucc :: Seq -> Bool isLimit :: Seq -> Bool scof :: Seq -> Cofinal fseq :: Seq -> Integer -> Seq pseq :: Seq -> Seq -- | It's a very very large function. yhseq :: Seq -> Integer -> Integer module Numeric.YHSeq.V0200.Type type Seq = [Integer] type Index = Integer type Diff = Integer type ParentIndex = Index type ParentList = [ParentIndex] type Depth = Integer type DPNTuple = (Diff, ParentList, Depth) type DPN = [DPNTuple] type Class = Integer length :: [a] -> Integer lengthSeq :: Seq -> Integer lengthDPN :: DPN -> Integer index :: [a] -> Integer -> a index1 :: [a] -> Integer -> a idx :: [a] -> Integer -> a indexSeq :: Seq -> Index -> Integer indexDPN :: DPN -> Index -> DPNTuple indexD :: DPN -> Index -> Diff indexP :: DPN -> Index -> ParentList indexN :: DPN -> Index -> Depth indexPList :: ParentList -> Index -> ParentIndex slice :: Integer -> Integer -> [a] -> [a] slice1 :: Integer -> Integer -> [a] -> [a] sliceDPN :: Integer -> Integer -> DPN -> DPN dropLast :: [a] -> [a] module Numeric.YHSeq.V0200.Expansion badRoot :: DPN -> Index goodPart :: DPN -> DPN badPart :: DPN -> DPN cuttedPart :: DPN -> DPN pnt :: DPN -> Index -> Depth -> ParentIndex anc :: DPN -> Index -> Depth -> [ParentIndex] badRootL :: DPN -> Index delta :: DPN -> Integer amt :: DPN -> Index -> Depth -> Bool bas :: DPN -> Index -> ParentList rising :: DPN -> Integer -> Index -> ParentIndex -> Depth -> ParentIndex rise :: DPN -> Integer -> Index -> ParentList -> Depth -> (ParentList, Depth) ris :: DPN -> Integer -> Index -> ParentList -> Depth -> ParentList newD :: DPN -> Integer -> Index -> Diff newP :: DPN -> Integer -> Index -> ParentList newN :: DPN -> Integer -> Index -> Depth copiedBadPart :: DPN -> Integer -> DPN expand :: DPN -> Class -> Integer -> DPN module Numeric.YHSeq.V0200.Decompression reD :: DPN -> Index -> Depth -> Diff reP :: DPN -> Index -> Depth -> Diff decompress :: DPN -> Seq module Numeric.YHSeq.V0200.Compression mtD :: Seq -> Index -> Depth -> Diff mtP :: Seq -> Index -> Depth -> ParentIndex isAnc :: Seq -> Index -> Depth -> ParentIndex -> Bool anc :: Seq -> Index -> Depth -> [ParentIndex] nonEmptyDepth :: Seq -> Depth cl :: Seq -> Class compressionDepth :: Seq -> Depth cM :: Seq -> Index -> Depth cU :: Seq -> Index -> Depth btm :: Seq -> Index -> Depth cD :: Seq -> Index -> Diff cP :: Seq -> Index -> ParentList cN :: Seq -> Index -> Depth seqClass :: Seq -> Class compress :: Seq -> DPN module Numeric.YHSeq.V0200 data Cofinal IsZero :: Cofinal IsSucc :: Cofinal IsLimit :: Cofinal isZero :: Seq -> Bool isSucc :: Seq -> Bool isLimit :: Seq -> Bool scof :: Seq -> Cofinal fseq :: Seq -> Integer -> Seq pseq :: Seq -> Seq -- | It's a very very large function. yhseq :: Seq -> Integer -> Integer -- | YH数列システム 2.0.1 の定義。 -- -- ここでは Data.IntSetData.Vector を活用している。 -- -- 英語では YH sequence system 2.0.1 と呼ぶことにする。短く呼ぶときは YHSS 2.0.1 と呼ぶことにする。 module Numeric.YHSeq.V0201 -- | 1 から n までの配列に関数を適用する。 -- -- 0 が与えられた場合は空の配列を返す。 genVec :: (Ord i, Integral i) => i -> (i -> a) -> Vector a -- | 数列、または列。 newtype Sequence Sequence :: Vector Int -> Sequence [unSequence] :: Sequence -> Vector Int -- | Sequence のための添字演算。 ixSeq :: Sequence -> Int -> Int -- | リストから数列を作る。 makeSeqFromList :: [Int] -> Sequence -- | 階差。 -- -- 数列の階差を取った列を階差列と呼ぶことにする。たとえば (1,2,4,8,16,...) の階差列は (0,1,2,4,8,...) だ。 newtype Difference Difference :: Int -> Difference [unDifference] :: Difference -> Int -- | 添字。 -- -- 添字といっても Sequence の添字ではなく親を参照したりするときに使う添字だ。 ixSeq -- を見てもらえば分かるように、 Sequence の添字は普通の Int だ。 newtype Index Index :: Int -> Index [unIndex] :: Index -> Int -- | 添字の集合。 -- -- 添字の集合と言っても、たぶん先祖の集合を表すのにしか使わないと思う。 newtype IndexSet IndexSet :: IntSet -> IndexSet [unIndexSet] :: IndexSet -> IntSet -- | 深さ。 -- -- YHSS 2.0.1 では、深さは 0 にならない。 newtype Depth Depth :: Int -> Depth [unDepth] :: Depth -> Int -- | 山。 -- -- 条件として dMt と pMt と aMt の長さはそれぞれ sMt に等しい。 data Mountain Mountain :: Int -> Vector (Vector Difference) -> Vector (Vector Index) -> Vector (Vector IndexSet) -> Mountain -- | 山のサイズ。 [sMt] :: Mountain -> Int -- | 階差。 [dMt] :: Mountain -> Vector (Vector Difference) -- | 親の添字。 [pMt] :: Mountain -> Vector (Vector Index) -- | 先祖の集合。 [aMt] :: Mountain -> Vector (Vector IndexSet) -- | 山から階差を添字で取得する。 ixMtToDiff :: Mountain -> Index -> Depth -> Difference -- | 山から親の添字を添字で取得する。 ixMtToPaet :: Mountain -> Index -> Depth -> Index -- | 山から先祖の集合を添字で取得する。 ixMtToAnce :: Mountain -> Index -> Depth -> IndexSet -- | メモを参照しながら数列から山の階差の部分を計算する。 calcDiffOnMtFromSeqWiM :: Mountain -> Sequence -> Index -> Depth -> Difference -- | メモを参照しながら数列から山の親の添字の部分を計算する。 calcPaetOnMtFromSeqWiM :: Mountain -> Index -> Depth -> Index -- | メモを参照しながら数列から山の先祖の集合の部分を計算する。 calcAnceOnMtFromSeqWiM :: Mountain -> Index -> Depth -> IndexSet -- | 一つ浅い深さで先祖であるか。 -- -- 名前は at shallow の略である。 isAnceAtSh :: Mountain -> Index -> Depth -> Index -> Bool -- | 数列から山を計算する。 calcMtFromSeq :: Sequence -> Mountain -- | クラス。 newtype Class Class :: Int -> Class [unClass] :: Class -> Int -- | 共終タイプ。 -- -- 順序数に対して定義される数学的な共終数ではない。 data CofType IsZero :: CofType IsSucc :: CofType IsLim :: Class -> CofType -- | 階差が存在する最も大きい深さを、それぞれの添字について計算する。 -- -- ここで 0 の深さが現れているが、深さ 1 での階差が 0 でない限り、最終的な計算結果の深さは 0 にならない。 calcBottom :: Mountain -> Index -> Depth -- | 共終タイプを計算する。 calcCofType :: Mountain -> CofType -- | DPN 形式。 -- -- 条件として dDPN と pDPN と nDPN の長さはそれぞれ sDPN に等しい。 data DPN DPN :: Int -> Vector Difference -> Vector (Vector Index) -> Vector Depth -> DPN [sDPN] :: DPN -> Int [dDPN] :: DPN -> Vector Difference [pDPN] :: DPN -> Vector (Vector Index) [nDPN] :: DPN -> Vector Depth -- | DPN 形式から階差を添字で取得する。 ixDpnToDiff :: DPN -> Index -> Difference -- | DPN 形式から親の添字の列を添字で取得する。 ixDpnToPaet :: DPN -> Index -> Vector Index -- | DPN 形式から深さを添字で取得する。 ixDpnToNpth :: DPN -> Index -> Depth -- | 展開に関わる最も大きい深さを計算する。 calcLimitDepth :: Mountain -> Depth -- | 展開に関わる最も大きい深さを、それぞれの添字について計算する。 calcMaxDepth :: Mountain -> Index -> Depth -- | DPN 形式での階差の部分を計算する。 calcDiffOnDpn :: Mountain -> Index -> Difference -- | DPN 形式での親の添字の部分を計算する。 calcPaetOnDpn :: Mountain -> Index -> Vector Index -- | DPN 形式での深さの部分を計算する。 calcNpthOnDpn :: Mountain -> Index -> Depth -- | DPN 形式を計算する。 calcDpn :: Mountain -> DPN -- | 悪部根を計算する。 calcBadRoot :: Mountain -> Index -- | 展開する際の階差の部分を計算する。 calcDiffAtExp :: Mountain -> Index -> Difference -- | 展開する際の親の添字の部分を計算する。 calcPaetAtExp :: Mountain -> Index -> Vector Index -- | 展開する際の深さの部分を計算する。 calcNpthAtExp :: Mountain -> Index -> Depth -- | 共終タイプが IsLim 1 である場合において山を展開する。 expandMtAtLim1 :: Mountain -> Int -> DPN -- | メモを参照しながら DPN 形式から山の階差の部分を計算する。 calcDiffOnMtFromDpnWiM :: Mountain -> DPN -> Index -> Depth -> Difference -- | メモを参照しながら DPN 形式から山の親の添字の部分を計算する。 calcPaetOnMtFromDpnWiM :: DPN -> Index -> Depth -> Index -- | メモを参照しながら DPN 形式から山の先祖の集合の部分を計算する。 calcAnceOnMtFromDpnWiM :: Mountain -> Index -> Depth -> IndexSet -- | DPN 形式から山を計算する。 calcMtFromDpn :: DPN -> Mountain -- | 山から数列を計算する。 calcSeqFromMt :: Mountain -> Sequence -- | 共終タイプが IsLim 1 である場合において数列を展開する。 expandSeqAtLim1 :: Sequence -> Int -> Sequence -- | expandSeq および expandList におけるエラーを表現する型。 data ExpandingError -- | 基本列において範囲から外れている時。 OutOfIndexOnFunSeq :: ExpandingError -- | クラスが範囲から外れている時。 OutOfClass :: ExpandingError -- | 数列を展開する。 expandSeq :: Sequence -> Int -> Either ExpandingError Sequence -- | 数列からリストを作る。 makeListFromSeq :: Sequence -> [Int] -- | リストを展開する。 expandList :: [Int] -> Int -> Either ExpandingError [Int] instance GHC.Read.Read Numeric.YHSeq.V0201.ExpandingError instance GHC.Show.Show Numeric.YHSeq.V0201.ExpandingError instance GHC.Enum.Enum Numeric.YHSeq.V0201.ExpandingError instance GHC.Enum.Bounded Numeric.YHSeq.V0201.ExpandingError instance GHC.Classes.Ord Numeric.YHSeq.V0201.ExpandingError instance GHC.Classes.Eq Numeric.YHSeq.V0201.ExpandingError instance GHC.Read.Read Numeric.YHSeq.V0201.DPN instance GHC.Show.Show Numeric.YHSeq.V0201.DPN instance GHC.Classes.Ord Numeric.YHSeq.V0201.DPN instance GHC.Classes.Eq Numeric.YHSeq.V0201.DPN instance GHC.Read.Read Numeric.YHSeq.V0201.CofType instance GHC.Show.Show Numeric.YHSeq.V0201.CofType instance GHC.Classes.Ord Numeric.YHSeq.V0201.CofType instance GHC.Classes.Eq Numeric.YHSeq.V0201.CofType instance GHC.Base.Monoid Numeric.YHSeq.V0201.Class instance GHC.Base.Semigroup Numeric.YHSeq.V0201.Class instance GHC.Real.Integral Numeric.YHSeq.V0201.Class instance GHC.Real.Real Numeric.YHSeq.V0201.Class instance GHC.Num.Num Numeric.YHSeq.V0201.Class instance GHC.Read.Read Numeric.YHSeq.V0201.Class instance GHC.Show.Show Numeric.YHSeq.V0201.Class instance GHC.Enum.Enum Numeric.YHSeq.V0201.Class instance GHC.Enum.Bounded Numeric.YHSeq.V0201.Class instance GHC.Classes.Ord Numeric.YHSeq.V0201.Class instance GHC.Classes.Eq Numeric.YHSeq.V0201.Class instance GHC.Read.Read Numeric.YHSeq.V0201.Mountain instance GHC.Show.Show Numeric.YHSeq.V0201.Mountain instance GHC.Classes.Ord Numeric.YHSeq.V0201.Mountain instance GHC.Classes.Eq Numeric.YHSeq.V0201.Mountain instance GHC.Base.Monoid Numeric.YHSeq.V0201.Depth instance GHC.Base.Semigroup Numeric.YHSeq.V0201.Depth instance GHC.Real.Integral Numeric.YHSeq.V0201.Depth instance GHC.Real.Real Numeric.YHSeq.V0201.Depth instance GHC.Num.Num Numeric.YHSeq.V0201.Depth instance GHC.Read.Read Numeric.YHSeq.V0201.Depth instance GHC.Show.Show Numeric.YHSeq.V0201.Depth instance GHC.Enum.Enum Numeric.YHSeq.V0201.Depth instance GHC.Enum.Bounded Numeric.YHSeq.V0201.Depth instance GHC.Classes.Ord Numeric.YHSeq.V0201.Depth instance GHC.Classes.Eq Numeric.YHSeq.V0201.Depth instance GHC.Base.Monoid Numeric.YHSeq.V0201.IndexSet instance GHC.Base.Semigroup Numeric.YHSeq.V0201.IndexSet instance GHC.Read.Read Numeric.YHSeq.V0201.IndexSet instance GHC.Show.Show Numeric.YHSeq.V0201.IndexSet instance GHC.Classes.Ord Numeric.YHSeq.V0201.IndexSet instance GHC.Classes.Eq Numeric.YHSeq.V0201.IndexSet instance GHC.Base.Monoid Numeric.YHSeq.V0201.Index instance GHC.Base.Semigroup Numeric.YHSeq.V0201.Index instance GHC.Real.Integral Numeric.YHSeq.V0201.Index instance GHC.Real.Real Numeric.YHSeq.V0201.Index instance GHC.Num.Num Numeric.YHSeq.V0201.Index instance GHC.Read.Read Numeric.YHSeq.V0201.Index instance GHC.Show.Show Numeric.YHSeq.V0201.Index instance GHC.Enum.Enum Numeric.YHSeq.V0201.Index instance GHC.Enum.Bounded Numeric.YHSeq.V0201.Index instance GHC.Classes.Ord Numeric.YHSeq.V0201.Index instance GHC.Classes.Eq Numeric.YHSeq.V0201.Index instance GHC.Base.Monoid Numeric.YHSeq.V0201.Difference instance GHC.Base.Semigroup Numeric.YHSeq.V0201.Difference instance GHC.Real.Integral Numeric.YHSeq.V0201.Difference instance GHC.Real.Real Numeric.YHSeq.V0201.Difference instance GHC.Num.Num Numeric.YHSeq.V0201.Difference instance GHC.Read.Read Numeric.YHSeq.V0201.Difference instance GHC.Show.Show Numeric.YHSeq.V0201.Difference instance GHC.Enum.Enum Numeric.YHSeq.V0201.Difference instance GHC.Enum.Bounded Numeric.YHSeq.V0201.Difference instance GHC.Classes.Ord Numeric.YHSeq.V0201.Difference instance GHC.Classes.Eq Numeric.YHSeq.V0201.Difference instance GHC.Base.Monoid Numeric.YHSeq.V0201.Sequence instance GHC.Base.Semigroup Numeric.YHSeq.V0201.Sequence instance GHC.Read.Read Numeric.YHSeq.V0201.Sequence instance GHC.Show.Show Numeric.YHSeq.V0201.Sequence instance GHC.Classes.Ord Numeric.YHSeq.V0201.Sequence instance GHC.Classes.Eq Numeric.YHSeq.V0201.Sequence instance GHC.Enum.Bounded Numeric.YHSeq.V0201.CofType module Numeric.YHSeq.V0210.Type type Seq = [Integer] type Index = Integer type Diff = Integer type ParentIndex = Index type ParentList = [ParentIndex] type Depth = Integer type DPNTuple = (Diff, ParentList, Depth) type DPN = [DPNTuple] type Class = Integer length :: [a] -> Integer lengthSeq :: Seq -> Integer lengthDPN :: DPN -> Integer index :: [a] -> Integer -> a index1 :: [a] -> Integer -> a idx :: [a] -> Integer -> a indexSeq :: Seq -> Index -> Integer indexDPN :: DPN -> Index -> DPNTuple indexD :: DPN -> Index -> Diff indexP :: DPN -> Index -> ParentList indexN :: DPN -> Index -> Depth indexPList :: ParentList -> Index -> ParentIndex slice :: Integer -> Integer -> [a] -> [a] slice1 :: Integer -> Integer -> [a] -> [a] sliceDPN :: Integer -> Integer -> DPN -> DPN dropLast :: [a] -> [a] module Numeric.YHSeq.V0210.Expansion badRoot :: DPN -> Index goodPart :: DPN -> DPN badPart :: DPN -> DPN cuttedPart :: DPN -> DPN pnt :: DPN -> Index -> Depth -> ParentIndex anc :: DPN -> Index -> Depth -> [ParentIndex] badRootL :: DPN -> Index delta :: DPN -> Integer amt :: DPN -> Index -> Bool bas :: DPN -> Index -> ParentList rising :: DPN -> Integer -> Index -> ParentIndex -> ParentIndex ris :: DPN -> Integer -> Index -> ParentList -> ParentList newD :: DPN -> Integer -> Index -> Diff newP :: DPN -> Integer -> Index -> ParentList newN :: DPN -> Integer -> Index -> Depth copiedBadPart :: DPN -> Integer -> DPN expand :: DPN -> Class -> Integer -> DPN module Numeric.YHSeq.V0210.Decompression reD :: DPN -> Index -> Depth -> Diff reP :: DPN -> Index -> Depth -> Diff decompress :: DPN -> Seq module Numeric.YHSeq.V0210.Compression mtD :: Seq -> Index -> Depth -> Diff mtP :: Seq -> Index -> Depth -> ParentIndex isAnc :: Seq -> Index -> Depth -> ParentIndex -> Bool anc :: Seq -> Index -> Depth -> [ParentIndex] nonEmptyDepth :: Seq -> Depth cl :: Seq -> Class compressionDepth :: Seq -> Depth cM :: Seq -> Index -> Depth cU :: Seq -> Index -> Depth btm :: Seq -> Index -> Depth cD :: Seq -> Index -> Diff cP :: Seq -> Index -> ParentList cN :: Seq -> Index -> Depth seqClass :: Seq -> Class compress :: Seq -> DPN module Numeric.YHSeq.V0210 data Cofinal IsZero :: Cofinal IsSucc :: Cofinal IsLimit :: Cofinal isZero :: Seq -> Bool isSucc :: Seq -> Bool isLimit :: Seq -> Bool scof :: Seq -> Cofinal fseq :: Seq -> Integer -> Seq pseq :: Seq -> Seq -- | It's a very very large function. yhseq :: Seq -> Integer -> Integer