=>

Left-to-right Cokleisli composition
extend with the arguments swapped. Dual to >>= for a Monad.
extend with the arguments swapped. Dual to >>= for a Monad.
Infix synonym for refines. You might think this should be =<=, so it looks kind of like a funny subset operator, with A =<= B meaning "the result-set of A is a subset of the result-set of B". Unfortunately you would be wrong. The operator used in the literature for refinement has the open end pointing at the LESS general term and the closed end at the MORE general term. It is read as "is refined by", not "refines". So for consistency with the literature, the open end of =>= points at the less general term, and the closed end at the more general term, to give the same argument order as refines.
Left-to-right composition of Kleisli arrows. '(bs >=> cs) a' can be understood as the do expression
do b <- bs a
cs b
or in terms of (>>=) as
bs a >>= cs
Implication for properties: The resulting property holds if the first argument is False (in which case the test case is discarded), or if the given property holds. Note that using implication carelessly can severely skew test case distribution: consider using cover to make sure that your test data is still good quality.
Left-to-right composition of Kleisli arrows. '(bs >=> cs) a' can be understood as the do expression
do b <- bs a
cs b
Reify the relationship between an instance head and its body as a class Given a definition such as
instance Foo a => Foo [a]
you can capture the relationship between the instance head and its body with
instance Foo a :=> Foo [a] where ins = Sub Dict
The ==> operator can be used to express a restricting condition under which a property should hold. It corresponds to implication in the classical logic. Note that ==> resets the quantification context for its operands to the default (universal).
The ==> operator can be used to express a restricting condition under which a property should hold. It corresponds to implication in the classical logic. Note that ==> resets the quantification context for its operands to the default (universal).
Assign the result of an IO action to an attribute.
Assign the result of an IO action to an attribute
Convenience helper. Uses pure to lift a into f a.
Vertical box layout: put the specified widgets one above the other in the specified order. Defers growth policies to the growth policies of both widgets. This operator is a binary version of vBox.
Utility function for inserting a = between two Doc values.
Combines two conduits with unbounded channels, creating a new conduit which pulls data from a mix of the two: whichever produces first. The order of the new conduit's output is undefined, but it will be some combination of the two given conduits.
Equivalence.
x <=> y = (x ==> y) /\ (y ==> x)
Implication.