Safe Haskell | None |
---|---|
Language | Haskell2010 |
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.