Safe Haskell | None |
---|---|
Language | Haskell2010 |
Data.SOP.InPairs
Description
Intended for qualified import
import Data.SOP.InPairs (InPairs(..)) import qualified Data.SOP.InPairs as InPairs
Synopsis
- data InPairs (f ∷ k → k → Type) (xs ∷ [k]) where
- mk1 ∷ ∀ {k} (f ∷ k → k → Type) (x ∷ k). InPairs f '[x]
- mk2 ∷ ∀ {k} f (x ∷ k) (y ∷ k). f x y → InPairs f '[x, y]
- mk3 ∷ ∀ {k} f (x ∷ k) (y ∷ k) (z ∷ k). f x y → f y z → InPairs f '[x, y, z]
- hcmap ∷ ∀ {k} proxy c f g (xs ∷ [k]). All c xs ⇒ proxy c → (∀ (x ∷ k) (y ∷ k). (c x, c y) ⇒ f x y → g x y) → InPairs f xs → InPairs g xs
- hcpure ∷ ∀ {k} proxy c (xs ∷ [k]) f. (All c xs, IsNonEmpty xs) ⇒ proxy c → (∀ (x ∷ k) (y ∷ k). (c x, c y) ⇒ f x y) → InPairs f xs
- hczipWith ∷ ∀ {k} proxy c f f' f'' (xs ∷ [k]). All c xs ⇒ proxy c → (∀ (x ∷ k) (y ∷ k). (c x, c y) ⇒ f x y → f' x y → f'' x y) → InPairs f xs → InPairs f' xs → InPairs f'' xs
- hmap ∷ ∀ {k} (xs ∷ [k]) f g. SListI xs ⇒ (∀ (x ∷ k) (y ∷ k). f x y → g x y) → InPairs f xs → InPairs g xs
- hpure ∷ ∀ {k} (xs ∷ [k]) f. (SListI xs, IsNonEmpty xs) ⇒ (∀ (x ∷ k) (y ∷ k). f x y) → InPairs f xs
- newtype Requiring (h ∷ k → Type) (f ∷ k → k1 → Type) (x ∷ k) (y ∷ k1) = Require {
- provide ∷ h x → f x y
- newtype RequiringBoth (h ∷ k → Type) (f ∷ k → k → Type) (x ∷ k) (y ∷ k) = RequireBoth {
- provideBoth ∷ h x → h y → f x y
- ignoring ∷ ∀ {k1} {k2} f (x ∷ k1) (y ∷ k2) (h ∷ k1 → Type). f x y → Requiring h f x y
- ignoringBoth ∷ ∀ {k} f (x ∷ k) (y ∷ k) (h ∷ k → Type). f x y → RequiringBoth h f x y
- requiring ∷ ∀ {k} (xs ∷ [k]) (h ∷ k → Type) (f ∷ k → k → Type). SListI xs ⇒ NP h xs → InPairs (Requiring h f) xs → InPairs f xs
- requiringBoth ∷ ∀ {k} (h ∷ k → Type) (xs ∷ [k]) (f ∷ k → k → Type). NP h xs → InPairs (RequiringBoth h f) xs → InPairs f xs
- newtype Fn2 (f ∷ k → Type) (x ∷ k) (y ∷ k) = Fn2 {
- apFn2 ∷ f x → f y
- composeFromTo ∷ ∀ {k} (xs ∷ [k]) (x ∷ k) (y ∷ k) f. Index xs x → Index xs y → InPairs (Fn2 f) xs → f x → Maybe (f y)
InPairs
data InPairs (f ∷ k → k → Type) (xs ∷ [k]) where Source #
We have an f x y
for each pair (x, y)
of successive list elements
Convenience constructors
SOP-like operators
hcmap ∷ ∀ {k} proxy c f g (xs ∷ [k]). All c xs ⇒ proxy c → (∀ (x ∷ k) (y ∷ k). (c x, c y) ⇒ f x y → g x y) → InPairs f xs → InPairs g xs Source #
hcpure ∷ ∀ {k} proxy c (xs ∷ [k]) f. (All c xs, IsNonEmpty xs) ⇒ proxy c → (∀ (x ∷ k) (y ∷ k). (c x, c y) ⇒ f x y) → InPairs f xs Source #
hczipWith ∷ ∀ {k} proxy c f f' f'' (xs ∷ [k]). All c xs ⇒ proxy c → (∀ (x ∷ k) (y ∷ k). (c x, c y) ⇒ f x y → f' x y → f'' x y) → InPairs f xs → InPairs f' xs → InPairs f'' xs Source #
hmap ∷ ∀ {k} (xs ∷ [k]) f g. SListI xs ⇒ (∀ (x ∷ k) (y ∷ k). f x y → g x y) → InPairs f xs → InPairs g xs Source #
hpure ∷ ∀ {k} (xs ∷ [k]) f. (SListI xs, IsNonEmpty xs) ⇒ (∀ (x ∷ k) (y ∷ k). f x y) → InPairs f xs Source #
Requiring
newtype RequiringBoth (h ∷ k → Type) (f ∷ k → k → Type) (x ∷ k) (y ∷ k) Source #
Constructors
RequireBoth | |
Fields
|
ignoringBoth ∷ ∀ {k} f (x ∷ k) (y ∷ k) (h ∷ k → Type). f x y → RequiringBoth h f x y Source #
requiring ∷ ∀ {k} (xs ∷ [k]) (h ∷ k → Type) (f ∷ k → k → Type). SListI xs ⇒ NP h xs → InPairs (Requiring h f) xs → InPairs f xs Source #
requiringBoth ∷ ∀ {k} (h ∷ k → Type) (xs ∷ [k]) (f ∷ k → k → Type). NP h xs → InPairs (RequiringBoth h f) xs → InPairs f xs Source #