blob: dc3f94b577b9f3ba8d6265fdc79df58b7444c60e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
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.
|