| Safe Haskell | None |
|---|---|
| Language | GHC2024 |
Proarrow.Category.Instance.FinRel
Synopsis
- newtype Bitstring (n :: Nat) = BS Natural
- shiftN :: forall (n :: Nat). SNatI n => Natural -> Natural
- split :: forall (n :: Nat) (m :: Nat). SNatI n => Bitstring (Plus n m) -> (Bitstring n, Bitstring m)
- splits :: forall (n :: Nat) (m :: Nat). (SNatI n, SNatI m) => Bitstring (Mult n m) -> Vec n (Bitstring m)
- combine :: forall (n :: Nat) (m :: Nat). SNatI n => Bitstring n -> Bitstring m -> Bitstring (Plus n m)
- combines :: forall (m :: Nat) (n :: Nat). SNatI m => Vec n (Bitstring m) -> Bitstring (Mult n m)
- pop :: forall (n :: Nat). Bitstring ('S n) -> (Bitstring n, Bool)
- push :: forall (n :: Nat). Bool -> Bitstring n -> Bitstring ('S n)
- mult :: forall (n :: Nat) (m :: Nat). (SNatI n, SNatI m) => Bitstring n -> Bitstring m -> Bitstring (Mult n m)
- bit :: forall (n :: Nat). SNatI n => Fin n -> Bitstring n
- zero :: forall (n :: Nat) (m :: Nat). (SNatI n, SNatI m) => Vec n (Bitstring m)
- pick :: forall (n :: Nat) a. Vec n a -> Bitstring n -> [a]
- fromBools :: forall (n :: Nat). Vec n Bool -> Bitstring n
- toBools :: forall (n :: Nat). SNatI n => Bitstring n -> Vec n Bool
- arr :: forall (n :: Nat) (m :: Nat). FinSet ('FS m) ('FS n) -> FinRel ('FR m) ('FR n)
- data FINREL = FR Nat
- data FinRel (a :: FINREL) (b :: FINREL) where
- data family Fun :: FINSET +-> FINREL
Documentation
newtype Bitstring (n :: Nat) Source Github #
Instances
split :: forall (n :: Nat) (m :: Nat). SNatI n => Bitstring (Plus n m) -> (Bitstring n, Bitstring m) Source Github #
Split n + m bits into two parts: the lower n bits and the higher m bits.
splits :: forall (n :: Nat) (m :: Nat). (SNatI n, SNatI m) => Bitstring (Mult n m) -> Vec n (Bitstring m) Source Github #
combine :: forall (n :: Nat) (m :: Nat). SNatI n => Bitstring n -> Bitstring m -> Bitstring (Plus n m) Source Github #
Combine two bitstrings of lengths n and m into one bitstring with the n lower bits or m higher bits.
combines :: forall (m :: Nat) (n :: Nat). SNatI m => Vec n (Bitstring m) -> Bitstring (Mult n m) Source Github #
mult :: forall (n :: Nat) (m :: Nat). (SNatI n, SNatI m) => Bitstring n -> Bitstring m -> Bitstring (Mult n m) Source Github #
arr :: forall (n :: Nat) (m :: Nat). FinSet ('FS m) ('FS n) -> FinRel ('FR m) ('FR n) Source Github #
Instances
data FinRel (a :: FINREL) (b :: FINREL) where Source Github #
Constructors
| FinRel | |
data family Fun :: FINSET +-> FINREL Source Github #
Instances
| FunctorForRep Fun Source Github # | |
| MonoidalProfunctor (Rep Fun) Source Github # | |
| MonoidalProfunctor (Coprod (Rep Fun)) Source Github # | |
Defined in Proarrow.Category.Instance.FinRel Methods par0 :: Coprod (Rep Fun) (Unit :: COPROD FINREL) (Unit :: COPROD FINSET) Source Github # par :: forall (x1 :: COPROD FINREL) (x2 :: COPROD FINSET) (y1 :: COPROD FINREL) (y2 :: COPROD FINSET). Coprod (Rep Fun) x1 x2 -> Coprod (Rep Fun) y1 y2 -> Coprod (Rep Fun) (x1 ** y1) (x2 ** y2) Source Github # | |
| type Fun @ ('FS a :: FINSET) Source Github # | |