4.3. Meaningful file suffixes

File names with “meaningful” suffixes (e.g., .lhs or .o) cause the “right thing” to happen to those files.


A “literate Haskell” module.


A not-so-literate Haskell module.


A Haskell interface file, probably compiler-generated.


Intermediate C file produced by the Haskell compiler.


A C file not produced by the Haskell compiler.


An assembly-language source file, usually produced by the compiler.


An object file, produced by an assembler.

Files with other suffixes (or without suffixes) are passed straight to the linker.