Skip to content

Haddock to ICML Converter

FileFlip converts Haddock to ICML entirely inside your browser, using Pandoc compiled to WebAssembly. The file is never uploaded to a server: it is read off your disk, converted on your own machine, and saved back by the browser. That means no file-size limit, no queue and no account.

Convert HADDOCK to

How do I convert a Haddock file to ICML?#

  1. Drop your Haddock file onto the converter at the top of this page, or click it to pick one from your computer. You can add as many as you like.
  2. Leave the target set to ICML and the conversion starts on its own. FileFlip downloads 65.8 MB of WebAssembly the first time and nothing after that, then runs Pandoc on your own machine.
  3. Save the ICML file. Your browser writes it straight to your downloads folder, because there was never a server holding it.

Does converting Haddock to ICML lose quality?#

Not in the sense of pixels or samples. Converting Haddock to ICML rebuilds the file in ICML's own model rather than re-encoding it, so everything ICML can represent comes through exactly and anything it cannot has to be dropped. Expect the words to come through exactly and the page breaks to move.

Is it safe to convert Haddock files online?#

Yes, because nothing is uploaded. FileFlip converts Haddock files inside the browser tab you already have open, using WebAssembly builds of the same engines a desktop converter would install. Your file is read from your own disk into the page's memory, and no request carrying it is ever made.

You do not have to take that on trust. Open your browser's network panel, run a conversion, and you will see the engine come down and your file go nowhere. There is no upload, no server-side copy, no retention window, and no account tied to what you converted.

How FileFlip works lists every engine, its version and its download size, and shows how to check for yourself that nothing leaves your machine.

What Haddock to ICML actually does to the file#

Converting Haddock to ICML runs on Pandoc, downloads 65.8 MB of WebAssembly the first time and nothing after that, rebuilds the file in the target's own model, keeps selectable text and page layout.

EnginePandoc
Conversion pathOne step: Haddock → ICML
Downloaded to your browser65.8 MB, once, then cached by your browser
QualityRebuilt in the target's model
You get backOne file
Where it runsIn a background worker, so the page stays responsive

What survives the conversion

What is in the fileThis conversionWhy
Selectable textKeptCarried through into the converted file.
Page layoutKeptCarried through into the converted file.

What is a Haddock file?#

A Haddock file holds documentation written in Haddock markup, the comment syntax Haskell's own documentation generator reads out of source files to build a module's API reference.

Write Haddock markup directly in Haskell source comments so `cabal haddock` can generate the package's API documentation.

Convert Haddock markup to Markdown when the same text needs to appear in a README or a project website outside the generated API docs.

What is an ICML file?#

An ICML file is a single XML document holding one InDesign story's text and its paragraph and character style names, with no page geometry, meant to be opened in Adobe InCopy or imported into an existing InDesign layout rather than viewed on its own.

Use ICML to move styled text into an InDesign layout from a source that can generate structured XML, keeping paragraph and character styles intact instead of retyping the copy.

Convert content out of ICML once it leaves the InDesign workflow, since almost nothing outside Adobe's own applications reads it.

Haddock to ICML questions people ask#

What is a .haddock file?

A .haddock file holds text written in Haddock markup, the comment syntax Haskell's documentation generator reads. In practice this markup normally lives inside `-- |` and `-- ^` comments in a .hs source file rather than a standalone file, so a .haddock file usually appears when that text has been extracted or converted on its own.

How do I generate documentation from Haddock comments?

Running `cabal haddock` or `stack haddock` in a Haskell project reads the Haddock comments in its source files and builds an HTML API reference, the same kind of page Hackage hosts for every published package.

What's the difference between -- | and -- ^ in Haddock?

-- | attaches a Haddock doc comment to the declaration that follows it, while -- ^ attaches one to the declaration or argument just before it. The choice is about position: -- | documents forward, -- ^ documents backward.

What application opens an ICML file?

Adobe InDesign and Adobe InCopy are effectively the only applications that open ICML files, since the format exists specifically to move a story's styled text between the two. There is no independent viewer for it outside Adobe's publishing tools.