open-index/open-npm huggingface dataset:
npm package: @purescript/psci-support
Description: Support module for the PSCI interactive mode
Latest version: 3.0.0

# purescript-psci-support

[![Latest release](http://img.shields.io/github/release/purescript/purescript-psci-support.svg)](https://github.com/purescript/purescript-psci-support/releases)
[![Build status](https://travis-ci.org/purescript/purescript-psci-support.svg?branch=master)](https://travis-ci.org/purescript/purescript-psci-support)

Support module for the PSCI interactive mode. This package is required for correct operation of PSCI as of version 0.9.0.

## Installation

```
bower install purescript-psci-support
```

## Documentation

Module documentation is [published on Pursuit](http://pursuit.purescript.org/packages/purescript-psci-support).

## Notes for Library Implementors

If you are implementing an alternative to the Prelude, you may wish to implement the `Eval` class for any types which should support evaluation in the REPL.
npm package: @purescript/quickcheck
Description: [![Latest release](http://img.shields.io/github/release/purescript/purescript-quickcheck.svg)](https://github.com/purescript/purescript-quickcheck/releases) [![Build status](https://travis-ci.org/purescript/purescript-quickcheck.svg?branch=master)](https:
Latest version: 4.1.0

# purescript-quickcheck

[![Latest release](http://img.shields.io/github/release/purescript/purescript-quickcheck.svg)](https://github.com/purescript/purescript-quickcheck/releases)
[![Build status](https://travis-ci.org/purescript/purescript-quickcheck.svg?branch=master)](https://travis-ci.org/purescript/purescript-quickcheck)

An implementation of QuickCheck in PureScript.

## Installation

```
bower install purescript-quickcheck
```

## Documentation

Module documentation is [published on Pursuit](http://pursuit.purescript.org/packages/purescript-quickcheck).
npm package: @purescript/random
Description: Random value generation
Latest version: 3.0.0

# purescript-random

[![Latest release](http://img.shields.io/github/release/purescript/purescript-random.svg)](https://github.com/purescript/purescript-random/releases)
[![Build status](https://travis-ci.org/purescript/purescript-random.svg?branch=master)](https://travis-ci.org/purescript/purescript-random)

Random value generation.

## Installation

```
bower install purescript-random
```

## Documentation

Module documentation is [published on Pursuit](http://pursuit.purescript.org/packages/purescript-random).
npm package: @purescript/react
Description: PureScript bindings for react
Latest version: 3.0.1

# purescript-react

[![Maintainer: paf31](https://img.shields.io/badge/maintainer-paf31-lightgrey.svg)](http://github.com/paf31) ![React: 0.14](https://img.shields.io/badge/react-0.14-lightgrey.svg)

Low-level React Bindings for PureScript.

For a more high-level set of bindings, you might like to look at `purescript-thermite`.

- [Module Documentation](docs/)

```
bower install purescript-react
```

## Related Modules

- [React DOM](https://github.com/purescript-contrib/purescript-react-dom)
- [CSS Transition Group Addon](https://github.com/purescript-contrib/purescript-react-addons-css-transition-group)

## Example

Please refer to [purescript-react-example](https://github.com/ethul/purescript-react-example)
npm package: @purescript/react-dom
Description: PureScript bindings for react-dom
Latest version: 3.0.0

# purescript-react-dom

Low-level React DOM bindings for PureScript

- [Module Documentation](generated-docs/)

## Installation

```
bower install purescript-react-dom
```

## Example

Please refer to [purescript-react-example](https://github.com/ethul/purescript-react-example)
npm package: @purescript/sets
Description: [![Latest release](http://img.shields.io/github/release/purescript/purescript-sets.svg)](https://github.com/purescript/purescript-sets/releases) [![Build status](https://travis-ci.org/purescript/purescript-sets.svg?branch=master)](https://travis-ci.org/pu
Latest version: 3.0.0

# purescript-sets

[![Latest release](http://img.shields.io/github/release/purescript/purescript-sets.svg)](https://github.com/purescript/purescript-sets/releases)
[![Build status](https://travis-ci.org/purescript/purescript-sets.svg?branch=master)](https://travis-ci.org/purescript/purescript-sets)
[![Dependency status](https://img.shields.io/librariesio/github/purescript/purescript-sets.svg)](https://libraries.io/github/purescript/purescript-sets)

Purely-functional set data structure

## Installation

```
bower install purescript-sets
```

## Documentation

Module documentation is [published on Pursuit](http://pursuit.purescript.org/packages/purescript-sets).
npm package: @purescript/st
Description: The ST effect, for safe local mutation
Latest version: 3.0.0

# purescript-st

[![Latest release](http://img.shields.io/github/release/purescript/purescript-st.svg)](https://github.com/purescript/purescript-st/releases)
[![Build status](https://travis-ci.org/purescript/purescript-st.svg?branch=master)](https://travis-ci.org/purescript/purescript-st)

The ST effect, for safe local mutation.

## Installation

```
bower install purescript-st
```

## Documentation

Module documentation is [published on Pursuit](http://pursuit.purescript.org/packages/purescript-st).
npm package: @purescript/strings
Description: String and char utility functions, regular expressions.
Latest version: 3.1.0

# purescript-strings

[![Latest release](http://img.shields.io/github/release/purescript/purescript-strings.svg)](https://github.com/purescript/purescript-strings/releases)
[![Build status](https://travis-ci.org/purescript/purescript-strings.svg?branch=master)](https://travis-ci.org/purescript/purescript-strings)

String and char utility functions, regular expressions.

## Installation

```
bower install purescript-strings
```

## Documentation

Module documentation is [published on Pursuit](http://pursuit.purescript.org/packages/purescript-strings).
npm package: @purescript/strongcheck
Description: [![Latest release](http://img.shields.io/github/release/purescript-contrib/purescript-strongcheck.svg)](https://github.com/purescript-contrib/purescript-strongcheck/releases) [![Build Status](https://travis-ci.org/purescript-contrib/purescript-strongcheck
Latest version: 3.1.0

# purescript-strongcheck

[![Latest release](http://img.shields.io/github/release/purescript-contrib/purescript-strongcheck.svg)](https://github.com/purescript-contrib/purescript-strongcheck/releases)
[![Build Status](https://travis-ci.org/purescript-contrib/purescript-strongcheck.svg?branch=master)](https://travis-ci.org/purescript-contrib/purescript-strongcheck)
[![Maintainer: slamdata](https://img.shields.io/badge/maintainer-slamdata-lightgrey.svg)](http://github.com/slamdata)

A version of [QuickCheck](https://github.com/purescript/purescript-quickcheck) with additional features such as exhaustive and statistical checking.

## Installation

```shell
bower install purescript-strongcheck
```

## Documentation

Module documentation is [published on Pursuit](http://pursuit.purescript.org/packages/purescript-strongcheck).
npm package: @purescript/tailrec
Description: A type class for monadic recursion
Latest version: 3.2.0

# purescript-tailrec

[![Latest release](http://img.shields.io/github/release/purescript/purescript-tailrec.svg)](https://github.com/purescript/purescript-tailrec/releases)
[![Build status](https://travis-ci.org/purescript/purescript-tailrec.svg?branch=master)](https://travis-ci.org/purescript/purescript-tailrec)

A type class which captures stack-safe monadic tail recursion.

## Installation

```
bower i purescript-tailrec
```

## Usage

The PureScript compiler performs tail-call elimination for self-recursive functions, so that a function like

```purescript
pow :: Number -> Number -> Number
pow n p = go { accum: 1, power: p }
  where
  go { accum: acc, power: 0 } = acc
  go { accum: acc, power: p } = go { accum: acc * n, power: p - 1 }
```

gets compiled into an efficient `while` loop.

However, we do not get the same benefit when using monadic recursion:

```purescript
powWriter :: Number -> Number -> Writer Product Unit
powWriter n = go
  where
  go 0 = return unit
  go m = do
    tell n
    go (m - 1)
```

However, we can refactor the original function to isolate the recursive function call:

```purescript
pow :: Number -> Number -> Number
pow n p = tailRec go { accum: 1, power: p }
  where
  go :: _ -> Step _ Number
  go { accum: acc, power: 0 } = Done acc
  go { accum: acc, power: p } = Loop { accum: acc * n, power: p - 1 }
```

where the `tailRec` function is defined in the `Control.Monad.Rec.Class` module, with type:

```purescript
tailRec :: forall a b. (a -> Step a b) -> a -> b
```

In the body of the loop, instead of calling the `go` function recursively, we return a value using the `Loop` constructor. To break from the loop, we use the `Done` constructor.

This pattern can be generalized to several monad transformers from the `purescript-transformers` library using the following type class:

```purescript
class Monad m <= MonadRec m where
  tailRecM :: forall a b. (a -> m (Step a b)) -> a -> m b
```

## Documentation

Module documentation is [published on Pursuit](http://pursuit.purescript.org/packages/purescript-tailrec).
npm package: @purescript/transformers
Description: PureScript monad and comonad transformers library
Latest version: 3.3.0

# purescript-transformers

[![Latest release](http://img.shields.io/github/release/purescript/purescript-transformers.svg)](https://github.com/purescript/purescript-transformers/releases)
[![Build status](https://travis-ci.org/purescript/purescript-transformers.svg?branch=master)](https://travis-ci.org/purescript/purescript-transformers)

Monad and comonad transformers based on [mtl](http://hackage.haskell.org/package/mtl).

## Installation

```
bower install purescript-transformers
```

## Documentation

Module documentation is [published on Pursuit](http://pursuit.purescript.org/packages/purescript-transformers).
npm package: @purescript/tuples
Description: Tuple data type and utility functions
Latest version: 4.1.0

# purescript-tuples

[![Latest release](http://img.shields.io/github/release/purescript/purescript-tuples.svg)](https://github.com/purescript/purescript-tuples/releases)
[![Build status](https://travis-ci.org/purescript/purescript-tuples.svg?branch=master)](https://travis-ci.org/purescript/purescript-tuples)

Tuple data type and utility functions.

## Installation

```
bower install purescript-tuples
```

## Documentation

Module documentation is [published on Pursuit](http://pursuit.purescript.org/packages/purescript-tuples).
npm package: @purescript/type-equality
Description: [![Latest release](http://img.shields.io/github/release/purescript/purescript-type-equality.svg)](https://github.com/purescript/purescript-type-equality/releases) [![Build status](https://travis-ci.org/purescript/purescript-type-equality.svg?branch=master
Latest version: 2.1.0

# purescript-type-equality

[![Latest release](http://img.shields.io/github/release/purescript/purescript-type-equality.svg)](https://github.com/purescript/purescript-type-equality/releases)
[![Build status](https://travis-ci.org/purescript/purescript-type-equality.svg?branch=master)](https://travis-ci.org/purescript/purescript-type-equality)

Type equality constraints

## Installation

```
bower install purescript-type-equality
```

## Documentation

Module documentation is [published on Pursuit](http://pursuit.purescript.org/packages/purescript-type-equality).
npm package: @purescript/unfoldable
Description: Unfoldable Functors
Latest version: 3.0.0

# purescript-unfoldable

[![Latest release](http://img.shields.io/github/release/purescript/purescript-unfoldable.svg)](https://github.com/purescript/purescript-unfoldable/releases)
[![Build status](https://travis-ci.org/purescript/purescript-unfoldable.svg?branch=master)](https://travis-ci.org/purescript/purescript-unfoldable)

Unfoldable functors.

## Installation

```
bower install purescript-unfoldable
```

## Documentation

Module documentation is [published on Pursuit](http://pursuit.purescript.org/packages/purescript-unfoldable).
npm package: @purescript/unsafe-coerce
Description: Unsafe coercion of values.
Latest version: 3.0.0

# purescript-unsafe-coerce

[![Latest release](http://img.shields.io/github/release/purescript/purescript-unsafe-coerce.svg)](https://github.com/purescript/purescript-unsafe-coerce/releases)
[![Build status](https://travis-ci.org/purescript/purescript-unsafe-coerce.svg?branch=master)](https://travis-ci.org/purescript/purescript-unsafe-coerce)

A _highly unsafe_ function, which can be used to persuade the type system that any type is the same as any other type. When using this function, it is your (that is, the caller's) responsibility to ensure that the underlying representation for both types is the same.

There are few situations where it is acceptable to use this function, it should only ever appear as an internal implementation detail of a library, never as a function used in a "normal" codebase.

## Installation

```
bower install purescript-unsafe-coerce
```

## Documentation

Module documentation is [published on Pursuit](http://pursuit.purescript.org/packages/purescript-unsafe-coerce).
npm package: @puresec/eslint-config-base
Description: PureSec's base eslint configuration.
Author: PureSec
Latest version: 1.0.0

# @puresec/eslint-config-base

## Usage

In your project run:

```bash
npm install --save-dev eslint @puresec/eslint-config-base
```

Then create a file called `.eslintrc.yml` in your root directory:

```yaml
extends: @puresec/eslint-config-base
```

## Development

### Publish a new version

Set the `"version"` in `package.json`, then run:

```bash
npm publish --access public
```

(if you have permissions)