24 lines
1.2 KiB
Text
24 lines
1.2 KiB
Text
|
Programming languages are limited to relatively few characters. As
|
||
|
a result, combined character operators surfaced quite early, such
|
||
|
as the widely used arrow (->), comprised of a hyphen and greater
|
||
|
sign. It looks like an arrow if you know the analogy and squint a
|
||
|
bit.
|
||
|
|
||
|
Composite glyphs are problematic in languages such as Haskell which
|
||
|
utilize these complicated operators (=> -< >>= etc.) extensively.
|
||
|
The readability of such complex code improves with pretty printing.
|
||
|
Academic articles featuring Haskell code often use lhs2tex to
|
||
|
achieve an appealing rendering, but it is of no use when programming.
|
||
|
|
||
|
Some Haskellers have resorted to Unicode symbols, which are valid
|
||
|
in the ghc. However they are one-character-wide and therefore
|
||
|
eye-strainingly small. Furthermore, when displayed as substitutes
|
||
|
to the underlying multi-character representation, as vim2hs does,
|
||
|
the characters go out of alignment.
|
||
|
|
||
|
Hasklig solves the problem the way typographers have always solved
|
||
|
ill-fitting characters which co-occur often: ligatures. The underlying
|
||
|
code stays the same - only the representation changes. Not only
|
||
|
can multi-character glyphs be rendered more vividly, other problematic
|
||
|
things in monospaced fonts, such as spacing can be corrected.
|