Two is:module
This module defines the two-dimensional vector space R^2,
two-dimensional transformations, and various predefined
two-dimensional shapes. This module re-exports useful functionality
from a group of more specific modules:
- Diagrams.TwoD.Types defines basic types for two-dimensional
diagrams, including types representing the 2D Euclidean vector space
and various systems of angle measurement.
- Diagrams.TwoD.Align defines alignment combinators
specialized to two dimensions (see Diagrams.Align for more
general alignment).
- Diagrams.TwoD.Combinators defines ways of combining
diagrams specialized to two dimensions (see also
Diagrams.Combinators for more general combining).
- Diagrams.TwoD.Attributes defines attributes specific to two
dimensions, *e.g.* fill color, line color, and gradients.
- Diagrams.TwoD.Transform defines R^2-specific
transformations such as rotation by an angle, and scaling,
translation, and reflection in the X and Y directions.
- Diagrams.TwoD.Deform defines some non-affine
transformations specific to two dimensions, *e.g.* parallel and
perspective projections.
- Diagrams.TwoD.Ellipse defines circles and ellipses.
- Diagrams.TwoD.Arc defines circular arcs.
- Diagrams.TwoD.Path exports various operations on
two-dimensional paths when viewed as regions of the plane.
- Diagrams.TwoD.Polygons defines general algorithms for
drawing various types of polygons.
- Diagrams.TwoD.Shapes defines other two-dimensional shapes,
e.g. various polygons.
- Diagrams.TwoD.Arrow contains tools for drawing arrows
between things, and Diagrams.TwoD.Arrowheads defines a
collection of arrowheads.
- Diagrams.TwoD.Text defines primitive text diagrams.
- Diagrams.TwoD.Image allows importing external images into
diagrams.
- Diagrams.TwoD.Vector defines some special 2D vectors and
functions for converting between vectors and angles.
- Diagrams.TwoD.Size defines functions for working with the
size of 2D objects.
- Diagrams.TwoD.Model defines some aids for visualizing
diagrams' internal model (local origins, envelopes, etc.)
A layout that splits the screen horizontally and shows two windows.
The left window is always the master window, and the right is either
the currently focused window or the second window in layout order.
This layout is the same as
XMonad.Layout.TwoPane except that it
keeps track of the slave window that is alongside the master pane. In
other words, it prevents the slave pane from changing after the focus
goes back to the master pane.
A module to provide the simple version of the obtaining from the list
of values the list of other values, the pre-defined ones. Provides
both pure functions and monadic versions. Contrary to ListQuantizer
module, the results in every function here depend on the two values,
which the point is located in between. Defined for just positive real
numbers of
Double type.
Converting network Sockets to streams.
GNetworkMonitor provides an easy-to-use cross-platform API
for monitoring network connectivity. On Linux, the available
implementations are based on the kernel's netlink interface and on
NetworkManager.
There is also an implementation for use inside Flatpak sandboxes.
Since: 2.32
GNetworkAddress provides an easy way to resolve a hostname
and then attempt to connect to that host, handling the possibility of
multiple IP addresses and multiple address families.
The enumeration results of resolved addresses *may* be cached as long
as this object is kept alive which may have unexpected results if
alive for too long.
See
SocketConnectable for an example of using the connectable
interface.
Like
NetworkAddress does with hostnames,
GNetworkService provides an easy way to resolve a SRV record,
and then attempt to connect to one of the hosts that implements that
service, handling service priority/weighting, multiple IP addresses,
and multiple address families.
See
SrvTarget for more information about SRV records, and see
SocketConnectable for an example of using the connectable
interface.
Alga is a library for algebraic construction and manipulation
of graphs in Haskell. See
this paper for the motivation behind
the library, the underlying theory, and implementation details.
This module contains a simple example of using edge-labelled graphs
defined in the module
Algebra.Graph.Labelled for working with
networks, i.e. graphs whose edges are labelled with distances.
This module provides basic types used for the Bitcoin networking
protocol together with
Serialize instances for efficiently
serializing and de-serializing them.