out package:clash-lib

Output ports
How the result is assigned in HDL. This is used to determine the type of declaration used to render the result (wire/reg or signal/variable). The default usage is continuous assignment.
Output with fully expanded port names. Nothing if port is void or BiDirectionalOut.
Same as idToPort, but: * Throws an error if port is of type BiSignalIn
Generate output port(s) for an instantiation of a top entity. This function combines all output ports into a signal identifier and returns its name.
Create output port names for the declaration of a top entity. For instantiation see mkTopInstOutput.
Options to influence the layout algorithms.
(layoutCompact x) lays out the document x without adding any indentation and without preserving annotations. Since no 'pretty' printing is involved, this layouter is very fast. The resulting output contains fewer characters than a prettyprinted version and can be used for output that is read by other programs.
>>> let doc = hang 4 (vsep ["lorem", "ipsum", hang 4 (vsep ["dolor", "sit"])])

>>> doc
lorem
ipsum
dolor
sit
>>> let putDocCompact = renderIO System.IO.stdout . layoutCompact

>>> putDocCompact doc
lorem
ipsum
dolor
sit
This is the default layout algorithm, and it is used by show, putDoc and hPutDoc. layoutPretty commits to rendering something in a certain way if the next element fits the layout constraints; in other words, it has one SimpleDocStream element lookahead when rendering. Consider using the smarter, but a bit less performant, layoutSmart algorithm if the results seem to run off to the right before having lots of line breaks.