| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Biobase.Types.Index
Description
Biological sequence data is oftentimes indexed either 0- or
1-based. The Index type developed provides static guarantees that
there is no confusion what index is in use.
This module does not export the ctor Index. If you want to (unsafely)
use it, import Biobase.Types.Index.Type directly. Use fromInt0 to
make clear that you count from 0 and transform to an Index t. I.e.
fromInt0 0 :: Index 1 yields the lowest 1-base index.
Note that internally, every lowest index starts at 0 :: Int.
Synopsis
- type I1 = Index 1
- type I0 = Index 0
- checkIndex :: forall t. KnownNat t => Index t -> Index t
- reIndex :: Index n -> Index m
- (+.) :: forall t. KnownNat t => Index t -> Int -> Index t
- (-.) :: forall t. KnownNat t => Index t -> Int -> Index t
- unsafePlus :: forall t. KnownNat t => Index t -> Int -> Index t
- delta :: forall t. KnownNat t => Index t -> Index t -> Int
- toInt :: forall t. KnownNat t => Index t -> Int
- toInt0 :: forall t. KnownNat t => Index t -> Int
- fromInt0 :: forall t. KnownNat t => Int -> Index t
- getIndex :: Index t -> Int
- index :: forall t. KnownNat t => Int -> Index t
- maybeIndex :: forall t. KnownNat t => Int -> Maybe (Index t)
- data Index (t :: Nat)
Documentation
reIndex :: Index n -> Index m Source #
Re-Index an index of type Index n as Index m. This is always safe,
as 0 :: Index 0 gives 1 :: Index 1 for example. I.e. valid indices
become valid indices.
toInt0 :: forall t. KnownNat t => Index t -> Int Source #
Return the index as an Int-style index that is zero-based.
fromInt0 :: forall t. KnownNat t => Int -> Index t Source #
As an index from an Int-style zero-based one.
TODO We might want to check that the argument is [0..].
data Index (t :: Nat) Source #
A linear Int-based index type.