The goal of this paper is to contribute to a deeper understanding of the Unicode Bidirectional Reference Algorithm. We have provided an alternative reference algorithm written in the functional language Haskell. The advantage of Haskell is it allows for a short, clear description of a complex problem. We have run our algorithm, the two Unicode reference implementations, and four others (ICU, PGBA, FriBidi, JDK 1.2) to test for compliance with the published standard. Conclusions are difficult to reach, but problems were found in the implementations and descriptions and above all with a character-stream to character-stream interpretation of the display of bidirectional text.
Atkin, S. & Stansifer, R. (2000). Implementations of bidirectional reordering algorithms (CS-2000-1). Melbourne, FL. Florida Institute of Technology.