Safe Haskell | Safe-Inferred |
---|---|

Language | Haskell2010 |

## Synopsis

- data Index xs x where
- dictIndexAll ∷ All c xs ⇒ Proxy c → Index xs x → Dict c x
- indices ∷ ∀ xs. SListI xs ⇒ NP (Index xs) xs
- injectNS ∷ ∀ f x xs. Index xs x → f x → NS f xs
- injectNS' ∷ ∀ f a b x xs. (Coercible a (f x), Coercible b (NS f xs)) ⇒ Proxy f → Index xs x → a → b
- projectNP ∷ Index xs x → NP f xs → f x
- hcimap ∷ (HAp h, All c xs, Prod h ~ NP) ⇒ proxy c → (∀ a. c a ⇒ Index xs a → f1 a → f2 a) → h f1 xs → h f2 xs
- hcizipWith ∷ (HAp h, All c xs, Prod h ~ NP) ⇒ proxy c → (∀ a. c a ⇒ Index xs a → f1 a → f2 a → f3 a) → NP f1 xs → h f2 xs → h f3 xs
- hcizipWith3 ∷ (HAp h, All c xs, Prod h ~ NP) ⇒ proxy c → (∀ a. c a ⇒ Index xs a → f1 a → f2 a → f3 a → f4 a) → NP f1 xs → NP f2 xs → h f3 xs → h f4 xs
- hcizipWith4 ∷ (HAp h, All c xs, Prod h ~ NP) ⇒ proxy c → (∀ a. c a ⇒ Index xs a → f1 a → f2 a → f3 a → f4 a → f5 a) → NP f1 xs → NP f2 xs → NP f3 xs → h f4 xs → h f5 xs
- himap ∷ (HAp h, SListI xs, Prod h ~ NP) ⇒ (∀ a. Index xs a → f1 a → f2 a) → h f1 xs → h f2 xs
- hizipWith ∷ (HAp h, SListI xs, Prod h ~ NP) ⇒ (∀ a. Index xs a → f1 a → f2 a → f3 a) → NP f1 xs → h f2 xs → h f3 xs
- hizipWith3 ∷ (HAp h, SListI xs, Prod h ~ NP) ⇒ (∀ a. Index xs a → f1 a → f2 a → f3 a → f4 a) → NP f1 xs → NP f2 xs → h f3 xs → h f4 xs
- hizipWith4 ∷ (HAp h, SListI xs, Prod h ~ NP) ⇒ (∀ a. Index xs a → f1 a → f2 a → f3 a → f4 a → f5 a) → NP f1 xs → NP f2 xs → NP f3 xs → h f4 xs → h f5 xs
- npWithIndices ∷ SListI xs ⇒ NP (K Word8) xs
- nsFromIndex ∷ SListI xs ⇒ Word8 → Maybe (NS (K ()) xs)
- nsToIndex ∷ SListI xs ⇒ NS f xs → Word8
- toWord8 ∷ Index xs x → Word8

# Indexing SOP types

injectNS' ∷ ∀ f a b x xs. (Coercible a (f x), Coercible b (NS f xs)) ⇒ Proxy f → Index xs x → a → b Source #

# Zipping with indices

hcimap ∷ (HAp h, All c xs, Prod h ~ NP) ⇒ proxy c → (∀ a. c a ⇒ Index xs a → f1 a → f2 a) → h f1 xs → h f2 xs Source #

hcizipWith ∷ (HAp h, All c xs, Prod h ~ NP) ⇒ proxy c → (∀ a. c a ⇒ Index xs a → f1 a → f2 a → f3 a) → NP f1 xs → h f2 xs → h f3 xs Source #

hcizipWith3 ∷ (HAp h, All c xs, Prod h ~ NP) ⇒ proxy c → (∀ a. c a ⇒ Index xs a → f1 a → f2 a → f3 a → f4 a) → NP f1 xs → NP f2 xs → h f3 xs → h f4 xs Source #

hcizipWith4 ∷ (HAp h, All c xs, Prod h ~ NP) ⇒ proxy c → (∀ a. c a ⇒ Index xs a → f1 a → f2 a → f3 a → f4 a → f5 a) → NP f1 xs → NP f2 xs → NP f3 xs → h f4 xs → h f5 xs Source #

himap ∷ (HAp h, SListI xs, Prod h ~ NP) ⇒ (∀ a. Index xs a → f1 a → f2 a) → h f1 xs → h f2 xs Source #

hizipWith ∷ (HAp h, SListI xs, Prod h ~ NP) ⇒ (∀ a. Index xs a → f1 a → f2 a → f3 a) → NP f1 xs → h f2 xs → h f3 xs Source #

hizipWith3 ∷ (HAp h, SListI xs, Prod h ~ NP) ⇒ (∀ a. Index xs a → f1 a → f2 a → f3 a → f4 a) → NP f1 xs → NP f2 xs → h f3 xs → h f4 xs Source #

hizipWith4 ∷ (HAp h, SListI xs, Prod h ~ NP) ⇒ (∀ a. Index xs a → f1 a → f2 a → f3 a → f4 a → f5 a) → NP f1 xs → NP f2 xs → NP f3 xs → h f4 xs → h f5 xs Source #

# Indices with Word

nsFromIndex ∷ SListI xs ⇒ Word8 → Maybe (NS (K ()) xs) Source #

We only allow up to 23, see `npWithIndices`

.