How To Install libghc-enumerator-dev on Ubuntu 18.04

In this tutorial we learn how to install libghc-enumerator-dev on Ubuntu 18.04. libghc-enumerator-dev is high-performance left-fold enumerators

Introduction

In this tutorial we learn how to install libghc-enumerator-dev on Ubuntu 18.04.

What is libghc-enumerator-dev

libghc-enumerator-dev is:

Typical buffer–based incremental I/O is based around a single loop, which reads data from some source (such as a socket or file), transforms it, and generates one or more outputs (such as a line count, HTTP responses, or modified file). Although efficient and safe, these loops are all single–purpose; it is difficult or impossible to compose buffer–based processing loops.

Haskell’s concept of “lazy I/O” allows pure code to operate on data from an external source. However, lazy I/O has several shortcomings. Most notably, resources such as memory and file handles can be retained for arbitrarily long periods of time, causing unpredictable performance and error conditions.

Enumerators are an efficient, predictable, and safe alternative to lazy I/O. Discovered by Oleg Kiselyov, they allow large datasets to be processed in near–constant space by pure code. Although somewhat more complex to write, using enumerators instead of lazy I/O produces more correct programs.

This library contains an enumerator implementation for Haskell, designed to be both simple and efficient. Three core types are defined, along with numerous helper functions:

Iteratee: Data sinks, analogous to left folds. Iteratees consume a sequence of input values, and generate a single output value. Many iteratees are designed to perform side effects (such as printing to stdout), so they can also be used as monad transformers.

Enumerator: Data sources, which generate input sequences. Typical enumerators read from a file handle, socket, random number generator, or other external stream. To operate, enumerators are passed an iteratee, and provide that iteratee with input until either the iteratee has completed its computation, or EOF.

Enumeratee: Data transformers, which operate as both enumerators and iteratees. Enumeratees read from an outer enumerator, and provide the transformed data to an inner iteratee.

This package provides a library for the Haskell programming language. See http://www.haskell.org/ for more information on Haskell.

There are three methods to install libghc-enumerator-dev on Ubuntu 18.04. We can use apt-get, apt and aptitude. In the following sections we will describe each method. You can choose one of them.

Install libghc-enumerator-dev Using apt-get

Update apt database with apt-get using the following command.

sudo apt-get update

After updating apt database, We can install libghc-enumerator-dev using apt-get by running the following command:

sudo apt-get -y install libghc-enumerator-dev

Install libghc-enumerator-dev Using apt

Update apt database with apt using the following command.

sudo apt update

After updating apt database, We can install libghc-enumerator-dev using apt by running the following command:

sudo apt -y install libghc-enumerator-dev

Install libghc-enumerator-dev Using aptitude

If you want to follow this method, you might need to install aptitude first since aptitude is usually not installed by default on Ubuntu. Update apt database with aptitude using the following command.

sudo aptitude update

After updating apt database, We can install libghc-enumerator-dev using aptitude by running the following command:

sudo aptitude -y install libghc-enumerator-dev

How To Uninstall libghc-enumerator-dev on Ubuntu 18.04

To uninstall only the libghc-enumerator-dev package we can use the following command:

sudo apt-get remove libghc-enumerator-dev

Uninstall libghc-enumerator-dev And Its Dependencies

To uninstall libghc-enumerator-dev and its dependencies that are no longer needed by Ubuntu 18.04, we can use the command below:

sudo apt-get -y autoremove libghc-enumerator-dev

Remove libghc-enumerator-dev Configurations and Data

To remove libghc-enumerator-dev configuration and data from Ubuntu 18.04 we can use the following command:

sudo apt-get -y purge libghc-enumerator-dev

Remove libghc-enumerator-dev configuration, data, and all of its dependencies

We can use the following command to remove libghc-enumerator-dev configurations, data and all of its dependencies, we can use the following command:

sudo apt-get -y autoremove --purge libghc-enumerator-dev

References

Summary

In this tutorial we learn how to install libghc-enumerator-dev package on Ubuntu 18.04 using different package management tools: apt, apt-get and aptitude.