Safe Haskell | None |
---|---|
Language | GHC2021 |
Data.DeBruijn.Index
Synopsis
- data Ix (n :: Nat) where
- eqIx :: forall (n :: Nat) (m :: Nat). Ix n -> Ix m -> Bool
- fromIx :: forall i (n :: Nat). Integral i => Ix n -> i
- fromIxRaw :: forall (n :: Nat). Ix n -> IxRep
- isPos :: forall (n :: Nat) a. Ix n -> (Pos n => a) -> a
- thin :: forall (n :: Nat). Ix ('S n) -> Ix n -> Ix ('S n)
- thick :: forall (n :: Nat). Ix ('S n) -> Ix ('S n) -> Maybe (Ix n)
- inject :: forall (n :: Nat) (m :: Nat). Ix n -> SNat m -> Ix (n + m)
- raise :: forall (n :: Nat) (m :: Nat). SNat n -> Ix m -> Ix (n + m)
- data SomeIx = SomeIx {}
- withSomeIx :: (forall (n :: Nat). SNat n -> Ix n -> a) -> SomeIx -> a
- toSomeIx :: (Integral n, Integral i) => (n, i) -> SomeIx
- toSomeIxRaw :: (SNatRep, IxRep) -> SomeIx
- fromSomeIx :: (Integral n, Integral i) => SomeIx -> (n, i)
- fromSomeIxRaw :: SomeIx -> (SNatRep, IxRep)
- type IxRep = Int
DeBruijn Indexes
Existential Wrapper
withSomeIx :: (forall (n :: Nat). SNat n -> Ix n -> a) -> SomeIx -> a #
toSomeIxRaw :: (SNatRep, IxRep) -> SomeIx #
fromSomeIx :: (Integral n, Integral i) => SomeIx -> (n, i) #
fromSomeIxRaw :: SomeIx -> (SNatRep, IxRep) #