~jaro/balkon

ref: cb91af4abb880a32dc80e05802e572c95eefcfa5 balkon/test d---------
Remove (~) operator from ParagraphConstruction.

The tilde operator was causing compilation errors with older versions
of GHC, possibly due to a conflict with the lazy pattern match syntax.

It has been replaced by a pure Haskell alternative that uses function
application.
Refactor line breaking.
Test forming and breaking ligatures.
Allow breaking at character bounds.
Implement trimming spaces at end of lines.
Ensure paragraph rect is unaffected by spans.
Fix comment syntax.
Insert extra test to work around segmentation fault.

Without the added test, the test suite causes a segmentation fault
after starting "wraps by characters when line is ultra narrow".
Add line wrapping tests with spans.
Make SpanOptions a separate type.
Hide Rect union from public interface.

The function behaves in a specific way that should not be relied on by
other modules.
Move non-public modules into Internal namespace.
Make ParagraphConstruction more efficient.
Make paragraphRect origin always 0,0.

This convention should make it easier for the caller to properly place
the paragraph within a document.
Add test for RTL text.
Remove obsolete TODO.
Test line splitting with many runs.
Add ignored prefixes and suffixes to test data.

This ensures that implementation does not rely on the texts having zero
offset inside their byte arrays.
Remove I8/Int distinction.

The distinction was meant to provide additional type safety, but
inconsistency with other used libraries required too many workarounds
for this to be beneficial.
Minimise working with Data.Text.Internal.
Next