Hoogle Search
Within LTS Haskell 24.4 (ghc-9.10.2)
Note that Stackage only displays results for the latest LTS and Nightly snapshot. Learn more.
-
graphviz Data.GraphViz.Attributes.Complete No documentation available.
-
graphviz Data.GraphViz.Attributes.Complete Represents which side (when looking towards the node the arrow is pointing to) is drawn.
ArrowSize :: Double -> Attributegraphviz Data.GraphViz.Attributes.Complete Valid for: E; Default: 1.0; Minimum: 0.0
ArrowTail :: ArrowType -> Attributegraphviz Data.GraphViz.Attributes.Complete Valid for: E; Default: normal
-
graphviz Data.GraphViz.Attributes.Complete Dot has a basic grammar of arrow shapes which allows usage of up to 1,544,761 different shapes from 9 different basic ArrowShapes. Note that whilst an explicit list is used in the definition of ArrowType, there must be at least one tuple and a maximum of 4 (since that is what is required by Dot). For more information, see: http://graphviz.org/doc/info/arrows.html The 19 basic arrows shown on the overall attributes page have been defined below as a convenience. Parsing of the 5 backward-compatible special cases is also supported.
class Arrow a =>
ArrowApply (a :: Type -> Type -> Type)essence-of-live-coding LiveCoding Some arrows allow application of arrow inputs to other inputs. Instances should satisfy the following laws:
first (arr (\x -> arr (\y -> (x,y)))) >>> app = id
first (arr (g >>>)) >>> app = second g >>> app
first (arr (>>> h)) >>> app = app >>> h
class Arrow a =>
ArrowChoice (a :: Type -> Type -> Type)essence-of-live-coding LiveCoding Choice, for arrows that support it. This class underlies the if and case constructs in arrow notation. Instances should satisfy the following laws:
left (arr f) = arr (left f)
left (f >>> g) = left f >>> left g
f >>> arr Left = arr Left >>> left f
left f >>> arr (id +++ g) = arr (id +++ g) >>> left f
left (left f) >>> arr assocsum = arr assocsum >>> left f
assocsum (Left (Left x)) = Left x assocsum (Left (Right y)) = Right (Left y) assocsum (Right z) = Right (Right z)
The other combinators have sensible default definitions, which may be overridden for efficiency.class Arrow a =>
ArrowLoop (a :: Type -> Type -> Type)essence-of-live-coding LiveCoding The loop operator expresses computations in which an output value is fed back as input, although the computation occurs only once. It underlies the rec value recursion construct in arrow notation. loop should satisfy the following laws:
- extension loop (arr f) = arr (\ b -> fst (fix (\ (c,d) -> f (b,d))))
- left tightening loop (first h >>> f) = h >>> loop f
- right tightening loop (f >>> first h) = loop f >>> h
- sliding loop (f >>> arr (id *** k)) = loop (arr (id *** k) >>> f)
- vanishing loop (loop f) = loop (arr unassoc >>> f >>> arr assoc)
- superposing second (loop f) = loop (arr assoc >>> second f >>> arr unassoc)
assoc ((a,b),c) = (a,(b,c)) unassoc (a,(b,c)) = ((a,b),c)
newtype
ArrowMonad (a :: Type -> Type -> Type) bessence-of-live-coding LiveCoding The ArrowApply class is equivalent to Monad: any monad gives rise to a Kleisli arrow, and any instance of ArrowApply defines a monad.
ArrowMonad :: a () b -> ArrowMonad (a :: Type -> Type -> Type) bessence-of-live-coding LiveCoding No documentation available.