Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Indexed sets of morphisms
Synopsis
- newtype Choice con a b = Choice (OptArg con (a -> b))
- onChoice :: forall con a b q. con () => (forall p. con p => (p -> a -> b) -> q) -> Choice con a b -> q
- exactly :: con () => (a -> b) -> Choice con a b
- chooseC :: forall con p a b. (CartCon con, con p) => Choice con p (a -> b) -> Choice con a b
- choose :: forall con p a. (CartCon con, con p) => (p -> a) -> a
- op1C :: forall con a b c d. CartCon con => ((a -> b) -> c -> d) -> Choice con a b -> Choice con c d
- op2C :: forall con a b c d e f. CartCon con => ((a -> b) -> (c -> d) -> e -> f) -> Choice con a b -> Choice con c d -> Choice con e f
- data OptArg con z
- onOptArg :: forall con z q. con () => (forall p. con p => (p -> z) -> q) -> OptArg con z -> q
- onOptArg' :: forall con z q. con () => (z -> q) -> (forall p. con p => (p -> z) -> q) -> OptArg con z -> q
- type CartCon con = (con (), OpCon (:*) (Sat con))
Documentation
newtype Choice con a b Source #
Nondeterminism category. Like a set of morphisms all of the same type, but represented as a function whose range is that set. The function's domain is existentially hidden.
Instances
onChoice :: forall con a b q. con () => (forall p. con p => (p -> a -> b) -> q) -> Choice con a b -> q Source #
exactly :: con () => (a -> b) -> Choice con a b Source #
Deterministic (trivially nondeterministic) arrow
chooseC :: forall con p a b. (CartCon con, con p) => Choice con p (a -> b) -> Choice con a b Source #
Generate any value of type p
.
choose :: forall con p a. (CartCon con, con p) => (p -> a) -> a Source #
Generate any value of type p
.
op1C :: forall con a b c d. CartCon con => ((a -> b) -> c -> d) -> Choice con a b -> Choice con c d Source #
op2C :: forall con a b c d e f. CartCon con => ((a -> b) -> (c -> d) -> e -> f) -> Choice con a b -> Choice con c d -> Choice con e f Source #
Instances
CartCon con => Applicative (OptArg con) Source # | |
Defined in ConCat.Choice pure :: a -> OptArg con a Source # (<*>) :: OptArg con (a -> b) -> OptArg con a -> OptArg con b Source # liftA2 :: (a -> b -> c) -> OptArg con a -> OptArg con b -> OptArg con c Source # (*>) :: OptArg con a -> OptArg con b -> OptArg con b Source # (<*) :: OptArg con a -> OptArg con b -> OptArg con a Source # | |
CartCon con => Functor (OptArg con) Source # | |
onOptArg :: forall con z q. con () => (forall p. con p => (p -> z) -> q) -> OptArg con z -> q Source #