copilot-c99: A compiler for Copilot targeting C99.

This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.

[maintain] [Publish]

This package is a back-end from Copilot to C.

Copilot is a stream (i.e., infinite lists) domain-specific language (DSL) in Haskell that compiles into embedded C. Copilot contains an interpreter, multiple back-end compilers, and other verification tools.

A tutorial, examples, and other information are available at

[Skip to Readme]


Versions 0.1, 0.2, 0.2.1, 0.2.2, 0.2.3, 0.2.4, 0.2.5, 2.1.1, 2.1.2, 2.2.0, 2.2.1, 3.0, 3.0.1, 3.0.2, 3.1, 3.1.1, 3.1.2, 3.2, 3.2.1, 3.2.1, 3.3, 3.4, 3.5, 3.6
Change log CHANGELOG
Dependencies base (>=4.9 && <5), containers (>=0.4 && <0.7), copilot-core (>=3.2.1 && <3.3), directory (==1.3.*), filepath (==1.4.*), language-c99 (>=0.1.1 && <0.2), language-c99-simple (>=0.1.1 && <0.2), language-c99-util (>=0.1.1 && <0.2), mtl (==2.2.*), pretty (==1.1.*) [details]
License BSD-3-Clause
Author Frank Dedden , Alwyn Goodloe
Maintainer Frank Dedden <>
Category Language, Embedded
Home page
Bug tracker
Source repo head: git clone git://
Uploaded by frankdedden at 2021-03-07T14:58:23Z




Maintainer's Corner

For package maintainers and hackage trustees

Readme for copilot-c99-3.2.1

[back to package description]

Build Status

Copilot: a stream DSL

Copilot-c99 implements a C99 backend for Copilot, producing high quality code suitable for hard realtime applications.

Copilot is a runtime verification framework written in Haskell. It allows the user to write programs in a simple but powerful way using a stream-based approach.

Programs can be interpreted for testing, or translated C99 code to be incorporated in a project, or as a standalone application. The C99 backend ensures us that the output is constant in memory and time, making it suitable for systems with hard realtime requirements.


Copilot-c99 can be found on Hackage. It is typically only installed as part of the complete Copilot distribution. For installation instructions, please refer to the Copilot website.

Further information

For further information, install instructions and documentation, please visit the Copilot website:


Copilot is distributed under the BSD-3-Clause license, which can be found here.