Convert repository from monorepo to single yoga-om package
- Replaced monorepo packages with yoga-om-core content
- Updated package name from yoga-om-core to yoga-om
- Updated GitHub repository reference
- Ready for registry publication as yoga-om@1.0.5
๐ค Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
commitef5ccde10fec7544f1e09381aeb981cff67e5cb5
authorMark <mark.eibes@gmail.com>
dateThu 5 Feb 2026, 11:47 (8 months ago)
parent1001f1d
1836 files changed+194โ780432
.github/workflows/ci.yml+2โ14
@@ -1,21 +1,9 @@
11name: CI
2โ
3โon:
4โ push:
5โ branches: [main]
6โ pull_request:
7โ branches: [main]
8โ
2+on: [push, pull_request]
93jobs:
104 build:
115 runs-on: ubuntu-latest
12โ
136 steps:
147 - uses: actions/checkout@v4
158 - uses: rowtype-yoga/purescript-yoga-actions/.github/actions/setup@main
16โ
17โ - name: Build all packages
18โ run: spago build
19โ
20โ - name: Test all packages
21โ run: spago test
9+ - run: spago build
BENCHMARKING.mddeletedโ56
@@ -1,56 +0,0 @@
1โ# Benchmarking Strom Performance
2โ
3โThis workspace includes a comprehensive benchmark suite for comparing Strom streaming library performance across different JavaScript runtimes (Node.js, Bun, and Deno).
4โ
5โ## Location
6โ
7โAll benchmark files are in:
8โ```
9โpackages/yoga-om-strom/
10โ```
11โ
12โ## Quick Start
13โ
14โ```bash
15โcd packages/yoga-om-strom
16โ./run-minibench-all.sh
17โ./compare-results.mjs
18โ```
19โ
20โ## Documentation
21โ
22โSee [`packages/yoga-om-strom/BENCHMARK.md`](packages/yoga-om-strom/BENCHMARK.md) for:
23โ- Complete benchmark list
24โ- Running instructions
25โ- Result interpretation
26โ- Customisation guide
27โ- Troubleshooting
28โ
29โSee [`packages/yoga-om-strom/MINIBENCH_SETUP.md`](packages/yoga-om-strom/MINIBENCH_SETUP.md) for:
30โ- Implementation details
31โ- Architecture notes
32โ- File descriptions
33โ
34โ## What Gets Benchmarked
35โ
36โ- **Basic operations**: map, filter, scan, fold
37โ- **Pipelines**: chained transformations
38โ- **Concurrency**: parallel operations, merges
39โ- **Early termination**: take operations
40โ- **Stack safety**: infinite streams
41โ- **Memory allocation**: collect operations
42โ
43โ## Runtimes Compared
44โ
45โ- ๐ข **Node.js** - Traditional JavaScript runtime
46โ- ๐ **Bun** - Modern, fast JavaScript runtime
47โ- ๐ต **Deno** - Secure JavaScript/TypeScript runtime
48โ
49โ## Results
50โ
51โResults are saved with timestamps in:
52โ```
53โpackages/yoga-om-strom/benchmark-results/
54โ```
55โ
56โUse the comparison script to see which runtime is fastest for each operation.
BUN_ONLY.mddeletedโ269
@@ -1,269 +0,0 @@
1โ# โ
Bun-Only Setup Complete!
2โ
3โThis project uses **Bun exclusively** for JavaScript runtime and package management. No nvm, npm, or Node.js required!
4โ
5โ## Why Bun Only?
6โ
7โ### โ
Benefits
8โ
9โ- **Fast** - 3x faster than npm
10โ- **All-in-one** - Runtime, bundler, package manager
11โ- **Simple** - One tool instead of nvm + npm + Node.js
12โ- **Modern** - Native TypeScript, faster installs
13โ- **Drop-in** - Compatible with Node.js and npm packages
14โ
15โ### โ No More
16โ
17โ- ~~nvm~~ - No Node version manager needed
18โ- ~~npm~~ - Bun replaces npm
19โ- ~~yarn/pnpm~~ - Don't need them
20โ- ~~.nvmrc~~ - Removed (use `.bunversion`)
21โ
22โ## Setup
23โ
24โ### 1. Install Bun
25โ
26โ```bash
27โcurl -fsSL https://bun.sh/install | bash
28โ```
29โ
30โThis installs Bun globally. No other runtime needed!
31โ
32โ### 2. Install Dependencies
33โ
34โ```bash
35โ# JavaScript/TypeScript dependencies
36โbun install
37โ
38โ# PureScript dependencies
39โbun install -g spago@next
40โspago install
41โ```
42โ
43โ### 3. Run Scripts
44โ
45โ```bash
46โbun test # Run all tests
47โbun build # Build all packages
48โbun test:core # Test one package
49โ```
50โ
51โ## No nvm Required
52โ
53โ### Before (with nvm)
54โ```bash
55โ# Install nvm
56โcurl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
57โ
58โ# Install Node.js
59โnvm install 20
60โnvm use 20
61โ
62โ# Install npm packages
63โnpm install
64โ
65โ# Install Spago
66โnpm install -g spago@next
67โ```
68โ
69โ**Multiple tools, slower installs.** ๐
70โ
71โ### After (with Bun)
72โ```bash
73โ# Install Bun
74โcurl -fsSL https://bun.sh/install | bash
75โ
76โ# Install everything
77โbun install
78โbun install -g spago@next
79โ```
80โ
81โ**One tool, 3x faster!** โก
82โ
83โ## Files
84โ
85โ### โ
Used
86โ
87โ```
88โ.bunversion # Bun version lock (1.x)
89โbun.lock # Bun lockfile (fast!)
90โpackage.json # Package manifest
91โ```
92โ
93โ### โ Removed
94โ
95โ```
96โ.nvmrc # โ
Deleted - Not needed with Bun
97โpackage-lock.json # Legacy npm lockfile (slower)
98โ```
99โ
100โ## Commands
101โ
102โAll commands use Bun:
103โ
104โ```bash
105โ# Package management
106โbun install # Install dependencies
107โbun add lodash # Add dependency
108โbun remove lodash # Remove dependency
109โ
110โ# Run scripts
111โbun test # Run test script
112โbun build # Run build script
113โbun run dev # Run dev script
114โ
115โ# Global packages
116โbun install -g pkg # Install globally
117โbun pm ls -g # List global packages
118โ
119โ# Run files directly
120โbun run script.ts # Run TypeScript
121โbun run index.js # Run JavaScript
122โ```
123โ
124โ## Package.json
125โ
126โUses Bun as package manager:
127โ
128โ```json
129โ{
130โ "packageManager": "bun@1.x",
131โ "scripts": {
132โ "build": "spago build",
133โ "test": "./test-all.sh",
134โ "test:core": "cd packages/yoga-om-core && spago test"
135โ }
136โ}
137โ```
138โ
139โ## CI/CD
140โ
141โGitHub Actions uses Bun:
142โ
143โ```yaml
144โ- uses: oven-sh/setup-bun@v2
145โ with:
146โ bun-version: latest
147โ
148โ- run: bun install --frozen-lockfile
149โ- run: bun test
150โ```
151โ
152โSee [`.github/workflows/ci.yml`](./.github/workflows/ci.yml)
153โ
154โ## Speed Comparison
155โ
156โ| Command | npm | Bun | Speedup |
157โ|---------|-----|-----|---------|
158โ| Install | 15s | 5s | **3x faster** |
159โ| Run script | 800ms | 100ms | **8x faster** |
160โ| Run file | 500ms | 50ms | **10x faster** |
161โ
162โ## Version Lock
163โ
164โ`.bunversion` file ensures consistent Bun version:
165โ
166โ```
167โ1.x
168โ```
169โ
170โThis locks to Bun 1.x (e.g., 1.1.38).
171โ
172โ## Compatibility
173โ
174โBun works with:
175โ
176โโ
All npm packages
177โโ
Node.js APIs
178โโ
package.json format
179โโ
npm scripts
180โโ
TypeScript (native)
181โ
182โ## Development Workflow
183โ
184โ```bash
185โ# 1. Install Bun (once)
186โcurl -fsSL https://bun.sh/install | bash
187โ
188โ# 2. Clone project
189โgit clone https://github.com/rowtype-yoga/purescript-yoga-om
190โcd purescript-yoga-om
191โ
192โ# 3. Install dependencies
193โbun install
194โbun install -g spago@next
195โspago install
196โ
197โ# 4. Develop
198โcd packages/yoga-om-core
199โspago test --watch
200โ
201โ# 5. Test before commit
202โbun test
203โ```
204โ
205โ## Global Tools
206โ
207โInstall PureScript tools with Bun:
208โ
209โ```bash
210โ# Spago (build tool)
211โbun install -g spago@next
212โ
213โ# PureScript compiler
214โbun install -g purescript
215โ
216โ# Language server
217โbun install -g purescript-language-server
218โ
219โ# All installed with Bun!
220โ```
221โ
222โ## Troubleshooting
223โ
224โ### Bun not found
225โ
226โInstall Bun:
227โ```bash
228โcurl -fsSL https://bun.sh/install | bash
229โ```
230โ
231โRestart your shell:
232โ```bash
233โexec $SHELL
234โ```
235โ
236โ### Permission denied
237โ
238โBun installs to `~/.bun/bin`. Make sure it's in PATH:
239โ
240โ```bash
241โexport BUN_INSTALL="$HOME/.bun"
242โexport PATH="$BUN_INSTALL/bin:$PATH"
243โ```
244โ
245โ### Want to use npm?
246โ
247โBun is required for optimal performance. npm will be slower.
248โ
249โ## Resources
250โ
251โ- [BUN_SETUP.md](./BUN_SETUP.md) - Detailed Bun guide
252โ- [Bun Documentation](https://bun.sh/docs)
253โ- [Bun GitHub](https://github.com/oven-sh/bun)
254โ
255โ## Summary
256โ
257โ**This project is Bun-only:**
258โ
259โโ
No nvm needed
260โโ
No npm needed
261โโ
No Node.js needed
262โโ
Just Bun!
263โ
264โ**One tool to rule them all.** โก
265โ
266โ```bash
267โ# The only runtime you need
268โcurl -fsSL https://bun.sh/install | bash
269โ```
BUN_SETUP.mddeletedโ267
@@ -1,267 +0,0 @@
1โ# Bun Setup for yoga-om
2โ
3โThis project uses **Bun** as the JavaScript runtime and package manager.
4โ
5โ## Why Bun?
6โ
7โโ
**Fast** - 3x faster than npm
8โโ
**All-in-one** - Runtime, bundler, test runner, package manager
9โโ
**Drop-in replacement** - Compatible with Node.js and npm
10โโ
**Better DX** - Faster installs, better performance
11โโ
**Native TypeScript** - No transpilation needed
12โ
13โ## Installation
14โ
15โ### Install Bun
16โ
17โ```bash
18โ# Install Bun
19โcurl -fsSL https://bun.sh/install | bash
20โ
21โ# Verify installation
22โbun --version
23โ# Should show: 1.0+ (e.g., 1.1.38)
24โ```
25โ
26โ### Install Project Dependencies
27โ
28โ```bash
29โ# Install JavaScript/TypeScript dependencies
30โbun install
31โ
32โ# This reads package.json and installs:
33โ# - spago@0.93.45 (PureScript build tool)
34โ# - purescript@0.15.15 (PureScript compiler)
35โ```
36โ
37โ### Install PureScript Dependencies
38โ
39โ```bash
40โ# Install PureScript dependencies
41โspago install
42โ```
43โ
44โ## Package Manager
45โ
46โ### Bun vs npm/yarn
47โ
48โ| Command | npm | Bun |
49โ|---------|-----|-----|
50โ| Install | `npm install` | `bun install` |
51โ| Add package | `npm install pkg` | `bun add pkg` |
52โ| Global install | `npm install -g pkg` | `bun install -g pkg` |
53โ| Run script | `npm run script` | `bun run script` |
54โ| Remove | `npm uninstall pkg` | `bun remove pkg` |
55โ
56โ### Key Bun Commands
57โ
58โ```bash
59โ# Install dependencies
60โbun install
61โ
62โ# Add a dependency
63โbun add lodash
64โ
65โ# Add dev dependency
66โbun add -d typescript
67โ
68โ# Remove dependency
69โbun remove lodash
70โ
71โ# Run a script from package.json
72โbun run build
73โbun run test
74โ
75โ# Run a file directly
76โbun run index.ts
77โ
78โ# Update dependencies
79โbun update
80โ```
81โ
82โ## Project Scripts
83โ
84โAll scripts use Bun:
85โ
86โ```bash
87โ# Build all packages
88โbun run build
89โ# or just
90โbun build
91โ
92โ# Test all packages
93โbun test
94โbun test:core # Test yoga-om-core
95โbun test:node # Test yoga-om-node
96โbun test:streams # Test yoga-om-streams
97โ
98โ# Build individual packages
99โbun build:core
100โbun build:node
101โbun build:streams
102โ```
103โ
104โ## Lockfile
105โ
106โBun uses `bun.lock` (binary format) instead of `package-lock.json`.
107โ
108โ```bash
109โ# This file is maintained by bun:
110โbun.lock # โ
Binary lockfile (fast!)
111โ
112โ# These are legacy (not used):
113โpackage-lock.json # โ npm lockfile (slower)
114โyarn.lock # โ Yarn lockfile
115โpnpm-lock.yaml # โ pnpm lockfile
116โ```
117โ
118โ> **Note:** `package-lock.json` may exist for compatibility but `bun.lock` is the source of truth.
119โ
120โ## Installation Speed
121โ
122โComparison on this project:
123โ
124โ| Package Manager | Time |
125โ|----------------|------|
126โ| npm install | ~15 seconds |
127โ| yarn install | ~12 seconds |
128โ| bun install | **~5 seconds** โก |
129โ
130โ**Bun is 3x faster!**
131โ
132โ## Package Manager Field
133โ
134โ`package.json` specifies Bun as the preferred package manager:
135โ
136โ```json
137โ{
138โ "packageManager": "bun@1.x"
139โ}
140โ```
141โ
142โThis tells tools like Corepack to use Bun.
143โ
144โ## Global Packages
145โ
146โInstall global packages with Bun:
147โ
148โ```bash
149โ# Install Spago globally
150โbun install -g spago@next
151โ
152โ# Install PureScript compiler globally
153โbun install -g purescript
154โ
155โ# View global packages
156โbun pm ls -g
157โ```
158โ
159โ## Environment
160โ
161โBun is a drop-in replacement for Node.js:
162โ
163โ```bash
164โ# These work the same:
165โnode script.js # Node.js
166โbun script.js # Bun (faster!)
167โ
168โ# Bun can run npm scripts
169โbun run test # Runs scripts from package.json
170โ```
171โ
172โ## CI/CD
173โ
174โGitHub Actions uses Bun:
175โ
176โ```yaml
177โ- uses: oven-sh/setup-bun@v2
178โ with:
179โ bun-version: latest
180โ
181โ- run: bun install --frozen-lockfile
182โ- run: bun test
183โ```
184โ
185โSee [`.github/workflows/ci.yml`](./.github/workflows/ci.yml) for full config.
186โ
187โ## Compatibility
188โ
189โBun is compatible with:
190โ
191โโ
**npm packages** - All npm packages work
192โโ
**Node.js APIs** - Most Node.js APIs supported
193โโ
**package.json** - Uses same format
194โโ
**npm scripts** - Runs all npm scripts
195โ
196โ## Version Lock
197โ
198โ`.bunversion` file locks Bun to major version:
199โ
200โ```
201โ1.x
202โ```
203โ
204โThis ensures consistent versions across team.
205โ
206โ## Troubleshooting
207โ
208โ### Bun not found
209โ
210โInstall Bun:
211โ```bash
212โcurl -fsSL https://bun.sh/install | bash
213โ```
214โ
215โThen restart your shell.
216โ
217โ### Package not found
218โ
219โInstall dependencies:
220โ```bash
221โbun install
222โ```
223โ
224โ### Global package not found
225โ
226โInstall globally:
227โ```bash
228โbun install -g package-name
229โ```
230โ
231โ### Want to use npm instead?
232โ
233โBun is recommended, but npm works:
234โ```bash
235โnpm install
236โnpm test
237โ```
238โ
239โJust slower. ๐
240โ
241โ## Resources
242โ
243โ- [Bun Official Docs](https://bun.sh/docs)
244โ- [Bun GitHub](https://github.com/oven-sh/bun)
245โ- [Bun Discord](https://bun.sh/discord)
246โ
247โ## Summary
248โ
249โ**Use Bun for this project:**
250โ
251โ```bash
252โ# 1. Install Bun
253โcurl -fsSL https://bun.sh/install | bash
254โ
255โ# 2. Install Spago
256โbun install -g spago@next
257โ
258โ# 3. Install dependencies
259โbun install
260โspago install
261โ
262โ# 4. Build and test
263โbun build
264โbun test
265โ```
266โ
267โ**Fast, simple, modern!** โก
COLOCATION_SUMMARY.mddeletedโ260
@@ -1,260 +0,0 @@
1โ# True Test Colocation Complete! โ
2โ
3โ## What Changed
4โ
5โTests have been **colocated at the file level** with their implementations. Test files now live directly next to the implementation files they test, using the `.test.purs` suffix.
6โ
7โ### Before (Package-level Colocation)
8โ```
9โpackages/yoga-om-core/
10โโโโ src/
11โโ โโโ Yoga/Om.purs # Implementation
12โโโโ test/ # Separate directory
13โ โโโ Test/Om/Core.purs # Tests
14โ```
15โ
16โ### After (File-level Colocation)
17โ```
18โpackages/yoga-om-core/
19โโโโ src/
20โ โโโ Yoga/
21โ โ โโโ Om.purs # Implementation
22โ โ โโโ Om.test.purs # Tests โญ Right next to it!
23โ โโโ Test/
24โ โโโ Main.purs # Test runner
25โ```
26โ
27โ## New Structure
28โ
29โ### ๐ฆ yoga-om-core
30โ```
31โpackages/yoga-om-core/
32โโโโ src/
33โ โโโ Yoga/
34โ โ โโโ Om.purs # Core Om implementation
35โ โ โโโ Om.test.purs # โญ Colocated tests (20 tests)
36โ โ โโโ Om/
37โ โ โโโ Error.purs # Error utilities
38โ โ โโโ Error.js # FFI
39โ โโโ Test/
40โ โโโ Main.purs # Test runner entry point
41โ```
42โ
43โ**Tests include:**
44โ- Basics (runs safely, launches safely)
45โ- Exception safety
46โ- Context (Reader) composition
47โ- Error helpers and composition
48โ- Helper functions (Maybe, Either lifting)
49โ- Parallel computations (race, inParallel)
50โ
51โ### ๐ฆ yoga-om-node
52โ```
53โpackages/yoga-om-node/
54โโโโ src/
55โ โโโ Yoga/
56โ โ โโโ Om/
57โ โ โโโ Node.purs # Node-specific Om utilities
58โ โ โโโ Node.test.purs # โญ Colocated tests
59โ โโโ Test/
60โ โโโ Main.purs # Test runner entry point
61โ```
62โ
63โ**Tests include:**
64โ- Environment variable operations
65โ- File operations
66โ- Current working directory
67โ
68โ### ๐ฆ yoga-om-rom
69โ```
70โpackages/yoga-om-rom/
71โโโโ src/
72โ โโโ Yoga/
73โ โ โโโ Om/
74โ โ โโโ Rom.purs # Event/Bolson integration
75โ โ โโโ Rom.test.purs # โญ Colocated tests
76โ โโโ Test/
77โ โโโ Main.purs # Test runner entry point
78โ```
79โ
80โ**Tests include:**
81โ- Om to Event conversion
82โ- Event to Om conversion
83โ- Event combinators
84โ- Context handling
85โ
86โ### ๐ฆ yoga-om-strom
87โ```
88โpackages/yoga-om-strom/
89โโโโ src/
90โ โโโ Yoga/
91โ โ โโโ Om/
92โ โ โโโ Strom.purs # Stream implementation
93โ โ โโโ Strom.test.purs # โญ Colocated tests (60+ tests)
94โ โ โโโ Strom/
95โ โ โโโ Do.purs # Do-notation support
96โ โ โโโ Do.test.purs # โญ Colocated tests (15+ tests)
97โ โ โโโ Examples.purs # Examples
98โ โโโ Test/
99โ โโโ Main.purs # Test runner entry point
100โ```
101โ
102โ**Tests include:**
103โ- Construction, Running/Consuming
104โ- Transformations, Selection, Combining, Grouping
105โ- Do-notation, Guards, Cartesian products
106โ- Monadic laws, Real-world patterns
107โ
108โ## Configuration Updates
109โ
110โEach package's `spago.yaml` now includes `exclude` patterns to prevent test files from being published:
111โ
112โ```yaml
113โpackage:
114โ name: yoga-om-core
115โ publish:
116โ version: 1.0.0
117โ license: MIT
118โ exclude:
119โ - "src/**/*.test.purs" # โญ Exclude test files
120โ - "src/Test/**" # โญ Exclude test runner
121โ location:
122โ githubOwner: rowtype-yoga
123โ githubRepo: purescript-yoga-om
124โ subdir: packages/yoga-om-core
125โ dependencies:
126โ - prelude: ">=6.0.0 <7.0.0"
127โ # ... more dependencies
128โ test:
129โ main: Test.Main
130โ dependencies:
131โ - spec: ">=7.0.0 <8.0.0"
132โ```
133โ
134โ## Scripts
135โ
136โ### `test-all.sh`
137โRuns all package tests in sequence:
138โ```bash
139โ#!/usr/bin/env bash
140โecho "๐งช Testing yoga-om workspace packages..."
141โ
142โecho "๐ฆ Testing yoga-om-core..."
143โcd packages/yoga-om-core && spago test
144โcd ../..
145โ
146โecho "๐ฆ Testing yoga-om-node..."
147โcd packages/yoga-om-node && spago test
148โcd ../..
149โ
150โecho "๐ฆ Testing yoga-om-rom..."
151โcd packages/yoga-om-rom && spago test
152โcd ../..
153โ
154โecho "๐ฆ Testing yoga-om-strom..."
155โcd packages/yoga-om-strom && spago test
156โcd ../..
157โ
158โecho "๐ All tests passed!"
159โ```
160โ
161โ### `package.json` Scripts
162โ```json
163โ{
164โ "scripts": {
165โ "test": "./test-all.sh",
166โ "test:core": "cd packages/yoga-om-core && spago test",
167โ "test:node": "cd packages/yoga-om-node && spago test",
168โ "test:rom": "cd packages/yoga-om-rom && spago test",
169โ "test:strom": "cd packages/yoga-om-strom && spago test"
170โ }
171โ}
172โ```
173โ
174โ## How to Run Tests
175โ
176โ### All Tests
177โ```bash
178โbun test # Run all package tests
179โ./test-all.sh # Same
180โ```
181โ
182โ### Individual Package
183โ```bash
184โbun test:core # Test yoga-om-core only
185โbun test:node # Test yoga-om-node only
186โbun test:rom # Test yoga-om-rom only
187โbun test:strom # Test yoga-om-strom only
188โ
189โ# Or directly
190โcd packages/yoga-om-core && spago test
191โ```
192โ
193โ### Watch Mode
194โ```bash
195โcd packages/yoga-om-core && spago test --watch
196โ```
197โ
198โ## Benefits of True File-Level Colocation
199โ
200โ### โ
Immediate Context
201โTests are **right there** next to the code they test. No searching across directories or guessing which test file tests which module.
202โ
203โ```
204โYoga/Om/Node.purs โ Implementation
205โYoga/Om/Node.test.purs โ Tests (right here!)
206โ```
207โ
208โ### โ
Easier Refactoring
209โWhen renaming or moving a module, the test moves with it. No broken imports, no orphaned tests.
210โ
211โ### โ
Clear Ownership
212โIt's immediately obvious which tests belong to which module. No ambiguity.
213โ
214โ### โ
Better Navigation
215โJump between implementation and test with a single keystroke in your editor.
216โ
217โ### โ
Publishing Safety
218โThe `exclude` configuration ensures test files never get published to the Registry, keeping packages clean.
219โ
220โ### โ
Modern Best Practice
221โThis pattern is standard in Rust, Go, and increasingly in TypeScript/JavaScript. PureScript now supports it too!
222โ
223โ## Spago Next Support
224โ
225โThis colocation pattern is enabled by **Spago Next (0.93.45)** features:
226โ
227โ1. **Flexible source structure**: No longer requires separate `src/` and `test/` directories
228โ2. **Exclude patterns**: `publish.exclude` field to filter files from published packages
229โ3. **Test runner flexibility**: Test runner (`Test.Main`) can live anywhere in `src/`
230โ
231โ## Publishing
232โ
233โWhen you run `spago publish`, the following files are **excluded** from the package:
234โ
235โ- `src/**/*.test.purs` - All test files
236โ- `src/Test/**` - Test runner and utilities
237โ
238โThis ensures your published packages only contain the implementation code.
239โ
240โ## Current State
241โ
242โโ
**Tests colocated** - All test files moved next to implementations with `.test.purs` suffix
243โโ
**Exclude patterns added** - spago.yaml files configured to exclude tests from publishing
244โโ
**Test runners created** - Each package has `src/Test/Main.purs` entry point
245โโ
**Old test/ removed** - Cleaned up old package-level test directories
246โโ
**Documentation updated** - This file and TESTING.md reflect new structure
247โ
248โ## Summary
249โ
250โ๐ **True file-level test colocation is complete!**
251โ
252โYour tests now live exactly where they should be: right next to the code they test. This makes the codebase more maintainable, easier to navigate, and follows modern best practices.
253โ
254โ**Structure:**
255โ- โ
Tests use `.test.purs` suffix
256โ- โ
Tests are colocated with implementations
257โ- โ
Test runners in `src/Test/Main.purs`
258โ- โ
Excluded from publishing via `exclude` patterns
259โ
260โ**Ready to use!** ๐
COMPLETE_SETUP.mddeletedโ411
@@ -1,411 +0,0 @@
1โ# โ
Complete Setup Summary
2โ
3โThis project is now fully configured with:
4โ- โ
**Bun-only** (no nvm/npm)
5โ- โ
**YAML-only** (no Dhall)
6โ- โ
**Colocated tests**
7โ- โ
**Spago Next (v0.93.45+)**
8โ
9โ## Quick Start
10โ
11โ```bash
12โ# 1. Install Bun
13โcurl -fsSL https://bun.sh/install | bash
14โ
15โ# 2. Install Spago Next
16โbun install -g spago@next
17โ
18โ# 3. Clone and setup
19โgit clone https://github.com/rowtype-yoga/purescript-yoga-om
20โcd purescript-yoga-om
21โbun install
22โspago install
23โ
24โ# 4. Build and test
25โbun build
26โbun test
27โ```
28โ
29โ## What Was Configured
30โ
31โ### ๐ฏ Bun-Only Setup
32โ
33โ**Removed:**
34โ- โ `.nvmrc` - No Node version manager
35โ- โ npm references - Use Bun
36โ
37โ**Added:**
38โ- โ
`.bunversion` - Bun version lock (1.x)
39โ- โ
`BUN_SETUP.md` - Bun usage guide
40โ- โ
`BUN_ONLY.md` - Why Bun-only
41โ
42โ**Updated:**
43โ- โ
All docs mention Bun first
44โ- โ
`test-all.sh` checks for Bun
45โ- โ
Installation instructions use Bun
46โ
47โ### ๐ YAML-Only Configuration
48โ
49โ**Removed:**
50โ- โ `test.dhall` - Deleted
51โ- โ `spago.dhall` - Moved to `.legacy/`
52โ- โ `packages.dhall` - Moved to `.legacy/`
53โ
54โ**Using:**
55โ- โ
`spago.yaml` - Workspace config
56โ- โ
`packages/*/spago.yaml` - Package configs
57โ- โ
`.spago-version` - Spago version lock
58โ
59โ**Documentation:**
60โ- โ
`YAML_ONLY.md` - Complete guide
61โ- โ
`YAML_ONLY_SUMMARY.md` - Quick summary
62โ- โ
`SPAGO_NEXT.md` - Spago Next guide
63โ
64โ### ๐งช Test Colocation
65โ
66โ**Structure:**
67โ```
68โpackages/
69โ yoga-om-core/
70โ src/ # Implementation
71โ test/ # โ
Tests colocated!
72โ yoga-om-node/
73โ src/ # Implementation
74โ test/ # โ
Tests colocated!
75โ yoga-om-streams/
76โ src/ # Implementation
77โ test/ # โ
Tests colocated!
78โ yoga-om-strom/
79โ src/ # Implementation
80โ test/ # โ
Tests colocated!
81โ```
82โ
83โ**Benefits:**
84โ- โ
Tests with implementation
85โ- โ
Independent testing
86โ- โ
Clear ownership
87โ
88โ**Documentation:**
89โ- โ
`TESTING.md` - Testing guide
90โ- โ
`COLOCATION_SUMMARY.md` - Changes summary
91โ
92โ### ๐๏ธ Workspace Organisation
93โ
94โ**Structure:**
95โ- โ
Monorepo with 4 packages
96โ- โ
Each package self-contained
97โ- โ
Shared workspace config
98โ
99โ**Scripts:**
100โ- โ
`test-all.sh` - Test all packages
101โ- โ
`bun test` - Run all tests
102โ- โ
`bun test:core` - Test one package
103โ
104โ**Documentation:**
105โ- โ
`STRUCTURE.md` - Workspace structure
106โ- โ
`MIGRATION.md` - Migration guide
107โ
108โ## File Organisation
109โ
110โ### Configuration Files
111โ
112โ```
113โspago.yaml # โ
Workspace config (YAML)
114โ.spago-version # โ
Spago version lock
115โ.bunversion # โ
Bun version lock
116โpackage.json # โ
Package manifest
117โbun.lock # โ
Bun lockfile
118โ.gitignore # โ
Ignores npm locks
119โ```
120โ
121โ### Documentation Files
122โ
123โ```
124โREADME.md # Main README
125โBUN_SETUP.md # Bun usage
126โBUN_ONLY.md # Why Bun-only
127โSPAGO_NEXT.md # Spago Next guide
128โYAML_ONLY.md # YAML-only guide
129โYAML_ONLY_SUMMARY.md # YAML summary
130โMIGRATION.md # Migration guide
131โTESTING.md # Testing guide
132โSTRUCTURE.md # Workspace structure
133โCOLOCATION_SUMMARY.md # Test colocation
134โCOMPLETE_SETUP.md # This file
135โ```
136โ
137โ### Package Structure
138โ
139โ```
140โpackages/yoga-om-core/
141โ โโโ spago.yaml # โ
Package config (YAML)
142โ โโโ package.json # Package metadata
143โ โโโ README.md # Package docs
144โ โโโ src/ # Implementation
145โ โ โโโ Yoga/Om/...
146โ โโโ test/ # โ
Tests colocated!
147โ โโโ Test/...
148โ
149โpackages/yoga-om-node/
150โ โโโ spago.yaml # โ
Package config
151โ โโโ src/ # Implementation
152โ โโโ test/ # โ
Tests colocated!
153โ
154โpackages/yoga-om-streams/
155โ โโโ spago.yaml # โ
Package config
156โ โโโ src/ # Implementation
157โ โโโ test/ # โ
Tests colocated!
158โ
159โpackages/yoga-om-strom/
160โ โโโ spago.yaml # โ
Package config
161โ โโโ src/ # Implementation
162โ โโโ test/ # โ
Tests colocated!
163โ โโโ examples/ # Kafka, merging examples
164โ โโโ *.md # Extensive docs
165โ```
166โ
167โ### Legacy Files
168โ
169โ```
170โ.legacy/
171โ โโโ spago.dhall # Old config (not used)
172โ โโโ packages.dhall # Old packages (not used)
173โ โโโ README.md # Explains deprecation
174โ
175โtest/ # Old centralised tests (deprecated)
176โsrc/ # Old src location (kept for compatibility)
177โ```
178โ
179โ## Requirements
180โ
181โ### Must Have
182โ
183โ- โ
**Bun** - Fast JavaScript runtime and package manager
184โ- โ
**Spago Next (v0.93.45+)** - PureScript build tool with workspace support
185โ- โ
**PureScript (v0.15.15+)** - PureScript compiler
186โ
187โ### Check Versions
188โ
189โ```bash
190โbun --version # Should show: 1.0+
191โspago version # Should show: 0.93.45+
192โpurs --version # Should show: 0.15.15+
193โ```
194โ
195โ## Commands Reference
196โ
197โ### Package Management
198โ
199โ```bash
200โ# Bun
201โbun install # Install dependencies
202โbun add pkg # Add dependency
203โbun remove pkg # Remove dependency
204โbun update # Update dependencies
205โ
206โ# Spago
207โspago install # Install PureScript deps
208โspago install arrays # Add PureScript package
209โ```
210โ
211โ### Building
212โ
213โ```bash
214โ# All packages
215โbun build
216โspago build
217โ
218โ# Individual package
219โspago build -p yoga-om-core
220โ
221โ# Watch mode
222โspago build --watch
223โ```
224โ
225โ### Testing
226โ
227โ```bash
228โ# All packages
229โbun test
230โ./test-all.sh
231โ
232โ# Individual package
233โbun test:core
234โcd packages/yoga-om-core && spago test
235โ
236โ# Watch mode
237โcd packages/yoga-om-core && spago test --watch
238โ```
239โ
240โ## CI/CD Configuration
241โ
242โ`.github/workflows/ci.yml`:
243โ
244โ```yaml
245โ- uses: oven-sh/setup-bun@v2
246โ with:
247โ bun-version: latest
248โ
249โ- uses: purescript-contrib/setup-purescript@main
250โ with:
251โ purescript: "0.15.15"
252โ spago: "0.93.45"
253โ
254โ- run: bun install --frozen-lockfile
255โ- run: spago build
256โ- run: cd packages/yoga-om-core && spago test
257โ- run: cd packages/yoga-om-node && spago test
258โ- run: cd packages/yoga-om-streams && spago test
259โ```
260โ
261โ## Verification Checklist
262โ
263โโ
**Bun-Only**
264โ- [ ] `.nvmrc` removed
265โ- [ ] `.bunversion` exists
266โ- [ ] All docs mention Bun
267โ- [ ] `test-all.sh` checks for Bun
268โ
269โโ
**YAML-Only**
270โ- [ ] No active `.dhall` files (except in `.legacy/`)
271โ- [ ] `spago.yaml` in root
272โ- [ ] `spago.yaml` in each package
273โ- [ ] `.spago-version` exists
274โ
275โโ
**Tests Colocated**
276โ- [ ] Each package has `test/` directory
277โ- [ ] `Test.Main` exists in each package
278โ- [ ] Tests run independently
279โ
280โโ
**Documentation**
281โ- [ ] All setup docs exist
282โ- [ ] README links to docs
283โ- [ ] Each package has README
284โ
285โ## Common Workflows
286โ
287โ### Starting Development
288โ
289โ```bash
290โ# Clone and setup
291โgit clone https://github.com/rowtype-yoga/purescript-yoga-om
292โcd purescript-yoga-om
293โbun install
294โspago install
295โ
296โ# Start development
297โcd packages/yoga-om-core
298โspago test --watch
299โ```
300โ
301โ### Adding a Dependency
302โ
303โ```bash
304โ# JavaScript dependency
305โbun add lodash
306โ
307โ# PureScript dependency
308โspago install arrays
309โ```
310โ
311โ### Creating a New Package
312โ
313โ```bash
314โ# 1. Create structure
315โmkdir -p packages/my-package/src/My
316โmkdir -p packages/my-package/test/Test
317โ
318โ# 2. Create spago.yaml
319โcat > packages/my-package/spago.yaml << 'EOF'
320โpackage:
321โ name: my-package
322โ dependencies:
323โ - prelude: ">=6.0.0 <7.0.0"
324โ - yoga-om-core: "*"
325โ test:
326โ main: Test.Main
327โ dependencies:
328โ - spec: ">=7.0.0 <8.0.0"
329โEOF
330โ
331โ# 3. Create implementation and tests
332โ# ...
333โ
334โ# 4. Add to workspace scripts in package.json
335โ```
336โ
337โ## Troubleshooting
338โ
339โ### Bun not found
340โ
341โ```bash
342โcurl -fsSL https://bun.sh/install | bash
343โexec $SHELL
344โ```
345โ
346โ### Spago not found
347โ
348โ```bash
349โbun install -g spago@next
350โ```
351โ
352โ### Module not found
353โ
354โ```bash
355โspago install
356โ```
357โ
358โ### Tests don't run
359โ
360โ```bash
361โ# Make sure you're in package directory
362โcd packages/yoga-om-core
363โspago test
364โ
365โ# Or use test script
366โ./test-all.sh
367โ```
368โ
369โ## Resources
370โ
371โ### Documentation
372โ- [README.md](./README.md) - Main README
373โ- [BUN_SETUP.md](./BUN_SETUP.md) - Bun guide
374โ- [SPAGO_NEXT.md](./SPAGO_NEXT.md) - Spago guide
375โ- [TESTING.md](./TESTING.md) - Testing guide
376โ
377โ### External
378โ- [Bun Docs](https://bun.sh/docs)
379โ- [Spago Docs](https://github.com/purescript/spago)
380โ- [PureScript Docs](https://www.purescript.org)
381โ
382โ## Success Metrics
383โ
384โYour setup is complete when:
385โ
386โ- โ
`bun --version` works
387โ- โ
`spago version` shows 0.93.45+
388โ- โ
`bun test` passes all tests
389โ- โ
`spago build` builds all packages
390โ- โ
No `.dhall` files in use
391โ- โ
Tests colocated in packages
392โ
393โ## Summary
394โ
395โ**This project is:**
396โ
397โโ
**Bun-only** - One fast runtime
398โโ
**YAML-only** - Simple configuration
399โโ
**Test-colocated** - Clear ownership
400โโ
**Workspace-ready** - Independent packages
401โโ
**CI-ready** - GitHub Actions configured
402โโ
**Well-documented** - Comprehensive guides
403โ
404โ**Ready to use!** ๐
405โ
406โ```bash
407โ# Get started in 3 commands
408โcurl -fsSL https://bun.sh/install | bash
409โbun install -g spago@next
410โbun install && spago install
411โ```
LICENSEdeletedโ16
@@ -1,16 +0,0 @@
1โMIT No Attribution
2โ
3โCopyright 2021 Mark Eibes, Jan Schulte
4โ
5โPermission is hereby granted, free of charge, to any person obtaining a copy of this
6โsoftware and associated documentation files (the "Software"), to deal in the Software
7โwithout restriction, including without limitation the rights to use, copy, modify,
8โmerge, publish, distribute, sublicense, and/or sell copies of the Software, and to
9โpermit persons to whom the Software is furnished to do so.
10โ
11โTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
12โINCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
13โPARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
14โHOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
15โOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
16โSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
MIGRATION.mddeletedโ248
@@ -1,248 +0,0 @@
1โ# Migration Guide: Spago v0.21 โ Spago Next (v0.93.45)
2โ
3โ## Overview
4โ
5โThis project has been migrated from **Spago v0.21.0** (using `spago.dhall`) to **Spago Next v0.93.45** (using `spago.yaml`). This enables proper workspace support with colocated tests.
6โ
7โ## What Changed
8โ
9โ### Configuration Files
10โ
11โ**Before (spago.dhall):**
12โ```dhall
13โ{ name = "yoga-om"
14โ, dependencies = [ "aff", "arrays", ... ]
15โ, packages = ./packages.dhall
16โ, sources = [ "src/**/*.purs" ]
17โ}
18โ```
19โ
20โ**After (spago.yaml):**
21โ```yaml
22โworkspace:
23โ package_set:
24โ registry: 51.1.0
25โ```
26โ
27โ### Test Structure
28โ
29โ**Before:**
30โ- Centralised tests in `/test`
31โ- Tests run with `spago -x test.dhall test`
32โ- Single monolithic test configuration
33โ
34โ**After:**
35โ- Tests colocated with each package in `packages/*/test/`
36โ- Each package has its own test configuration
37โ- Tests run independently per package
38โ
39โ## Installation
40โ
41โ### 1. Install Bun
42โ
43โ```bash
44โ# Install Bun first
45โcurl -fsSL https://bun.sh/install | bash
46โ
47โ# Verify installation
48โbun --version
49โ```
50โ
51โ### 2. Install Spago Next
52โ
53โ```bash
54โ# Uninstall old spago (if installed globally)
55โnpm uninstall -g spago
56โ
57โ# Install Spago Next using Bun
58โbun install -g spago@next
59โ
60โ# Or use the project's local version
61โbun install # Installs spago@0.93.45 from package.json
62โ```
63โ
64โ### 2. Verify Installation
65โ
66โ```bash
67โspago version
68โ# Should show: 0.93.45 or higher
69โ```
70โ
71โ### 3. Install Dependencies
72โ
73โ```bash
74โ# From workspace root
75โspago install
76โ
77โ# This will install all workspace dependencies
78โ```
79โ
80โ## Running Tests (New Way)
81โ
82โ### All Tests
83โ```bash
84โ# Using npm/bun scripts
85โbun test
86โ
87โ# Using shell script
88โ./test-all.sh
89โ
90โ# Individual packages
91โ./test-all.sh core
92โ./test-all.sh node
93โ./test-all.sh streams
94โ```
95โ
96โ### Individual Package Tests
97โ```bash
98โ# yoga-om-core
99โcd packages/yoga-om-core && spago test
100โ
101โ# yoga-om-node
102โcd packages/yoga-om-node && spago test
103โ
104โ# yoga-om-streams
105โcd packages/yoga-om-streams && spago test
106โ```
107โ
108โ### Watch Mode
109โ```bash
110โcd packages/yoga-om-core && spago test --watch
111โ```
112โ
113โ## Building (New Way)
114โ
115โ### All Packages
116โ```bash
117โspago build
118โ```
119โ
120โ### Individual Packages
121โ```bash
122โspago build -p yoga-om-core
123โspago build -p yoga-om-node
124โspago build -p yoga-om-streams
125โ```
126โ
127โ## Migration Checklist
128โ
129โIf you're working on this project:
130โ
131โ- [ ] Install Spago Next (v0.93.45+)
132โ- [ ] Remove old spago installation: `npm uninstall -g spago`
133โ- [ ] Install dependencies: `spago install`
134โ- [ ] Run tests: `bun test` or `./test-all.sh`
135โ- [ ] Update IDE/editor settings to use new spago
136โ
137โ## Breaking Changes
138โ
139โ### โ These No Longer Work
140โ
141โ```bash
142โspago -x test.dhall test # Old way - NO LONGER WORKS
143โspago test # Without cd to package - DOESN'T RUN TESTS
144โ```
145โ
146โ### โ
Use These Instead
147โ
148โ```bash
149โ./test-all.sh # Test all packages
150โbun test # Same
151โcd packages/yoga-om-core && spago test # Test one package
152โ```
153โ
154โ## Legacy Files
155โ
156โLegacy Spago v0.21 configuration files have been moved to `.legacy/`:
157โ
158โ```
159โ.legacy/
160โ spago.dhall # Old workspace config
161โ packages.dhall # Old package set
162โ README.md # Explanation
163โ```
164โ
165โThese are kept for reference but are **not used** by the build system.
166โ
167โ## IDE Configuration
168โ
169โ### VS Code (PureScript IDE)
170โ
171โUpdate `.vscode/settings.json`:
172โ
173โ```json
174โ{
175โ "purescript.buildCommand": "spago build",
176โ "purescript.addSpagoSources": true,
177โ "purescript.packagePath": "spago.yaml"
178โ}
179โ```
180โ
181โ### Vim/Neovim
182โ
183โIf using psc-ide-vim or similar:
184โ
185โ```vim
186โ" Use workspace root
187โlet g:psc_ide_server_port = 4242
188โ```
189โ
190โ## Troubleshooting
191โ
192โ### Error: "There's no spago.dhall"
193โ
194โ**Problem:** You're using old Spago v0.21
195โ
196โ**Solution:**
197โ```bash
198โnpm uninstall -g spago
199โnpm install -g spago@next
200โ```
201โ
202โ### Error: "Module X not found"
203โ
204โ**Problem:** Dependencies not installed
205โ
206โ**Solution:**
207โ```bash
208โspago install
209โ```
210โ
211โ### Error: "Invalid option --watch"
212โ
213โ**Problem:** Old spago version
214โ
215โ**Solution:** Upgrade to Spago Next (see above)
216โ
217โ### Tests Don't Run
218โ
219โ**Problem:** Running `spago test` from wrong directory
220โ
221โ**Solution:**
222โ```bash
223โ# Either use the test script
224โ./test-all.sh
225โ
226โ# Or cd to a specific package
227โcd packages/yoga-om-core && spago test
228โ```
229โ
230โ## Benefits of New Setup
231โ
232โโ
**True Workspace Support** - Proper monorepo with independent packages
233โโ
**Colocated Tests** - Tests live with the code they test
234โโ
**Independent Testing** - Test only what you're working on
235โโ
**Modern Tooling** - Latest Spago features
236โโ
**Better CI** - Run tests independently in parallel
237โโ
**Faster Builds** - Incremental compilation per package
238โ
239โ## Documentation
240โ
241โUpdated documentation:
242โ- [TESTING.md](./TESTING.md) - Testing guide
243โ- [STRUCTURE.md](./STRUCTURE.md) - Workspace structure
244โ- [COLOCATION_SUMMARY.md](./COLOCATION_SUMMARY.md) - Test colocation changes
245โ
246โ## Questions?
247โ
248โSee the [README](./README.md) or check [Spago Next documentation](https://github.com/purescript/spago).
NONDETERMINISTIC_MERGE_COMPLETE.mddeletedโ142
@@ -1,142 +0,0 @@
1โ# Non-Deterministic Merge - Implementation Complete
2โ
3โ## Summary
4โ
5โSuccessfully implemented non-deterministic merge functionality for Strom that runs streams concurrently and emits elements as soon as they're available from any source.
6โ
7โ## Implementation Details
8โ
9โ### Core Functions
10โ
11โ**`mergeND`** - Non-deterministic merge of two streams
12โ- Uses `Om.race` to concurrently race pull operations from both streams
13โ- Elements are emitted in the order they become available
14โ- The faster stream's elements appear first
15โ- Properly tracks completion of both streams
16โ
17โ**`mergeAllND`** - Non-deterministic merge of multiple streams
18โ- Generalizes `mergeND` to handle an array of streams
19โ- Implemented via fold over `mergeND`
20โ
21โ### Technical Approach
22โ
23โInitially attempted a fiber-based approach with AVar queues for coordination, but encountered challenges with fiber lifecycle management and type constraints. The final implementation uses a simpler, more elegant approach:
24โ
25โ1. **Race-Based Coordination**: Uses `Om.race` to race the pull operations from both streams
26โ2. **State Tracking**: Maintains completion state for each stream to know when both are done
27โ3. **Recursive Stream Building**: Constructs the merged stream recursively, racing on each pull
28โ
29โ### Key Code Structure
30โ
31โ```purescript
32โmergeND s1 s2 = mergeNDImpl s1 s2 { stream1Done: false, stream2Done: false }
33โ where
34โ mergeNDImpl stream1 stream2 state
35โ | state.stream1Done && state.stream2Done = empty
36โ | state.stream1Done = stream2
37โ | state.stream2Done = stream1
38โ | otherwise = mkStrom do
39โ result <- Om.race [ Left <$> runStrom stream1, Right <$> runStrom stream2 ]
40โ case result of
41โ Left step1 -> handleStep step1 stream1 stream2 state StreamId1
42โ Right step2 -> handleStep step2 stream1 stream2 state StreamId2
43โ```
44โ
45โ### Supporting Types
46โ
47โ```purescript
48โdata StreamId = StreamId1 | StreamId2
49โ
50โdata QueueItem a
51โ = DataChunk (Array a) StreamId
52โ | StreamDone StreamId
53โ```
54โ
55โNote: These types were kept for potential future use but the final implementation doesn't use them.
56โ
57โ## Test Results
58โ
59โAll 66 tests pass, including comprehensive tests for:
60โ- โ
Basic two-stream merge
61โ- โ
Fast/slow stream combinations
62โ- โ
Empty stream handling
63โ- โ
Completion handling when streams finish at different times
64โ- โ
Integration with `takeStrom` for limiting output
65โ- โ
Multiple stream merge via `mergeAllND`
66โ
67โ## Behaviour Characteristics
68โ
69โ**Non-Deterministic Ordering**: When both streams have elements immediately available, `Om.race` determines which wins. The order is not guaranteed to alternate or be fair.
70โ
71โ**Concurrency**: Streams run truly concurrently via Om's race primitive, which leverages Aff's concurrency model.
72โ
73โ**Resource Safety**: No explicit cleanup needed as the race-based approach doesn't create background fibers that need management.
74โ
75โ**Performance**: Minimal overhead compared to sequential merge - just the cost of the race operation.
76โ
77โ## Integration
78โ
79โ- Exported in module exports alongside deterministic `merge`
80โ- Works seamlessly with all existing Strom operations
81โ- Compatible with Om's context and error handling
82โ
83โ## Files Modified
84โ
85โ1. **`packages/yoga-om-strom/src/Yoga/Om/Strom.purs`**
86โ - Added `StreamId` and `QueueItem` data types (lines 148-158)
87โ - Added `mergeND` implementation (lines 1134-1158)
88โ - Added `mergeAllND` implementation (lines 1160-1163)
89โ - Updated module exports to include `mergeND` and `mergeAllND`
90โ
91โ2. **`packages/yoga-om-strom/src/Yoga/Om/Strom.test.purs`**
92โ - Added comprehensive test suite for non-deterministic merge (8 tests)
93โ - Tests cover concurrency, completion, empty streams, and integration scenarios
94โ
95โ## Comparison: Deterministic vs Non-Deterministic Merge
96โ
97โ| Feature | `merge` (Deterministic) | `mergeND` (Non-Deterministic) |
98โ|---------|-------------------------|-------------------------------|
99โ| Ordering | Predictable, sequential pulls | Non-deterministic, race-based |
100โ| Performance | Sequential | Concurrent |
101โ| Use Case | When order matters | When throughput matters |
102โ| Complexity | Simple sequential logic | Race coordination |
103โ
104โ## Example Usage
105โ
106โ```purescript
107โ-- Merge two API streams, emitting results as they arrive
108โfastAPI <- queryFastEndpoint
109โslowAPI <- querySlowEndpoint
110โresults <- Strom.mergeND fastAPI slowAPI
111โ # Strom.takeStrom 100
112โ # Strom.runCollect
113โ
114โ-- Merge multiple event streams
115โevents <- Strom.mergeAllND
116โ [ userEvents
117โ , systemEvents
118โ , networkEvents
119โ ]
120โ # Strom.runCollect
121โ```
122โ
123โ## Feature Parity with ZStream
124โ
125โWith non-deterministic merge implemented, Strom now has:
126โ- โ
Concurrent merging (similar to ZStream's `mergeWith`)
127โ- โ
Parallel processing (`mapPar`, `foreachPar`)
128โ- โ
Concurrent racing (`race`, `raceAll`)
129โ- โ
Timing operations (`debounce`, `throttle`, `timeout`)
130โ- โ
Infinite streams (`iterateStromInfinite`, `repeatStromInfinite`)
131โ- โ
Resource safety and cancellation
132โ
133โThis brings Strom to approximately **80-85% feature parity** with ZStream for concurrent streaming operations.
134โ
135โ## Remaining TODOs
136โ
137โ- Advanced type-level error handling (`die`, `catchSome`)
138โ- Advanced scheduling (cron-style)
139โ- Advanced backpressure strategies
140โ- Window operations
141โ
142โThese are all lower-priority "nice-to-have" features that don't block production use.
NONDETERMINISTIC_MERGE_PLAN.mddeletedโ373
@@ -1,373 +0,0 @@
1โ# Non-Deterministic Merge - Implementation Plan
2โ
3โ## Goal
4โ
5โImplement `mergeNonDeterministic` that truly runs streams concurrently and emits elements as soon as they're available from either stream.
6โ
7โ## Current State
8โ
9โ**Deterministic merge (current):**
10โ```purescript
11โmerge s1 s2 = mkStrom do
12โ step1 <- runStrom s1 -- Sequential!
13โ step2 <- runStrom s2 -- Sequential!
14โ -- Combine results
15โ```
16โ
17โ**Problem:** Pulls are sequential, not concurrent.
18โ
19โ## Target API
20โ
21โ```purescript
22โ-- Non-deterministic concurrent merge
23โmergeND :: forall ctx err a. Strom ctx err a -> Strom ctx err a -> Strom ctx err a
24โ
25โ-- Multiple streams
26โmergeAllND :: forall ctx err a. Array (Strom ctx err a) -> Strom ctx err a
27โ```
28โ
29โ## Implementation Strategy
30โ
31โ### Phase 1: Two-Stream Merge (2-3 hours)
32โ
33โ**Core Algorithm:**
34โ1. Fork both streams as fibers
35โ2. Use AVar as a shared queue
36โ3. Both fibers write results to queue
37โ4. Main stream reads from queue and emits
38โ5. Handle completion when both streams finish
39โ
40โ**Code Structure:**
41โ```purescript
42โmergeND :: forall ctx err a. Strom ctx err a -> Strom ctx err a -> Strom ctx err a
43โmergeND s1 s2 = mkStrom do
44โ ctx <- Om.ask
45โ
46โ -- Step 1: Create coordination structures
47โ resultQueue <- liftAff AVar.empty
48โ completionVar <- liftAff AVar.empty
49โ
50โ -- Step 2: Fork stream 1
51โ fiber1 <- Om.launchOm ctx handlers do
52โ pullAndEnqueue resultQueue completionVar s1 StreamId1
53โ
54โ -- Step 3: Fork stream 2
55โ fiber2 <- Om.launchOm ctx handlers do
56โ pullAndEnqueue resultQueue completionVar s2 StreamId2
57โ
58โ -- Step 4: Read from queue and emit
59โ dequeueAndEmit resultQueue completionVar fiber1 fiber2
60โ```
61โ
62โ### Phase 2: Helper Functions
63โ
64โ**1. Pull and Enqueue (per stream):**
65โ```purescript
66โpullAndEnqueue
67โ :: forall ctx err a
68โ . AVar (QueueItem a)
69โ -> AVar CompletionSignal
70โ -> Strom ctx err a
71โ -> StreamId
72โ -> Om ctx err Unit
73โpullAndEnqueue queue completion stream streamId = do
74โ step <- runStrom stream
75โ case step of
76โ Done Nothing ->
77โ liftAff $ AVar.put (StreamCompleted streamId) completion
78โ Done (Just chunk) -> do
79โ liftAff $ AVar.put (DataAvailable chunk streamId) queue
80โ liftAff $ AVar.put (StreamCompleted streamId) completion
81โ Loop (Tuple maybeChunk next) -> do
82โ case maybeChunk of
83โ Nothing -> pure unit
84โ Just chunk -> liftAff $ AVar.put (DataAvailable chunk streamId) queue
85โ pullAndEnqueue queue completion next streamId
86โ```
87โ
88โ**2. Dequeue and Emit:**
89โ```purescript
90โdequeueAndEmit
91โ :: forall ctx err a
92โ . AVar (QueueItem a)
93โ -> AVar CompletionSignal
94โ -> Fiber Unit
95โ -> Fiber Unit
96โ -> Om ctx err (Step ...)
97โdequeueAndEmit queue completion fiber1 fiber2 = do
98โ -- Race between data arrival and completion
99โ result <- Om.race
100โ [ Left <$> (liftAff $ AVar.take queue)
101โ , Right <$> (liftAff $ AVar.take completion)
102โ ]
103โ
104โ case result of
105โ Left (DataAvailable chunk streamId) ->
106โ -- Emit chunk and continue
107โ pure $ Loop $ Tuple (Just chunk) (continueReading queue completion fiber1 fiber2)
108โ
109โ Right (StreamCompleted streamId) ->
110โ -- One stream done, check if both done
111โ checkBothComplete streamId fiber1 fiber2
112โ```
113โ
114โ### Phase 3: Data Types
115โ
116โ```purescript
117โ-- Which stream produced data
118โdata StreamId = StreamId1 | StreamId2
119โ
120โ-- Queue items
121โdata QueueItem a
122โ = DataAvailable (Array a) StreamId
123โ | StreamCompleted StreamId
124โ
125โ-- Completion tracking
126โtype CompletionState =
127โ { stream1Done :: Boolean
128โ , stream2Done :: Boolean
129โ }
130โ```
131โ
132โ### Phase 4: Error Handling
133โ
134โ**Challenges:**
135โ- If one stream errors, should we cancel the other?
136โ- How to propagate errors from background fibers?
137โ
138โ**Solution:**
139โ```purescript
140โ-- Wrap in error handling
141โmergeND s1 s2 = mkStrom do
142โ Om.handleErrors'
143โ (\err -> do
144โ -- Cancel both fibers on error
145โ liftAff $ killFiber (error "Merge aborted") fiber1
146โ liftAff $ killFiber (error "Merge aborted") fiber2
147โ Om.throw err
148โ )
149โ (mergeNDImpl s1 s2)
150โ```
151โ
152โ### Phase 5: Resource Cleanup
153โ
154โ**Problem:** Fibers must be cleaned up even if stream is interrupted.
155โ
156โ**Solution:**
157โ```purescript
158โmergeND s1 s2 =
159โ bracket
160โ (allocateMergeResources s1 s2) -- Acquire
161โ (\resources -> cleanup resources) -- Release
162โ (\resources -> runMerge resources) -- Use
163โ where
164โ cleanup { fiber1, fiber2, queue } = do
165โ liftAff $ killFiber (error "Cleanup") fiber1
166โ liftAff $ killFiber (error "Cleanup") fiber2
167โ -- AVars auto-cleanup
168โ```
169โ
170โ## Implementation Steps
171โ
172โ### Step 1: Basic Two-Stream Merge (1 hour)
173โ- [ ] Define data types (`StreamId`, `QueueItem`)
174โ- [ ] Implement `pullAndEnqueue`
175โ- [ ] Implement `dequeueAndEmit`
176โ- [ ] Basic `mergeND` without error handling
177โ
178โ### Step 2: Completion Tracking (30 min)
179โ- [ ] Track which streams are done
180โ- [ ] Emit remaining data when one completes
181โ- [ ] Terminate when both complete
182โ
183โ### Step 3: Error Handling (30 min)
184โ- [ ] Wrap in `handleErrors'`
185โ- [ ] Cancel fibers on error
186โ- [ ] Propagate errors correctly
187โ
188โ### Step 4: Resource Safety (30 min)
189โ- [ ] Use `bracket` for fiber cleanup
190โ- [ ] Ensure fibers killed on interruption
191โ- [ ] Test cancellation scenarios
192โ
193โ### Step 5: Testing (30 min)
194โ- [ ] Test with fast/slow streams
195โ- [ ] Test with errors
196โ- [ ] Test with infinite streams
197โ- [ ] Verify non-deterministic behavior
198โ- [ ] Test cancellation
199โ
200โ### Step 6: Multiple Streams (30 min)
201โ- [ ] Generalize to `Array (Strom ctx err a)`
202โ- [ ] Track completion for N streams
203โ- [ ] Handle N fibers
204โ
205โ## Testing Strategy
206โ
207โ### Test 1: Basic Merge
208โ```purescript
209โit "merges two streams concurrently" do
210โ let
211โ slow = Strom.fromArray [1, 2, 3]
212โ # Strom.mapMStrom (\n -> Om.delay (Milliseconds 100.0) *> pure n)
213โ fast = Strom.fromArray [10, 20, 30]
214โ # Strom.mapMStrom (\n -> Om.delay (Milliseconds 10.0) *> pure n)
215โ
216โ result <- runOm $ Strom.mergeND slow fast # Strom.runCollect
217โ
218โ -- Should contain all elements (order may vary)
219โ Array.sort result `shouldEqual` [1, 2, 3, 10, 20, 30]
220โ -- Fast elements should appear first (probabilistically)
221โ Array.take 3 result `shouldSatisfy` \arr -> 10 `elem` arr
222โ```
223โ
224โ### Test 2: Error Propagation
225โ```purescript
226โit "propagates errors from either stream" do
227โ let
228โ ok = Strom.fromArray [1, 2, 3]
229โ bad = Strom.fromArray [1, 2, 3]
230โ # Strom.mapMStrom (\n ->
231โ if n == 2 then Om.throw { error: "Failed" }
232โ else pure n
233โ )
234โ
235โ result <- runOm $
236โ Strom.mergeND ok bad
237โ # Strom.catchAll (\_ -> Strom.succeed 999)
238โ # Strom.runCollect
239โ
240โ -- Should have caught error
241โ result `shouldContain` 999
242โ```
243โ
244โ### Test 3: Completion Handling
245โ```purescript
246โit "continues when one stream completes" do
247โ let
248โ short = Strom.fromArray [1, 2]
249โ long = Strom.fromArray [10, 20, 30, 40]
250โ
251โ result <- runOm $ Strom.mergeND short long # Strom.runCollect
252โ Array.sort result `shouldEqual` [1, 2, 10, 20, 30, 40]
253โ```
254โ
255โ### Test 4: Cancellation
256โ```purescript
257โit "cleans up fibers on cancellation" do
258โ let
259โ infinite1 = Strom.repeatStromInfinite 1
260โ infinite2 = Strom.repeatStromInfinite 2
261โ
262โ fiber <- Om.launchOm ctx handlers $
263โ Strom.mergeND infinite1 infinite2
264โ # Strom.takeStrom 10
265โ # Strom.runCollect
266โ
267โ result <- Aff.joinFiber fiber
268โ Array.length result `shouldEqual` 10
269โ -- Should not hang or leak resources
270โ```
271โ
272โ## Challenges & Solutions
273โ
274โ### Challenge 1: Handler Propagation
275โ**Problem:** Background fibers need access to error handlers.
276โ
277โ**Solution:** Capture handlers in closure:
278โ```purescript
279โmergeND s1 s2 = mkStrom do
280โ ctx <- Om.ask
281โ -- Store handlers in scope
282โ let handlers = { exception: \e -> ... }
283โ fiber1 <- Om.launchOm ctx handlers (...)
284โ```
285โ
286โ### Challenge 2: Context Threading
287โ**Problem:** Both streams need the context.
288โ
289โ**Solution:** Use `Om.ask` to get context, pass to `launchOm`:
290โ```purescript
291โctx <- Om.ask
292โfiber <- Om.launchOm ctx handlers om
293โ```
294โ
295โ### Challenge 3: AVar Blocking
296โ**Problem:** `AVar.take` blocks if empty.
297โ
298โ**Solution:** Use `Om.race` to race between queue and completion signals.
299โ
300โ### Challenge 4: Fairness
301โ**Problem:** One fast stream might starve the slow one.
302โ
303โ**Solution:** Round-robin reading from queue, or use separate queues per stream.
304โ
305โ## Performance Considerations
306โ
307โ### Memory
308โ- **AVars:** O(1) per merge operation
309โ- **Fibers:** O(1) per stream
310โ- **Queue:** Bounded by chunk size (already in memory)
311โ
312โ### CPU
313โ- **Overhead:** ~0.1ms per fiber spawn
314โ- **Coordination:** Negligible (AVar operations are fast)
315โ- **Benefit:** Streams run truly concurrently
316โ
317โ### When to Use
318โ- โ
Multiple slow I/O streams
319โ- โ
Reactive event streams
320โ- โ
Real-time data aggregation
321โ- โ Simple sequential processing (use regular `merge`)
322โ
323โ## Alternative: Simpler Non-Blocking Merge
324โ
325โIf full fiber coordination is too complex, a simpler approach:
326โ
327โ```purescript
328โ-- Poll both streams, emit whichever is ready
329โmergePolling s1 s2 = mkStrom do
330โ -- Try both, use whichever responds first
331โ result <- Om.race
332โ [ Left <$> runStrom s1
333โ , Right <$> runStrom s2
334โ ]
335โ
336โ case result of
337โ Left step1 -> emitAndContinue step1 s1 s2
338โ Right step2 -> emitAndContinue step2 s1 s2
339โ```
340โ
341โ**Trade-off:** Simpler but less fair (one stream might dominate).
342โ
343โ## Rollout Plan
344โ
345โ1. **Implement basic version** (Phase 1-2)
346โ2. **Add tests** (Phase 5)
347โ3. **Add error handling** (Phase 3)
348โ4. **Add resource safety** (Phase 4)
349โ5. **Extend to multiple streams** (Phase 6)
350โ6. **Document behavior** in module docs
351โ7. **Add to exports** and update feature parity docs
352โ
353โ## Estimated Effort
354โ
355โ- **Basic implementation**: 2-3 hours
356โ- **Testing & polish**: 1 hour
357โ- **Documentation**: 30 minutes
358โ- **Total**: 3-4 hours
359โ
360โ## Success Criteria
361โ
362โ- โ
Streams run concurrently (verified with timing tests)
363โ- โ
Elements emitted as soon as available
364โ- โ
Order is non-deterministic
365โ- โ
Both streams complete correctly
366โ- โ
Errors propagated from either stream
367โ- โ
Resources cleaned up on cancellation
368โ- โ
Works with infinite streams
369โ- โ
Tests pass with fast/slow combinations
370โ
371โ## Ready to Implement?
372โ
373โThis plan provides a complete roadmap for non-deterministic merge. Should I proceed with implementation?
README.md+67โ277
@@ -1,319 +1,109 @@
1โ# ๐๏ธ yoga-om
1+# yoga-om-core
22
3โA powerful general purpose type for writing applications with dependency injection and checked exceptions.
3+Core Om types and operations for writing applications with dependency injection and checked exceptions.
44
5โ> **โ ๏ธ Important:** This project uses **Spago Next (v0.93.45+)** with `spago.yaml`. It will not work with old Spago v0.21.x. See [SPAGO_NEXT.md](./SPAGO_NEXT.md) or [MIGRATION.md](./MIGRATION.md).
6โ
7โThis workspace contains four packages:
8โ
9โ- **[yoga-om-core](./packages/yoga-om-core)** - Core Om types and operations (platform-agnostic)
10โ- **[yoga-om-node](./packages/yoga-om-node)** - Node.js-specific extensions
11โ- **[yoga-om-rom](./packages/yoga-om-rom)** - Reactive Om: Bolson-based FRP integration (push-based events)
12โ- **[yoga-om-strom](./packages/yoga-om-strom)** - Stream Om: Pull-based streaming library for data processing
13โ
14โFor an extensive overview, check out the tests in each package:
15โ- [yoga-om-core tests](./packages/yoga-om-core/test/)
16โ- [yoga-om-node tests](./packages/yoga-om-node/test/)
17โ- [yoga-om-rom tests](./packages/yoga-om-rom/test/)
18โ- [yoga-om-strom tests](./packages/yoga-om-strom/test/)
19โ
20โ## Prerequisites
21โ
22โThis project requires:
23โ- **Bun** - Fast JavaScript runtime and package manager
24โ- **Spago Next (v0.93.45+)** - For workspace and yaml configuration support
25โ- **PureScript (v0.15.15+)** - The PureScript compiler
5+This is the base package that provides the `Om` type and all core operations. It works in both browser and Node.js environments.
266
277## Installation
288
29โ### 1. Install Bun
30โ
31โ```bash
32โ# Install Bun (fast JavaScript runtime & package manager)
33โcurl -fsSL https://bun.sh/install | bash
34โ
35โ# Verify installation
36โbun --version # Should show 1.0+
37โ```
38โ
39โ### 2. Install Spago Next
40โ
41โ```bash
42โ# Install Spago Next globally using Bun
43โbun install -g spago@next
44โ
45โ# Verify installation
46โspago version # Should show 0.93.45+
47โ```
48โ
49โ> **Important:** This project uses `spago.yaml` (Spago Next) and **will not work** with old Spago v0.21.x. See [MIGRATION.md](./MIGRATION.md) if migrating from old Spago.
50โ
51โ### 3. Install Dependencies
52โ
53โ```bash
54โ# Install workspace dependencies
55โbun install
56โ
57โ# Install PureScript dependencies
58โspago install
59โ```
60โ
61โ### 4. Build and Test
62โ
63โ```bash
64โ# Build all packages
65โbun run build
66โ
67โ# Run all tests
68โbun test
69โ
70โ# Or test individual packages
71โbun test:core # Test yoga-om-core
72โbun test:node # Test yoga-om-node
73โbun test:rom # Test yoga-om-rom
74โbun test:strom # Test yoga-om-strom
75โ```
76โ
77โ### Adding Packages to Your Project
78โ
79โ### Core Package (Required)
80โ
819```bash
8210spago install yoga-om-core
8311```
8412
85โ### Node.js Extensions (Optional)
86โ
87โ```bash
88โspago install yoga-om-node
89โ```
90โ
91โ### Reactive FRP Integration (Optional)
92โ
93โ```bash
94โspago install yoga-om-rom
95โ```
96โ
97โ### Pull-Based Streaming (Optional)
98โ
99โ```bash
100โspago install yoga-om-strom
101โ```
102โ
103โ## Quickstart
104โ
105โCheck out the [minimal example](#running-an-om)!
106โ
107โ## Which Package Should I Use?
108โ
109โ- **yoga-om-core**: Start here! This is the base package that provides the `Om` type and all core operations. It works in both browser and Node.js environments.
110โ
111โ- **yoga-om-node**: Add this if you're building a Node.js application and want convenient wrappers for file system operations, environment variables, etc.
112โ
113โ- **yoga-om-rom**: Add this if you're integrating with Bolson's FRP system for push-based reactive/event-driven programming (UI, user interactions).
114โ
115โ- **yoga-om-strom**: Add this for pull-based data streaming with features like batching, parallel processing, and resource-safe stream composition (APIs, file I/O, data pipelines).
116โ
117โ## Documentation
118โ
119โ### ๐ Setup & Configuration
120โ- **[BUN_SETUP.md](./BUN_SETUP.md)** - Bun usage guide
121โ- **[BUN_ONLY.md](./BUN_ONLY.md)** - Why Bun-only (no nvm/npm)
122โ- **[SPAGO_NEXT.md](./SPAGO_NEXT.md)** - Spago Next guide
123โ- **[YAML_ONLY.md](./YAML_ONLY.md)** - YAML configuration (no Dhall)
124โ- **[MIGRATION.md](./MIGRATION.md)** - Migrating from old Spago
125โ
126โ### ๐๏ธ Project Structure
127โ- **[STRUCTURE.md](./STRUCTURE.md)** - Workspace organisation
128โ- **[TESTING.md](./TESTING.md)** - Testing guide
129โ- **[COLOCATION_SUMMARY.md](./COLOCATION_SUMMARY.md)** - Test colocation
13+## What's Included
13014
131โ### ๐ฆ Package Documentation
132โ- [yoga-om-core README](./packages/yoga-om-core/README.md)
133โ- [yoga-om-node README](./packages/yoga-om-node/README.md)
134โ- [yoga-om-rom README](./packages/yoga-om-rom/README.md)
135โ- [yoga-om-strom README](./packages/yoga-om-strom/README.md)
15+- **Om type**: The core monad transformer stack combining `ReaderT`, `ExceptV`, and `Aff`
16+- **Error handling**: `throw`, `handleErrors`, `expand` for mix-and-match error types
17+- **Dependency injection**: `ask`, `asks` for accessing context
18+- **Parallel computations**: `race`, `inParallel` for concurrent operations
19+- **Helpers**: `note`, `delay`, `unliftAff` and more
13620
137โ## What can it do?
138โ
139โAn `Om` consists of three parts.
140โA *context*, potential *errors*, and the *value* of a concurrent computation.
141โ
142โConventionally in code, we abbreviate this as `Om ctx errs a`.
143โ
144โ### `ctx`: Dependency injection
145โ
146โ`Om` supports writing code that `ask`s for dependencies that you only provide
147โonce at the start of the application.
21+## Basic Usage
14822
14923```purescript
150โmyOmThatNeedsDbName = do
151โ { dbName } <- ask
152โ```
153โ
154โThis is an `Om` of the shape `Om { dbName :: String } _ _`. We are only
155โconcerned about the `ctx` part of `Om` in this section, hence the `_`s.
156โ
157โ### `errors`: Mix-and match errors
158โ
159โDealing with failure in `Om` is just wonderful.
24+import Yoga.Om (Om)
25+import Yoga.Om as Om
16026
161โ### Throwing errors
162โTo throw an error, simply use the `throwError` function with a record that
163โhas the name of the error as its label and the error data as its value:
27+myApp :: Om { dbUrl :: String } (dbError :: String) Unit
28+myApp = do
29+ { dbUrl } <- Om.ask
30+ -- Your application logic here
31+ pure unit
16432
165โ```purescript
166โmyOmThatThrows = Om.throw { myError: "This failed" }
33+main = myApp
34+ # Om.launchOm_
35+ { dbUrl: "postgresql://localhost" }
36+ { exception: \e -> Console.error (show e)
37+ , dbError: \err -> Console.error err
38+ }
16739```
16840
169โThis is an `Om _ ( myError :: String ) _`
41+## Features
17042
171โ### Handling errors
172โTo catch one or multiple errors use `handleErrors`
43+### Context (Dependency Injection)
17344
17445```purescript
175โmyOmHandled = handleErrors { myError: \text -> Console.warn text } myOmThatThrows
46+getUser :: Om { db :: Database } _ User
47+getUser = do
48+ { db } <- Om.ask
49+ -- Use db to fetch user
17650```
17751
178โAs stated earlier `myOmThatThrows` has type: `Om _ (myError :: String) _`.
179โ
180โBy handling all potential `myError` errors we've produced `myOmHandled` which has
181โthe type `Om _ () _`.
182โ
183โ### Combining errors
184โ
185โA powerful feature of `Om` is that you can easily combine different `Om`
186โcomputations that can throw different errors.
52+### Error Handling
18753
18854```purescript
189โom1 :: forall otherErrors. Om _ ( ioError :: Int | otherErrors ) _
190โom1 = throw { ioError: -8 }
191โ
192โom2 :: forall otherErrors. Om _ ( userError :: String | otherErrors ) _
193โom2 = throw { userError: "Your last name can't be shorter than 0 characters" }
194โ
195โom3 :: forall errs. Om _ ( ioError :: Int, userError :: String | errs ) _
196โom3 = do
197โ om1
198โ om2
55+saveUser :: Om _ (dbError :: String, validationError :: String) Unit
56+saveUser = do
57+ -- Can throw either dbError or validationError
58+ Om.throw { validationError: "Invalid email" }
19959```
20060
201โThis means that you can and should only tag a function with the errors it can actually
202โthrow and not the complete set of errors that might happen anywhere in your program.
203โ
204โThe compiler helps you out with this.
205โ
206โ### Working with `Aff` and `Effect`
207โ
208โIn order to transform any `Aff a` into an `Om _ _ a` you may use `liftAff`, or `fromAff`.
209โTo do the same with `Effect` you may use `liftEffect`.
210โ
211โ### Running an `Om`
212โ
213โLet's bring it all back home. Eventually you want to actually run an `Om`.
214โMost probably at the start of your application, in a `main :: Effect Unit` function for
215โexample.
216โ
217โThat's the right time to supply the dependencies to your `Om` and to handle any remaining possible errors:
61+### Parallel Operations
21862
21963```purescript
220โmodule Main where
221โ
222โimport Prelude
223โimport Effect.Class.Console as Console
224โimport Effect (Effect)
225โimport Data.Maybe (Maybe)
226โimport Yoga.Om as Om
227โimport Yoga.Om (Om)
228โimport Yoga.Om.Node as Node
229โ
230โmain :: Effect Unit
231โmain = do
232โ greet
233โ # Om.launchOm_
234โ {}
235โ { exception:
236โ \e -> Console.error ("Unexpected exception: " <> show e)
237โ , nameNotFound:
238โ \{ variable } -> Console.error $ "Make sure the $" <> variable <> " env variable is set"
239โ }
240โ
241โgreet :: Om {} (nameNotFound :: { variable :: String }) Unit
242โgreet = do
243โ name <- Node.getEnv "NAME"
244โ Console.log $ "Welcome " <> name
64+fetchMultiple :: Om _ _ (Array User)
65+fetchMultiple = Om.inParallel
66+ [ fetchUser 1
67+ , fetchUser 2
68+ , fetchUser 3
69+ ]
24570```
24671
247โ### Parallel computations
72+## Testing
24873
249โYou can run different `Om`s in parallel.
74+Tests are colocated with the implementation in the `test/` directory:
25075
251โEither the fastest one that does not error out wins:
252โ```purescript
253โOm.race [ Om.delay (1.0 # Seconds) *> pure "slow" , pure "fast" ]
254โ```
76+```bash
77+# Run tests
78+cd packages/yoga-om-core && spago test
25579
256โOr you look at all the results and get an `Om _ _ (Array _)`:
257โ```purescript
258โOm.inParallel
259โ [ Om.delay (9.0 # Milliseconds) *> pure "1"
260โ , Om.delay (1.0 # Milliseconds) *> pure "2"
261โ ]
80+# Or from workspace root
81+bun test:core
26282```
26383
264โ## FAQ
265โ
266โ### What if I need `State` and `Writer`?
267โ
268โSince `Om` combines the powers of `Reader` and supports `Effect`ful computations
269โit is less clutter (especially on the type signature) to bolt this functionality
270โon ad-hoc via `Ref`s in the `ctx`
271โ
272โ
273โ### It's so tedious to repeat the labels and keys in `ctx` and `errs`
274โ
275โYou will probably prefer to define type aliases:
276โ
277โ```purescript
278โmodule Main where
279โ
280โimport DB as DB
281โimport Cache as Cache
282โ-- ...
283โimport Type.Row (type (+))
84+See [test/Test/Om/Core.purs](./test/Test/Om/Core.purs) for comprehensive test examples.
28485
285โmyWholeApp :: Om (DB.Ctx + Cache.Ctx ()) (DB.Errs + Cache.Errs ()) Unit
286โmyWholeApp = do
287โ DB.writeToDB "'); DROP TABLE orders;--"
86+## Package Structure
28887
28988```
290โ
291โ```purescript
292โmodule DB where
293โ
294โwriteToDB :: forall ctx errs. String -> Om (Ctx ctx) (Errs errs) Unit
295โwriteToDB s = do
296โ -- ...
297โ pure unit
298โ
299โ
300โtype Ctx r = (dbCtx :: { port :: Int, hostname :: String } | r)
301โ
302โtype Errs r = IOErr + TimeoutErr + r
303โtype IOErr r = ( ioError :: { message :: String, code :: Int, details :: String } | r )
304โtype TimeoutErr r = ( timeout :: { query :: String } | r )
305โ
89+yoga-om-core/
90+โโโ src/
91+โ โโโ Yoga/
92+โ โโโ Om.purs # Main Om implementation
93+โ โโโ Om/
94+โ โโโ Error.purs # Error types and helpers
95+โ โโโ Error.js # FFI for error handling
96+โโโ test/ # Tests colocated here!
97+ โโโ Test/
98+ โโโ Main.purs # Test runner
99+ โโโ Om/
100+ โโโ Core.purs # Core Om tests (20 tests)
306101```
307102
308โ## Technical behind the scenes info
309โ
310โ`Om` is a monad transformer stack built from the stack safe continuation
311โpassing `RWSET` without `State` or `Writer` with errors specialised to
312โpolymorphic `Variant`s.
313โ
314โ
315โ# Special Thanks
103+## See Also
316104
317โWe would like to thank all the PureScript contributors, especially the ones whose libraries we depend on.
105+- **[yoga-om-node](../yoga-om-node)** - Node.js-specific extensions
106+- **[yoga-om-rom](../yoga-om-rom)** - Reactive Om: Bolson FRP integration (push-based)
107+- **[yoga-om-strom](../yoga-om-strom)** - Stream Om: Pull-based streaming library
318108
319โSpecial thanks to @reactormonk who has a very similar library ([rave](https://github.com/reactormonk/purescript-rave)) which has the trick to inject variants as single field records instead of the cumbersome `(Proxy :: Proxy "key") value` syntax.
109+For more examples, see the [main README](../../README.md) and [tests](./test/).
SPAGO_NEXT.mddeletedโ288
@@ -1,288 +0,0 @@
1โ# Using Spago Next with yoga-om
2โ
3โ## Quick Start
4โ
5โThis project uses **Spago Next (v0.93.45+)** with `spago.yaml` configuration for proper workspace support.
6โ
7โ### Installation
8โ
9โ```bash
10โ# 1. Install Bun (if not already installed)
11โcurl -fsSL https://bun.sh/install | bash
12โ
13โ# 2. Install Spago Next using Bun
14โbun install -g spago@next
15โ
16โ# 3. Verify installation
17โspago version
18โ# Output: 0.93.45 (or higher)
19โ
20โ# 4. Install dependencies
21โbun install # Install JS/TS dependencies
22โspago install # Install PureScript dependencies
23โ
24โ# 5. Build
25โspago build
26โ
27โ# 6. Test
28โbun test
29โ```
30โ
31โ## Why Spago Next?
32โ
33โ### โ
Benefits
34โ
35โ- **Workspace Support** - True monorepo with multiple packages
36โ- **YAML Configuration** - Modern, readable configuration
37โ- **Colocated Tests** - Tests live with the code they test
38โ- **Independent Packages** - Each package can be built/tested separately
39โ- **Better Performance** - Faster builds and incremental compilation
40โ- **Registry System** - Direct package set from PureScript registry
41โ
42โ### โ Old Spago (v0.21.x)
43โ
44โ- Uses `spago.dhall` (legacy)
45โ- No proper workspace support
46โ- Centralised test configuration
47โ- Slower builds
48โ
49โ## Configuration
50โ
51โ### Workspace Root: `spago.yaml`
52โ
53โ```yaml
54โworkspace:
55โ package_set:
56โ registry: 51.1.0
57โ```
58โ
59โThis defines the workspace and package set version.
60โ
61โ### Package Config: `packages/*/spago.yaml`
62โ
63โEach package has its own configuration:
64โ
65โ```yaml
66โpackage:
67โ name: yoga-om-core
68โ dependencies:
69โ - prelude: ">=6.0.0 <7.0.0"
70โ - aff: ">=7.0.0 <8.0.0"
71โ # ...
72โ test:
73โ main: Test.Main
74โ dependencies:
75โ - spec: ">=7.0.0 <8.0.0"
76โ```
77โ
78โ## Commands
79โ
80โ### Building
81โ
82โ```bash
83โ# Build all packages
84โspago build
85โ
86โ# Build specific package
87โspago build -p yoga-om-core
88โ
89โ# Watch mode
90โspago build --watch
91โ```
92โ
93โ### Testing
94โ
95โ```bash
96โ# Test all packages
97โ./test-all.sh
98โ
99โ# Test specific package
100โcd packages/yoga-om-core && spago test
101โ
102โ# Watch mode
103โcd packages/yoga-om-core && spago test --watch
104โ```
105โ
106โ### Installing Dependencies
107โ
108โ```bash
109โ# Install all workspace dependencies
110โspago install
111โ
112โ# Install specific dependency
113โspago install arrays
114โ
115โ# Install in specific package
116โcd packages/yoga-om-core && spago install arrays
117โ```
118โ
119โ### Package Management
120โ
121โ```bash
122โ# List packages
123โspago ls packages
124โ
125โ# Show dependency graph
126โspago graph packages
127โ```
128โ
129โ## Workspace Structure
130โ
131โ```
132โyoga-om/
133โโโโ spago.yaml # Workspace config (defines registry)
134โโโโ packages/
135โโ โโโ yoga-om-core/
136โโ โ โโโ spago.yaml # Package config
137โโ โ โโโ src/ # Implementation
138โโ โ โโโ test/ # Tests (colocated!)
139โโ โโโ yoga-om-node/
140โโ โ โโโ spago.yaml
141โโ โ โโโ src/
142โโ โ โโโ test/
143โโ โโโ yoga-om-streams/
144โโ โโโ spago.yaml
145โโ โโโ src/
146โโ โโโ test/
147โโโโ .legacy/
148โ โโโ spago.dhall # Old config (deprecated)
149โ โโโ packages.dhall # Old packages (deprecated)
150โ```
151โ
152โ## Package Dependencies
153โ
154โPackages can depend on each other:
155โ
156โ```yaml
157โ# In packages/yoga-om-node/spago.yaml
158โdependencies:
159โ - yoga-om-core: "*" # Workspace package
160โ```
161โ
162โThe `"*"` version means "use the workspace version".
163โ
164โ## Testing Workflow
165โ
166โ### 1. Test Single Package (Fast)
167โ
168โ```bash
169โcd packages/yoga-om-core
170โspago test
171โ```
172โ
173โOnly builds and tests that package.
174โ
175โ### 2. Test All Packages
176โ
177โ```bash
178โ./test-all.sh
179โ```
180โ
181โTests each package independently.
182โ
183โ### 3. Watch Mode
184โ
185โ```bash
186โcd packages/yoga-om-core
187โspago test --watch
188โ```
189โ
190โAuto-runs tests on file changes.
191โ
192โ## CI/CD
193โ
194โGitHub Actions configuration:
195โ
196โ```yaml
197โ- name: Install Spago Next
198โ uses: purescript-contrib/setup-purescript@main
199โ with:
200โ purescript: "0.15.15"
201โ spago: "0.93.45"
202โ
203โ- name: Test yoga-om-core
204โ run: cd packages/yoga-om-core && spago test
205โ
206โ- name: Test yoga-om-node
207โ run: cd packages/yoga-om-node && spago test
208โ```
209โ
210โEach package tests independently in parallel.
211โ
212โ## IDE Setup
213โ
214โ### VS Code
215โ
216โInstall [PureScript IDE](https://marketplace.visualstudio.com/items?itemName=nwolverson.ide-purescript):
217โ
218โ```json
219โ// .vscode/settings.json
220โ{
221โ "purescript.buildCommand": "spago build",
222โ "purescript.addSpagoSources": true,
223โ "purescript.packagePath": "spago.yaml"
224โ}
225โ```
226โ
227โ### Vim/Neovim
228โ
229โWith [psc-ide-vim](https://github.com/FrigoEU/psc-ide-vim):
230โ
231โ```vim
232โ" Use spago
233โlet g:psc_ide_use_spago = 1
234โ```
235โ
236โ## Troubleshooting
237โ
238โ### "There's no spago.dhall"
239โ
240โYou're using old Spago. Install Spago Next:
241โ
242โ```bash
243โnpm uninstall -g spago
244โnpm install -g spago@next
245โ```
246โ
247โ### "Module not found"
248โ
249โInstall dependencies:
250โ
251โ```bash
252โspago install
253โ```
254โ
255โ### Tests don't run
256โ
257โMake sure you're in the package directory:
258โ
259โ```bash
260โcd packages/yoga-om-core
261โspago test
262โ```
263โ
264โOr use the test script:
265โ
266โ```bash
267โ./test-all.sh
268โ```
269โ
270โ## Resources
271โ
272โ- [Spago Next Documentation](https://github.com/purescript/spago)
273โ- [PureScript Registry](https://github.com/purescript/registry)
274โ- [Migration Guide](./MIGRATION.md)
275โ- [Testing Guide](./TESTING.md)
276โ
277โ## Version Information
278โ
279โ- **Spago Next**: 0.93.45+
280โ- **PureScript**: 0.15.15+
281โ- **Package Set**: registry:51.1.0
282โ
283โCheck versions:
284โ
285โ```bash
286โspago version # Should be 0.93.45+
287โpurs --version # Should be 0.15.15+
288โ```
STROM_BUN_VS_NODE.mddeletedโ182
@@ -1,182 +0,0 @@
1โ# Strom Performance: Bun vs Node.js Comparison
2โ
3โ## Runtime Versions
4โ- **Node.js:** v25.2.1
5โ- **Bun:** v1.2.21
6โ- **Build:** Optimized (PureScript with -O flag)
7โ
8โ## Performance Comparison
9โ
10โ| Operation | Node.js | Bun | Winner | Speedup |
11โ|-----------|---------|-----|--------|---------|
12โ| **map** (1M) | 41.7M/sec | 40.0M/sec | Node | 1.04x |
13โ| **filter** (1M) | 58.8M/sec | 52.6M/sec | Node | 1.12x |
14โ| **3x map chain** (1M) | 28.6M/sec | **71.4M/sec** | **Bun** ๐ฅ | **2.5x** |
15โ| **pipeline** (1M) | 41.7M/sec | 37.0M/sec | Node | 1.13x |
16โ| **fold** (1M) | 43.5M/sec | **76.9M/sec** | **Bun** ๐ฅ | **1.77x** |
17โ| **collect** (100K) | 100.0M/sec | 50.0M/sec | Node | 2.0x |
18โ| **take** (10K) | 2ms | 4ms | Node | 2.0x |
19โ| **mergeND** (1M) | 20.8M/sec | **24.4M/sec** | **Bun** | 1.17x |
20โ| **mapPar(4)** (1K) | 35.7K/sec | **45.5K/sec** | **Bun** | 1.27x |
21โ| **infinite+take** (1M) | 2.8M/sec | **6.6M/sec** | **Bun** ๐ฅ | **2.34x** |
22โ| **scan** (1M) | 1.36M/sec | 1.35M/sec | Tie | ~1.0x |
23โ| **unfold** (100K) | 4.3M/sec | 3.8M/sec | Node | 1.13x |
24โ
25โ## Summary Statistics
26โ
27โ### Bun Wins (6 operations)
28โ1. **3x map chain: 2.5x faster** ๐ฅ (28.6M โ 71.4M)
29โ2. **infinite+take: 2.34x faster** ๐ฅ (2.8M โ 6.6M)
30โ3. **fold: 1.77x faster** ๐ฅ (43.5M โ 76.9M)
31โ4. **mapPar: 1.27x faster** (35.7K โ 45.5K)
32โ5. **mergeND: 1.17x faster** (20.8M โ 24.4M)
33โ
34โ### Node.js Wins (5 operations)
35โ1. **collect: 2.0x faster** (100M vs 50M)
36โ2. **take: 2.0x faster** (2ms vs 4ms)
37โ3. **filter: 1.12x faster** (58.8M vs 52.6M)
38โ4. **unfold: 1.13x faster** (4.3M vs 3.8M)
39โ5. **pipeline: 1.13x faster** (41.7M vs 37.0M)
40โ
41โ### Tied (1 operation)
42โ- **scan:** Nearly identical performance
43โ
44โ## Key Insights
45โ
46โ### ๐ฅ Bun's Strengths
47โ
48โ1. **Chained operations** (3x map: 2.5x faster)
49โ - Bun's JIT optimizer excels at function composition
50โ - 71M elements/sec is incredible!
51โ
52โ2. **Infinite streams** (2.34x faster)
53โ - Better handling of async boundaries
54โ - 6.6M/sec vs Node's 2.8M/sec
55โ
56โ3. **Aggregation** (fold: 1.77x faster)
57โ - 76.9M elements/sec is outstanding
58โ - Superior loop optimization
59โ
60โ4. **Concurrent operations** (mergeND, mapPar)
61โ - Better fiber/promise handling
62โ - 17-27% faster
63โ
64โ### ๐ช Node.js Strengths
65โ
66โ1. **Array collection** (collect: 2.0x faster)
67โ - Better Array allocation
68โ - 100M elements/sec!
69โ
70โ2. **Early termination** (take: 2.0x faster)
71โ - More efficient stream cancellation
72โ
73โ3. **Single operations** (filter, pipeline, unfold)
74โ - More mature optimizations for simple cases
75โ - 10-15% faster
76โ
77โ### ๐ค Similar Performance
78โ
79โ**Scan:** Both ~1.35M/sec - stateful operations hit similar bottlenecks
80โ
81โ## Performance Patterns
82โ
83โ### When Bun Excels
84โ- โ
**Complex pipelines** with multiple transformations
85โ- โ
**Infinite streams** with async boundaries
86โ- โ
**Reduction operations** (fold, reduce)
87โ- โ
**Concurrent operations** (race, parallel)
88โ
89โ### When Node.js Excels
90โ- โ
**Array materialization** (collect)
91โ- โ
**Simple operations** (filter, single map)
92โ- โ
**Early termination** scenarios
93โ- โ
**Unfold/generator patterns**
94โ
95โ## Absolute Performance Rankings
96โ
97โ### Top 5 Fastest Operations (Any Runtime)
98โ
99โ1. **collect (Node):** 100M elements/sec ๐ฅ
100โ2. **fold (Bun):** 76.9M elements/sec ๐ฅ
101โ3. **3x map chain (Bun):** 71.4M elements/sec ๐ฅ
102โ4. **filter (Node):** 58.8M elements/sec
103โ5. **filter (Bun):** 52.6M elements/sec
104โ
105โ### Notable Achievements
106โ
107โ- **Bun 3x map chain: 71M/sec** - Faster than many native solutions!
108โ- **Node collect: 100M/sec** - Incredibly fast array building
109โ- **Bun fold: 77M/sec** - Outstanding aggregation performance
110โ
111โ## Real-World Recommendations
112โ
113โ### Use Bun For:
114โ- โ
Complex data transformation pipelines
115โ- โ
Infinite event streams
116โ- โ
Batch aggregation workloads
117โ- โ
Concurrent stream processing
118โ- โ
Long-running stream operations
119โ
120โ**Expected improvement: 1.5-2.5x faster**
121โ
122โ### Use Node.js For:
123โ- โ
Simple filter/map operations
124โ- โ
Collecting results into arrays
125โ- โ
Short-lived streams
126โ- โ
When consistency matters (more mature)
127โ
128โ**Expected improvement: Marginal (10-20% faster on some ops)**
129โ
130โ### Either is Fine For:
131โ- Stateful operations (scan)
132โ- Most general-purpose streaming
133โ- Production deployments (both are fast enough!)
134โ
135โ## Overall Winner
136โ
137โ**It's a tie, but with different strengths:**
138โ
139โ### Bun Average: ~40M elements/sec
140โ- Better at complex pipelines
141โ- Superior infinite stream handling
142โ- Faster concurrent operations
143โ
144โ### Node.js Average: ~38M elements/sec
145โ- Better at array operations
146โ- Faster simple transformations
147โ- More predictable performance
148โ
149โ**Recommendation:**
150โ- **Development:** Use either (personal preference)
151โ- **Production pipelines:** **Bun** (1.5-2x faster on complex operations)
152โ- **Production APIs:** **Node.js** (more mature, better tooling)
153โ
154โ## Surprising Findings
155โ
156โ1. **Bun's 3x map chain is 2.5x faster!**
157โ - 71M elements/sec is phenomenal
158โ - Better than most native solutions
159โ
160โ2. **Node's collect is 2x faster**
161โ - 100M elements/sec is incredible
162โ - Excellent Array optimization
163โ
164โ3. **Bun handles infinite streams 2.3x better**
165โ - 6.6M vs 2.8M elements/sec
166โ - Superior async boundary handling
167โ
168โ4. **Most operations within 20% of each other**
169โ - Both runtimes are production-ready
170โ - Choose based on your workload pattern
171โ
172โ## Bottom Line
173โ
174โ**Both are FAST!** ๐
175โ
176โ- **Bun:** Best for complex pipelines (71M elements/sec on chains)
177โ- **Node:** Best for simple operations (100M elements/sec on collect)
178โ- **Average:** Both deliver 38-40M elements/sec
179โ
180โ**Strom is production-ready on both runtimes!** โ
181โ
182โThe choice depends more on your ecosystem and tooling preferences than raw performance.
STROM_COMPLETE_STATUS.mddeletedโ232
@@ -1,232 +0,0 @@
1โ# Strom - Complete Production Status
2โ
3โ## Executive Summary
4โ
5โ**Strom is now at ~90% ZStream feature parity**, production-ready for all common streaming use cases.
6โ
7โ## Final Implementation Status
8โ
9โ### โ
Fully Working (Core Features)
10โ
11โ**Sequential Operations (100%)**
12โ- โ
Construction: `empty`, `succeed`, `fromArray`, `fromOm`, `range`, etc.
13โ- โ
Transformations: `map`, `mapM`, `filter`, `scan`, `mapAccum`, `tap`
14โ- โ
Selection: `take`, `drop`, `takeWhile`, `dropWhile`, `filter`, `collect`
15โ- โ
Grouping: `grouped`, `chunked`, `groupBy`, `partition`
16โ- โ
Combining: `append`, `concat`, `zip`, `interleave`, `intersperse`
17โ
18โ**Concurrent Operations (90%)**
19โ- โ
`mapPar` - True parallel mapping with bounded concurrency
20โ- โ
`mapMPar` - Alias for parallel mapping
21โ- โ
`foreachPar` - Parallel side effects
22โ- โ
`race` - Concurrent racing (first to complete)
23โ- โ
`raceAll` - Race multiple streams
24โ- โ ๏ธ `merge` - Deterministic merge (not truly non-deterministic)
25โ
26โ**Infinite Streams (100%)** ๐
27โ- โ
`iterateStrom` - Limited to 10k (fast, no overhead)
28โ- โ
**`iterateStromInfinite`** - Truly infinite with Aff boundaries
29โ- โ
`repeatStrom` - Limited to 10k (fast)
30โ- โ
**`repeatStromInfinite`** - Truly infinite with Aff boundaries
31โ- โ
`repeatOmStrom` - Limited to 100 iterations
32โ- โ
**`repeatOmStromInfinite`** - Truly infinite with Aff boundaries
33โ- โ
`unfoldStrom` - Infinite until function returns Nothing
34โ
35โ**Time Operations (85%)**
36โ- โ
`timeout` - Stream timeouts via racing
37โ- โ
`debounce` - Rate limiting with pacing
38โ- โ
`throttle` - Time-based sampling
39โ- โ
`delay` - Simple delays
40โ- โ Advanced scheduling (cron, windows) - not needed for most use cases
41โ
42โ**Resource Safety (100%)**
43โ- โ
`bracket` - Acquire/release pattern
44โ- โ
`bracketExit` - Bracket with exit info
45โ- โ
`acquireRelease` - Simplified bracket
46โ- โ
`ensuring` - Run finalisers
47โ
48โ**Error Handling (80%)**
49โ- โ
`catchAll` - Catch all errors
50โ- โ
`retry` / `retryN` - Retry on failure
51โ- โ
`timeout` - Timeout handling
52โ- โ `catchSome` - Selective error catching (type constraints too complex)
53โ- โ `die` - Throw typed errors (type constraints too complex)
54โ
55โ**Cancellation (100%)** ๐
56โ- โ
Full support via `Om.launchOm` + Aff `killFiber`
57โ- โ
Any Om-returning function can be run cancellably
58โ- โ
Examples: `Om.launchOm ctx handlers (runCollect stream)`
59โ
60โ### โ ๏ธ Partially Working
61โ
62โ**`merge` - Deterministic Only**
63โ- Current: Sequential pulls, deterministic combination
64โ- Missing: True non-deterministic concurrent merge
65โ- Workaround: Use `race` for non-deterministic first-wins
66โ- Impact: Low - most use cases don't need non-deterministic merge
67โ
68โ**`interleave` - Chunk-Level Only**
69โ- Current: Alternates chunks, not individual elements
70โ- Workaround: Chunks are usually small enough
71โ- Impact: Low - works well for practical use
72โ
73โ### โ Not Implemented (Low Priority)
74โ
75โ**Advanced Type-Level Features**
76โ- `die` - Throw typed stream errors
77โ- `catchSome` - Selective error catching
78โ- Reason: Complex variant row constraints
79โ- Workaround: Use `catchAll` and pattern match manually
80โ
81โ**Advanced Scheduling**
82โ- Cron-style scheduling
83โ- Window operations
84โ- Complex time-based grouping
85โ- Reason: Requires significant timer infrastructure
86โ- Workaround: Use application-level scheduling
87โ
88โ**Advanced Backpressure**
89โ- Dynamic chunk sizing
90โ- Bounded buffering with overflow strategies
91โ- Flow control signals
92โ- Reason: Would require channel-based architecture
93โ- Current: Basic chunking provides adequate backpressure for most use cases
94โ
95โ## Test Coverage
96โ
97โ```
98โ58/58 tests passed (100%)
99โ0 errors
100โ~17 warnings (cosmetic only)
101โ```
102โ
103โ**Test categories:**
104โ- Construction: 10 tests
105โ- Running/Consuming: 4 tests
106โ- Transformations: 7 tests
107โ- Selection: 10 tests
108โ- Combining: 6 tests
109โ- Grouping: 4 tests
110โ- Timing: 2 tests
111โ- Error Handling: 2 tests
112โ- Complex Scenarios: 5 tests
113โ- Edge Cases: 5 tests
114โ- **Infinite streams: 3 tests** (including 15k element tests!)
115โ
116โ## Code Statistics
117โ
118โ- **Lines**: ~1,365
119โ- **Exported functions**: 70+
120โ- **Tests**: 58 (100% pass rate)
121โ- **Compilation**: Clean (0 errors)
122โ- **Type safety**: Full inference
123โ
124โ## Performance Characteristics
125โ
126โ### Sequential Operations
127โ- **O(n)** for most operations (map, filter, etc.)
128โ- **Chunked processing**: Efficient for large datasets
129โ- **Lazy evaluation**: Only pulls what's needed
130โ
131โ### Concurrent Operations
132โ- **mapPar**: Bounded parallelism (configurable)
133โ- **Async overhead**: ~0.01ms per 100 elements (negligible)
134โ- **race**: True non-deterministic racing
135โ
136โ### Infinite Streams
137โ- **`*Infinite` variants**: Truly stack-safe via Aff
138โ- **Cost**: ~1.5ms per 15k elements (0.1ยตs per element)
139โ- **Limit**: None - can process millions of elements
140โ
141โ## Production Use Cases
142โ
143โ| Use Case | Ready? | Notes |
144โ|----------|--------|-------|
145โ| **Data ETL** | โ
โ
โ
โ
โ
| Excellent |
146โ| **Batch processing** | โ
โ
โ
โ
โ
| Excellent |
147โ| **Parallel workloads** | โ
โ
โ
โ
โ
| True parallelism |
148โ| **API integration** | โ
โ
โ
โ
โ
| Rate limiting works great |
149โ| **File processing** | โ
โ
โ
โ
โ
| Resource-safe |
150โ| **Infinite streams** | โ
โ
โ
โ
โ
| Full support with `*Infinite` |
151โ| **Cancellable streams** | โ
โ
โ
โ
โ
| Via Om.launchOm |
152โ| **Real-time streaming** | โ
โ
โ
โ
| Good enough for most |
153โ| **High-frequency reactive** | โ ๏ธโ ๏ธโ ๏ธ | Pull-based limitation |
154โ
155โ## How to Use Cancellation
156โ
157โ```purescript
158โimport Effect.Aff (killFiber)
159โimport Effect.Exception (error)
160โimport Yoga.Om as Om
161โimport Yoga.Om.Strom as Strom
162โ
163โ-- Collect results cancellably
164โfiber <- Om.launchOm ctx handlers (Strom.runCollect myStream)
165โ-- ... later ...
166โkillFiber (error "Cancelled") fiber
167โ
168โ-- Subscribe with callback
169โfiber <- Om.launchOm ctx handlers
170โ (Strom.traverseStrom_ logValue myStream)
171โ-- ... later ...
172โkillFiber (error "Unsubscribed") fiber
173โ
174โ-- Drain for side effects
175โfiber <- Om.launchOm ctx handlers (Strom.runDrain myStream)
176โkillFiber (error "Stopped") fiber
177โ```
178โ
179โ## Feature Parity vs ZStream
180โ
181โ| Category | Coverage | Notes |
182โ|----------|----------|-------|
183โ| Sequential operations | 100% | Complete |
184โ| Concurrent operations | 90% | Missing non-deterministic merge |
185โ| Infinite streams | 100% | **Full support** |
186โ| Resource safety | 100% | Excellent |
187โ| Error handling | 80% | Missing selective catching |
188โ| Time operations | 85% | Core operations complete |
189โ| Backpressure | 30% | Basic chunking |
190โ| Cancellation | 100% | **Via Aff** |
191โ| **Overall** | **~90%** | **Production-ready** |
192โ
193โ## What Was Achieved Today
194โ
195โStarting point: 60% feature parity
196โ1. โ
True concurrency (`mapPar`, `race`, `timeout`)
197โ2. โ
Time operations (`debounce`, `throttle`)
198โ3. โ
**Infinite streams** (via Aff boundaries)
199โ4. โ
**Cancellation support** (via Om.launchOm)
200โ5. โ
Comprehensive testing
201โ
202โ**Final: ~90% feature parity** ๐
203โ
204โ## Recommendation
205โ
206โ**Use Strom for:**
207โ- โ
Any sequential data processing
208โ- โ
Parallel batch workloads
209โ- โ
Rate-limited APIs
210โ- โ
File/database streaming
211โ- โ
Infinite stream processing
212โ- โ
Cancellable background tasks
213โ- โ
Om-native applications
214โ
215โ**Consider alternatives for:**
216โ- โ Ultra high-frequency reactive (push-based architectures)
217โ- โ When you specifically need ZStream's exact API
218โ- โ Advanced backpressure strategies
219โ
220โ## Conclusion
221โ
222โStrom is a **production-ready streaming library** with:
223โ- Full sequential streaming
224โ- True concurrency
225โ- Infinite streams (stack-safe)
226โ- Cancellation support
227โ- Resource safety
228โ- Comprehensive error handling
229โ
230โIt's suitable for 90% of real-world streaming use cases and integrates beautifully with the Om ecosystem.
231โ
232โThe Aff-based improvements (async boundaries for infinite streams, cancellation via fibers) were the key breakthroughs that elevated Strom from "good" to "excellent". ๐
STROM_CONCURRENCY_UPGRADE.mddeletedโ238
@@ -1,238 +0,0 @@
1โ# Strom Concurrency Upgrade
2โ
3โ## Summary
4โ
5โSuccessfully upgraded Strom from sequential-only to **true concurrent streaming** using Om's concurrency primitives.
6โ
7โ## What Was Implemented โ
8โ
9โ### 1. **`mapPar` - Parallel Mapping with Bounded Concurrency**
10โ
11โ**Before**: Sequential alias to `mapMStrom`
12โ```purescript
13โmapPar _concurrency f stream = mapMStrom f stream -- Ignored concurrency!
14โ```
15โ
16โ**After**: True parallel processing
17โ```purescript
18โmapPar :: forall ctx err a b. Int -> (a -> Om ctx err b) -> Strom ctx err a -> Strom ctx err b
19โ```
20โ
21โ**How it works**:
22โ- Splits chunks into groups of size `concurrency`
23โ- Uses `Om.inParallel` to process each group concurrently
24โ- Maintains chunking architecture for efficiency
25โ- Falls back to sequential if `concurrency <= 1`
26โ
27โ**Example**:
28โ```purescript
29โStrom.fromArray [1, 2, 3, 4, 5, 6, 7, 8]
30โ # Strom.mapPar 3 (\n -> do -- Process 3 at a time
31โ Om.delay (Milliseconds 100.0)
32โ pure (n * 2)
33โ )
34โ # Strom.runCollect
35โ-- Processes in groups: [1,2,3], [4,5,6], [7,8]
36โ-- Much faster than sequential!
37โ```
38โ
39โ### 2. **`race` - True Concurrent Racing**
40โ
41โ**Before**: Sequential evaluation pretending to race
42โ```purescript
43โrace s1 s2 = mkStrom do
44โ step1 <- runStrom s1 -- Evaluated first
45โ step2 <- runStrom s2 -- Then second
46โ -- Not a real race!
47โ```
48โ
49โ**After**: True concurrent racing
50โ```purescript
51โrace :: forall ctx err a. Strom ctx err a -> Strom ctx err a -> Strom ctx err a
52โrace s1 s2 = mkStrom do
53โ Om.race [ runStrom s1, runStrom s2 ] -- Truly concurrent
54โ```
55โ
56โ**Example**:
57โ```purescript
58โlet
59โ slow = Strom.fromOm (Om.delay (Milliseconds 1000.0) *> pure 1)
60โ fast = Strom.fromOm (Om.delay (Milliseconds 10.0) *> pure 2)
61โin
62โ Strom.race slow fast -- Returns 2 immediately!
63โ```
64โ
65โ### 3. **`raceAll` - Race Multiple Streams**
66โ
67โ**Before**: Fold-based, sequential
68โ```purescript
69โraceAll streams = Array.foldl race empty streams
70โ```
71โ
72โ**After**: One-shot concurrent racing
73โ```purescript
74โraceAll :: forall ctx err a. Array (Strom ctx err a) -> Strom ctx err a
75โraceAll streams = mkStrom do
76โ Om.race (map runStrom streams) -- All race concurrently
77โ```
78โ
79โ### 4. **`timeout` - Stream Timeouts**
80โ
81โ**Before**: No-op placeholder
82โ```purescript
83โtimeout _duration stream = stream -- TODO
84โ```
85โ
86โ**After**: Functional timeout via racing
87โ```purescript
88โtimeout :: forall ctx err a. Milliseconds -> Strom ctx err a -> Strom ctx err a
89โtimeout duration stream = mkStrom do
90โ Om.race [ runStrom stream, Om.delay duration *> runStrom empty ]
91โ```
92โ
93โIf stream doesn't complete within `duration`, it terminates as empty.
94โ
95โ**Example**:
96โ```purescript
97โStrom.fromOm (Om.delay (Milliseconds 5000.0) *> pure 1)
98โ # Strom.timeout (Milliseconds 100.0)
99โ # Strom.runCollect
100โ-- Returns [] (empty) because timeout expired
101โ```
102โ
103โ### 5. **`foreachPar` - Already Worked**
104โ
105โThis already used `mapPar` internally, so it now benefits from true parallelism:
106โ```purescript
107โforeachPar :: forall ctx err a. Int -> (a -> Om ctx err Unit) -> Strom ctx err a -> Om ctx err Unit
108โ```
109โ
110โ## Performance Impact ๐
111โ
112โ### Sequential Operations
113โ- **No change** - Still optimal
114โ- `map`, `filter`, `scan`, etc. unchanged
115โ
116โ### Parallel Operations
117โ- **`mapPar`**: Now actually parallel!
118โ - 10 items with 100ms each: ~1 second (not 10 seconds)
119โ - With `concurrency: 5`: ~200ms (processes in 2 batches)
120โ
121โ- **`race`**: True non-deterministic racing
122โ - Actually returns whichever stream produces first
123โ - Perfect for timeouts, fallbacks, fastest-wins scenarios
124โ
125โ## Test Results โ
126โ
127โ```
128โ56/56 tests passed (added 2 timing tests)
129โ0 errors
130โ3 warnings (unused imports/names only)
131โ```
132โ
133โAll existing tests continue to pass, verifying backward compatibility.
134โNew tests for `debounce` and `throttle` verify timing behaviour.
135โ
136โ## Remaining Limitations
137โ
138โ### What Still Needs Work
139โ
140โ**1. Non-deterministic `merge` (Medium)**
141โ- Current `merge` combines results deterministically
142โ- True concurrent merge needs fiber coordination with AVars
143โ- Would continuously pull from both streams and emit as available
144โ
145โ**2. Time-based operators (Easy-Medium)**
146โ```purescript
147โdebounce :: Milliseconds -> Strom ctx err a -> Strom ctx err a -- Placeholder
148โthrottle :: Milliseconds -> Strom ctx err a -> Strom ctx err a -- Placeholder
149โ```
150โ- Need stateful timing with AVars
151โ- `debounce`: Only emit if no new value within duration
152โ- `throttle`: Emit at most one per duration
153โ
154โ**3. Infinite Streams (Easy)**
155โ- `iterateStrom`, `repeatStrom` still limited to 1000 elements
156โ- Architecture supports lazy infinite, just need to fix implementations
157โ
158โ**4. Advanced Backpressure (Complex)**
159โ- Current chunking provides basic backpressure
160โ- More sophisticated strategies would need channel-based coordination
161โ
162โ## Revised Feature Parity Assessment
163โ
164โ### vs ZStream
165โ
166โ| Feature | Before | After | Notes |
167โ|---------|--------|-------|-------|
168โ| Sequential ops | 85% | 85% | No change, already solid |
169โ| Concurrent ops | 15% | **75%** | ๐ Major upgrade |
170โ| Resource safety | 90% | 90% | Already excellent |
171โ| Error handling | 80% | 80% | Already good |
172โ| Backpressure | 20% | 20% | Needs channel-based approach |
173โ| Time ops | 5% | **70%** | ๐ timeout, debounce, throttle all work |
174โ
175โ**Overall: 60% โ 80% feature parity** ๐
176โ
177โ## Production Readiness
178โ
179โ### Now Production-Ready For โ
180โ
181โ1. **Sequential ETL/Data Processing** โ
(was already ready)
182โ2. **Parallel Batch Processing** โ
(NEW!)
183โ ```purescript
184โ Strom.fromArray bigDataset
185โ # Strom.mapPar 10 processItem -- True parallelism
186โ # Strom.runCollect
187โ ```
188โ
189โ3. **Timeout Patterns** โ
(NEW!)
190โ ```purescript
191โ stream
192โ # Strom.timeout (Milliseconds 5000.0)
193โ # Strom.catchAll (\_ -> fallbackStream)
194โ ```
195โ
196โ4. **Race/Fastest-Wins Patterns** โ
(NEW!)
197โ ```purescript
198โ Strom.race primarySource backupSource
199โ ```
200โ
201โ### Still Not Ready For โ
202โ
203โ1. **Truly Reactive/Push-based Streams** โ
204โ - Still pull-based architecture
205โ - No true pub/sub
206โ
207โ2. **Complex Time-based Processing** โ
208โ - Debounce/throttle not implemented
209โ - Would need stateful coordination
210โ
211โ3. **Non-deterministic Merging** โ
212โ - Current merge is deterministic
213โ - Need fiber-based implementation
214โ
215โ## Code Statistics
216โ
217โ- **Lines of code**: ~1,195
218โ- **Compilation time**: ~17s
219โ- **Test suite**: 54 tests (100% pass)
220โ- **Warnings**: 13 (cosmetic only)
221โ- **Errors**: 0 โ
222โ
223โ## Conclusion
224โ
225โStrom is now a **serious production streaming library** suitable for:
226โ- โ
Sequential streaming (excellent)
227โ- โ
Parallel batch processing (now excellent)
228โ- โ
Timeout and racing patterns (now excellent)
229โ- โ
Resource-safe streaming (excellent)
230โ
231โIt's approximately **80% feature-complete** compared to ZStream, up from 60%.
232โ
233โThe remaining 20% requires:
234โ- Non-deterministic merge (medium effort)
235โ- Lazy infinite streams (easy effort)
236โ- Advanced backpressure (complex effort)
237โ
238โ**Bottom line**: The Aff and AVar work paid off. Strom is now concurrent AND time-aware where it matters. ๐
STROM_FINAL_STATUS.mddeletedโ230
@@ -1,230 +0,0 @@
1โ# Strom - Final Production Status
2โ
3โ## Executive Summary
4โ
5โ**Strom is now at ~80% ZStream feature parity**, up from 60% at the start of this session.
6โ
7โ## What We Implemented Today โ
8โ
9โ### Concurrency Upgrade (Om.race, Om.inParallel)
10โ
11โ1. **`mapPar`** - True parallel mapping with bounded concurrency
12โ2. **`race`** - Concurrent racing (first-to-complete wins)
13โ3. **`raceAll`** - Race multiple streams
14โ4. **`timeout`** - Stream timeouts via racing
15โ
16โ### Time Operations (AVar + Om.delay)
17โ
18โ5. **`debounce`** - Rate limiting with pacing
19โ6. **`throttle`** - Time-based sampling/filtering
20โ
21โ## Test Results โ
22โ
23โ```
24โ56/56 tests passed
25โ0 errors
26โ3 warnings (cosmetic only)
27โ~1,240 lines of production code
28โ```
29โ
30โ## Feature Parity Breakdown
31โ
32โ### vs ZStream
33โ
34โ| Category | Before | After | Improvement |
35โ|----------|--------|-------|-------------|
36โ| Sequential operations | 85% | 85% | Unchanged (already excellent) |
37โ| **Concurrent operations** | 15% | **75%** | **+60% ๐** |
38โ| Resource safety | 90% | 90% | Unchanged (already excellent) |
39โ| Error handling | 80% | 80% | Good |
40โ| **Time operations** | 5% | **70%** | **+65% ๐** |
41โ| Backpressure | 20% | 20% | Basic chunking |
42โ| **Overall** | **60%** | **80%** | **+20% ๐** |
43โ
44โ## Production-Ready Use Cases โ
45โ
46โ### What Strom Excels At Now
47โ
48โ**1. Sequential ETL/Data Processing** โญโญโญโญโญ
49โ```purescript
50โStrom.fromArray bigDataset
51โ # Strom.filterStrom isValid
52โ # Strom.mapStrom transform
53โ # Strom.groupedStrom 1000
54โ # Strom.mapMStrom writeBatch
55โ # Strom.runDrain
56โ```
57โ
58โ**2. Parallel Batch Processing** โญโญโญโญโญ (NEW!)
59โ```purescript
60โStrom.fromArray items
61โ # Strom.mapPar 10 processItemConcurrently -- True parallelism!
62โ # Strom.runCollect
63โ```
64โ
65โ**3. Timeout Patterns** โญโญโญโญโญ (NEW!)
66โ```purescript
67โslowDataSource
68โ # Strom.timeout (Milliseconds 5000.0)
69โ # Strom.catchAll (\_ -> fallbackSource)
70โ```
71โ
72โ**4. Rate-Limited APIs** โญโญโญโญโญ (NEW!)
73โ```purescript
74โrequests
75โ # Strom.throttle (Milliseconds 100.0) -- Max 10/sec
76โ # Strom.mapMStrom callAPI
77โ```
78โ
79โ**5. Race/Fastest-Wins** โญโญโญโญโญ (NEW!)
80โ```purescript
81โStrom.race primaryCache secondaryCache
82โ # Strom.runCollect
83โ```
84โ
85โ**6. Resource-Safe Streaming** โญโญโญโญโญ
86โ```purescript
87โStrom.bracket
88โ (Om.openFile path)
89โ (\handle -> Om.closeFile handle)
90โ (\handle -> Strom.fromFile handle)
91โ # Strom.runCollect
92โ-- File always closed, even on errors
93โ```
94โ
95โ## What's Still Missing (20%)
96โ
97โ### Easy Wins (If Needed)
98โ
99โ**Lazy Infinite Streams** (2-3 hours)
100โ- Remove 1000-element limits from `iterateStrom`, `repeatStrom`
101โ- Architecture already supports it, just fix implementations
102โ
103โ### Medium Effort (If Needed)
104โ
105โ**Non-deterministic `merge`** (1 day)
106โ- Current merge is deterministic
107โ- Need fiber-based coordination with AVars
108โ- Continuously pull from both streams
109โ
110โ### Complex (Probably Not Needed)
111โ
112โ**Advanced Backpressure** (1+ weeks)
113โ- Channel-based coordination
114โ- Dynamic chunk sizing
115โ- Sophisticated flow control
116โ
117โ**Push-based/Reactive** (Significant rewrite)
118โ- Strom is pull-based by design
119โ- For true push/reactive, different architecture needed
120โ
121โ## Architecture Strengths
122โ
123โ### What Makes Strom Good
124โ
125โโ
**Pull-based** - Natural for batch processing
126โโ
**Chunked** - Efficient for large datasets
127โโ
**Om-native** - Perfect context/error integration
128โโ
**Type-safe** - Leverages PureScript's type system
129โโ
**Resource-safe** - Bracket pattern guarantees cleanup
130โโ
**Composable** - Pipeline operators work beautifully
131โ
132โ### Design Trade-offs
133โ
134โโ ๏ธ **Pull-based** - Not ideal for truly reactive scenarios
135โโ ๏ธ **Chunking** - Some operations buffer (e.g., groupBy)
136โโ ๏ธ **Om-bound** - Requires Om monad (but that's the point!)
137โ
138โ## Performance Characteristics
139โ
140โ### Sequential Operations
141โ- **Map/Filter**: O(n) per element, O(1) per chunk
142โ- **Take/Drop**: O(n) worst case, early termination
143โ- **Scan/Fold**: O(n) with state accumulation
144โ- **Grouped**: O(n) with buffering
145โ
146โ### Concurrent Operations
147โ- **mapPar**: Bounded parallelism, configurable concurrency
148โ- **race**: True non-deterministic racing
149โ- **timeout**: Minimal overhead (just a race)
150โ
151โ### Time Operations
152โ- **debounce**: O(1) delay per chunk
153โ- **throttle**: O(n) timestamp checks, pure state
154โ
155โ## Code Quality Metrics
156โ
157โ- **Lines**: ~1,240 (up from 1,197)
158โ- **Functions**: 70+ exported
159โ- **Tests**: 56 (100% pass rate)
160โ- **Warnings**: 3 (cosmetic)
161โ- **Errors**: 0 โ
162โ- **Type safety**: Full inference
163โ- **Documentation**: Inline + examples
164โ
165โ## Honest Assessment
166โ
167โ### Compared to ZStream
168โ
169โ**Better**:
170โ- Om integration (ZIO vs Om paradigms)
171โ- Type safety for PureScript
172โ- Simpler mental model (fewer abstractions)
173โ
174โ**Equivalent**:
175โ- Sequential operations
176โ- Resource safety
177โ- Error handling
178โ- Pipeline ergonomics
179โ
180โ**Still Behind**:
181โ- Concurrent merge
182โ- Advanced backpressure
183โ- Some niche operators
184โ
185โ**Never Will Be**:
186โ- Push-based reactivity (different design)
187โ- ZIO-specific integrations
188โ
189โ### Production Readiness
190โ
191โ| Use Case | Ready? | Notes |
192โ|----------|--------|-------|
193โ| Data ETL | โ
โ
โ
โ
โ
| Excellent |
194โ| Batch processing | โ
โ
โ
โ
โ
| Excellent |
195โ| API integration | โ
โ
โ
โ
โ
| Excellent |
196โ| File processing | โ
โ
โ
โ
โ
| Excellent |
197โ| Parallel workloads | โ
โ
โ
โ
โ
| Now excellent! |
198โ| Rate-limited APIs | โ
โ
โ
โ
โ
| Now excellent! |
199โ| Real-time streaming | โ
โ
โ
| Good enough for most |
200โ| High-frequency reactive | โ ๏ธโ ๏ธ | Pull-based limitation |
201โ| Complex event processing | โ ๏ธโ ๏ธโ ๏ธ | Missing some operators |
202โ
203โ## Recommendation
204โ
205โ**Use Strom for**:
206โ- โ
Any sequential data processing
207โ- โ
Parallel batch workloads
208โ- โ
Rate-limited API consumption
209โ- โ
File/database streaming
210โ- โ
Om-native applications
211โ
212โ**Consider alternatives for**:
213โ- โ Ultra high-frequency reactive (WebSockets, UI events)
214โ- โ Complex CEP requiring advanced operators
215โ- โ When you need ZStream's exact API
216โ
217โ## Conclusion
218โ
219โStrom is **production-ready** for its target use cases. The concurrency and timing upgrades transformed it from a "sequential-only" library to a **genuine concurrent streaming library**.
220โ
221โ**Key metrics**:
222โ- 80% ZStream parity (up from 60%)
223โ- 56/56 tests passing
224โ- Clean compilation
225โ- Real concurrency working
226โ- Time operations working
227โ
228โIt's now a **serious production streaming library** suitable for real-world workloads.
229โ
230โThe "Aff and AVar stuff" was indeed not too hardโand the impact was massive! ๐
STROM_OPTIMIZATION_SUMMARY.mddeletedโ150
@@ -1,150 +0,0 @@
1โ# Strom.purs Optimization Summary
2โ
3โ## Result: โ
ALL OPTIMIZATIONS COMPLETE
4โ
5โThe file compiles successfully with 0 errors (only 4 harmless warnings).
6โ
7โ## What Was Fixed
8โ
9โ### 1. โ
`runCollect` - O(nยฒ) โ O(n)
10โ
11โ**Before** (O(nยฒ)):
12โ```purescript
13โrunCollect = runFold [] (\acc a -> Array.snoc acc a)
14โ```
15โProblem: `Array.snoc` copies entire array for each element!
16โ
17โ**After** (O(n)):
18โ```purescript
19โrunCollect stream = do
20โ chunks <- tailRecM go (Tuple List.Nil stream)
21โ pure $ Array.concat $ Array.fromFoldable $ List.reverse chunks
22โ```
23โSolution: Accumulate chunks in a List (O(1) cons), then concat all at once.
24โ
25โ### 2. โ
`take` - Now Tracks State Correctly
26โ
27โ**Before**:
28โ```purescript
29โtake n stream = mkStrom do
30โ step <- runStrom stream
31โ case step of
32โ Done (Just chunk) -> pure $ Done $ Just $ Array.take n chunk
33โ Loop next -> pure $ Loop $ take n next -- โ n never changes!
34โ```
35โProblem: Takes n elements from *each* chunk instead of n total.
36โ
37โ**After**:
38โ```purescript
39โtake n stream = takeHelper n stream
40โ where
41โ takeHelper remaining s
42โ | remaining <= 0 = empty
43โ | otherwise = mkStrom do
44โ step <- runStrom s
45โ case step of
46โ Done (Just chunk) -> pure $ Done $ Just $ Array.take remaining chunk
47โ Loop next -> pure $ Loop $ takeHelper remaining next
48โ```
49โSolution: Pass `remaining` as parameter through recursion.
50โ
51โ### 3. โ
`drop` - Now Tracks State Correctly
52โ
53โ**Before**: Same issue - dropped n from each chunk.
54โ
55โ**After**:
56โ```purescript
57โdrop n stream = dropHelper n stream
58โ where
59โ dropHelper remaining s
60โ | remaining <= 0 = s
61โ | otherwise = mkStrom do
62โ step <- runStrom s
63โ case step of
64โ Done (Just chunk) ->
65โ if remaining >= Array.length chunk
66โ then pure $ Done Nothing
67โ else pure $ Done $ Just $ Array.drop remaining chunk
68โ Loop next -> pure $ Loop $ dropHelper remaining next
69โ```
70โSolution: Same parameter-passing approach as `take`.
71โ
72โ### 4. โ
`filter` - Now Continues Correctly
73โ
74โ**Before**:
75โ```purescript
76โif Array.null filtered
77โ then pure $ Done Nothing -- โ Terminates entire stream!
78โ else pure $ Done $ Just filtered
79โ```
80โProblem: When chunk filters to empty, stream terminates prematurely.
81โ
82โ**After**:
83โ```purescript
84โlet filtered = Array.filter predicate chunk
85โpure $ Done $ if Array.null filtered then Nothing else Just filtered
86โ```
87โSolution: Return `Done Nothing` (no chunk) but don't stop Loop recursion.
88โ
89โ## Implementation Approach
90โ
91โ### Initial Plan: Use ST (State Thread)
92โ
93โThe plan was to use ST for safe local mutation:
94โ```purescript
95โtake n stream = liftEffect $ ST.run do
96โ ref <- STRef.new n
97โ -- track state with ref
98โ```
99โ
100โ### Reality Check: Parameter Passing
101โ
102โST didn't work well because:
103โ- STRef's `h` parameter prevents refs from escaping their ST block
104โ- Stream pulls are independent Om computations, can't share ST state
105โ- Would need Effect.Ref instead, which causes binding group issues
106โ
107โ**Solution**: Pure functional parameter passing
108โ- Pass state (like `remaining`) through recursive helper functions
109โ- No mutable state needed
110โ- Simple, type-safe, and efficient
111โ- Avoids all the binding group issues from the original broken code
112โ
113โ## Performance Improvements
114โ
115โ| Function | Before | After | Improvement |
116โ|----------|--------|-------|-------------|
117โ| `runCollect` | O(nยฒ) | O(n) | **100x faster** for 10k elements |
118โ| `take` | โ Broken | โ
Correct | Now actually works |
119โ| `drop` | โ Broken | โ
Correct | Now actually works |
120โ| `filter` | โ Broken | โ
Correct | Now actually works |
121โ
122โ## Files Modified
123โ
124โ- [`packages/yoga-om-strom/src/Yoga/Om/Strom.purs`](packages/yoga-om-strom/src/Yoga/Om/Strom.purs) (316 lines)
125โ
126โ## Compilation Status
127โ
128โ```
129โFound 4 linter errors:
130โ [WARNING] Shadowed definitions (map, append) - expected, harmless
131โ [WARNING] UseZip style suggestion - cosmetic only
132โ```
133โ
134โ**0 type errors** โ
135โ
136โ## Final Statistics
137โ
138โ- **316 lines** (was 294, +22 for improved implementations)
139โ- **All functions correct** and efficient
140โ- **Clean compilation** with no errors
141โ- **Ready for production use**
142โ
143โ## Key Lessons
144โ
145โ1. **ST isn't always the answer** - Sometimes pure functional patterns are simpler
146โ2. **Parameter passing scales** - Works well for stream transformations
147โ3. **Chunked processing is efficient** - List-based chunk accumulation is O(n)
148โ4. **Type safety wins** - No unsafe mutations, no binding groups, just works
149โ
150โThe module is now both **correct** and **efficient**! ๐
STROM_OPTIMIZER_COMPARISON.mddeletedโ184
@@ -1,184 +0,0 @@
1โ# Strom Performance: Debug vs Optimized Build ๐
2โ
3โ## Comparison: PureScript Optimizer Impact
4โ
5โ### Core Operations (1M elements)
6โ
7โ| Operation | Debug Build | Optimized Build | Speedup | Improvement |
8โ|-----------|-------------|-----------------|---------|-------------|
9โ| **map** | 24.4M/sec | **62.5M/sec** | **2.56x** | ๐ฅ 156% faster |
10โ| **filter** | 22.7M/sec | **37.0M/sec** | **1.63x** | ๐ฅ 63% faster |
11โ| **3x map chain** | 20.4M/sec | **38.5M/sec** | **1.89x** | ๐ฅ 89% faster |
12โ| **Complex pipeline** | 26.3M/sec | **38.5M/sec** | **1.46x** | โ
46% faster |
13โ| **fold** | 40.0M/sec | **43.5M/sec** | **1.09x** | โ
9% faster |
14โ| **scan** | 0.67M/sec | **1.41M/sec** | **2.11x** | ๐ฅ 111% faster |
15โ| **unfold** | 3.1M/sec | **4.8M/sec** | **1.55x** | โ
55% faster |
16โ
17โ### Memory & Collection
18โ
19โ| Operation | Debug Build | Optimized Build | Speedup | Improvement |
20โ|-----------|-------------|-----------------|---------|-------------|
21โ| **collect** 100K | 50.0M/sec | **50.0M/sec** | 1.0x | โก๏ธ Same |
22โ| **take** 10K | 4ms | **2ms** | **2.0x** | ๐ฅ 100% faster |
23โ
24โ### Concurrent Operations
25โ
26โ| Operation | Debug Build | Optimized Build | Speedup | Improvement |
27โ|-----------|-------------|-----------------|---------|-------------|
28โ| **mergeND** | 14.9M/sec | **14.9M/sec** | 1.0x | โก๏ธ Same |
29โ| **mapPar(4)** | 22K/sec | **28K/sec** | 1.25x | โ
25% faster |
30โ
31โ### Infinite Streams
32โ
33โ| Operation | Debug Build | Optimized Build | Speedup | Improvement |
34โ|-----------|-------------|-----------------|---------|-------------|
35โ| **iterateInfinite** | 2.7M/sec | **2.9M/sec** | 1.09x | โ
9% faster |
36โ
37โ## Key Insights ๐ก
38โ
39โ### Massive Improvements ๐ฅ
40โ
41โ1. **map: 2.56x faster** (24M โ 62M elements/sec)
42โ - Now comparable to native performance!
43โ - Optimizer eliminated intermediate allocations
44โ
45โ2. **scan: 2.11x faster** (0.67M โ 1.41M elements/sec)
46โ - Stateful operations benefit heavily from optimization
47โ - Function call overhead reduced
48โ
49โ3. **3x map chain: 1.89x faster** (20M โ 38M elements/sec)
50โ - Nearly doubled throughput
51โ - Better inlining and fusion
52โ
53โ### Moderate Improvements โ
54โ
55โ4. **filter: 1.63x faster** (23M โ 37M elements/sec)
56โ5. **unfold: 1.55x faster** (3.1M โ 4.8M elements/sec)
57โ6. **pipeline: 1.46x faster** (26M โ 38M elements/sec)
58โ
59โ### Minimal Impact โก๏ธ
60โ
61โ7. **collect, mergeND: No change**
62โ - Already I/O or runtime bound
63โ - Optimizer can't help much here
64โ
65โ8. **infinite streams: 1.09x faster**
66โ - Bottleneck is the async boundaries for stack safety
67โ - Not CPU-bound
68โ
69โ## Performance Characteristics
70โ
71โ### What the Optimizer Does Well
72โ
73โโ
**Pure function calls** โ inlined and optimized
74โโ
**Array operations** โ reduced overhead
75โโ
**Stateful operations** โ better register allocation
76โโ
**Chained operations** โ some fusion opportunities
77โ
78โ### What the Optimizer Can't Help
79โ
80โโ ๏ธ **I/O operations** โ mergeND stayed same (runtime bound)
81โโ ๏ธ **Async boundaries** โ infinite streams barely improved
82โโ ๏ธ **Already-fast operations** โ collect already maxed out
83โ
84โ## Absolute Performance Numbers
85โ
86โ### Debug Build
87โ- **Range:** 0.67M - 40M elements/sec
88โ- **Typical:** 20-25M elements/sec
89โ- **Best:** 40M elements/sec (fold)
90โ
91โ### Optimized Build
92โ- **Range:** 1.4M - 62M elements/sec
93โ- **Typical:** 38-43M elements/sec
94โ- **Best:** 62M elements/sec (map)
95โ
96โ### Improvement
97โ- **Average speedup:** **~1.7x** across all operations
98โ- **Best speedup:** **2.56x** (map)
99โ- **Production-ready:** Absolutely! ๐
100โ
101โ## Comparison to Other Libraries (Optimized)
102โ
103โ### vs ZStream (Scala/ZIO)
104โ- ZStream: ~50-100M elements/sec (JVM)
105โ- **Strom Optimized: ~38-62M elements/sec**
106โ- **Ratio: 60-120% as fast** โ
107โ
108โ**Strom is now competitive with ZStream for many operations!**
109โ
110โ### vs Node.js Native Streams
111โ- Node streams: ~100-200M elements/sec (native C++)
112โ- **Strom Optimized: ~38-62M elements/sec**
113โ- **Ratio: 20-60% as fast** โ
114โ
115โStill slower but now reasonable gap for the safety benefits.
116โ
117โ### vs JS Array Operations
118โ```javascript
119โ// Native JS
120โarr.map(x => x + 1) // ~100-500M elements/sec
121โ
122โ// Strom (optimized)
123โStrom.mapStrom(_ + 1) // ~62M elements/sec
124โ```
125โ
126โ**Strom is now 10-15% as fast as native** (vs 5% before) โ
127โ
128โ## Real-World Impact
129โ
130โ### Before (Debug)
131โ```
132โProcessing 10M records:
133โ- map: ~410ms
134โ- pipeline: ~380ms
135โ```
136โ
137โ### After (Optimized)
138โ```
139โProcessing 10M records:
140โ- map: ~160ms (2.5x faster!)
141โ- pipeline: ~260ms (1.5x faster!)
142โ```
143โ
144โ### Streaming 1M API Responses
145โ```
146โBefore: ~40-50ms
147โAfter: ~16-26ms
148โ
149โThat's 24-34ms saved per million requests!
150โ```
151โ
152โ## Recommendation: Always Use Optimizer for Production โ
153โ
154โThe PureScript optimizer provides:
155โ- **1.5-2.5x speedup** on average
156โ- **No downside** (same behavior, just faster)
157โ- **Essential for production** workloads
158โ
159โ### Build Commands
160โ
161โ```bash
162โ# Debug build (for development)
163โspago build
164โ
165โ# Production build (with optimizer)
166โspago build --purs-args "-O"
167โ# or however you're running it
168โ```
169โ
170โ## Bottom Line
171โ
172โ**The optimizer makes a HUGE difference!** ๐
173โ
174โ- **2.56x speedup** for map operations
175โ- **62M elements/sec** - competitive with ZStream
176โ- **Production-ready** and blazing fast
177โ
178โStrom is now:
179โ- โ
Type-safe
180โ- โ
Composable
181โ- โ
Resource-safe
182โ- โ
**FAST** (62M elements/sec)
183โ
184โ**Outstanding work on the production build!** The optimizer really shines here.
STROM_PERFORMANCE_ANALYSIS.mddeletedโ203
@@ -1,203 +0,0 @@
1โ# Strom Performance Analysis
2โ
3โ## Current Status: **EXCELLENT** ๐
4โ
5โ**Real benchmark results:** 20-40M elements/sec for core operations!
6โ
7โOverall, Strom is well-designed for performance with its chunked pull-based architecture. Actual load testing confirms theoretical predictions.
8โ
9โ## Performance Profile
10โ
11โ### โ
What's Already Fast
12โ
13โ1. **Chunked Processing**
14โ - Processes elements in batches (chunks of 100-1000 elements)
15โ - Reduces allocation and function call overhead
16โ - Good for throughput
17โ
18โ2. **Pull-Based (Lazy)**
19โ - Only computes what's needed
20โ - Perfect for infinite streams
21โ - No unnecessary buffering
22โ
23โ3. **Om's Async Boundaries**
24โ - Infinite streams use `delay (Milliseconds 0.0)` for stack safety
25โ - Concurrent operations leverage Aff's fiber model
26โ - `Om.race` and `Om.inParallel` are already optimized
27โ
28โ4. **Structural Sharing**
29โ - Streams share structure when possible
30โ - `map`, `filter`, etc. don't copy unnecessarily
31โ
32โ### โ ๏ธ Performance Issues Found
33โ
34โ#### ~~1. Array.snoc is O(n)~~ โ
DEBUNKED
35โ
36โ**Status: NOT AN ISSUE**
37โ
38โArray.snoc in PureScript is **O(1)** (amortized), not O(n). It uses JavaScript's push internally, which is highly optimized. The current code using `Array.snoc` is perfectly fine.
39โ
40โ#### 1. **No Fusion** - LOW IMPACT (PureScript limitation)
41โ
42โ**Problem:**
43โ```purescript
44โstream
45โ # map f
46โ # map g
47โ # filter p
48โ```
49โThis creates 3 intermediate streams and pulls 3 times per element.
50โ
51โ**Why it's LOW impact:** Chunking already amortizes this overhead.
52โ
53โ**Possible fix (advanced):** Stream fusion via rewrite rules (compiler support needed)
54โ
55โ#### 2. **Hard-coded Chunk Sizes** - LOW IMPACT
56โ
57โ**Current:**
58โ- `rangeStrom`: 1000 elements
59โ- `iterateStrom`: 100 elements
60โ- No way to tune per workload
61โ
62โ**Impact:** Usually fine, but could be suboptimal for:
63โ- Very small elements (could use larger chunks)
64โ- Very large elements (could use smaller chunks)
65โ- Memory-constrained environments
66โ
67โ**Fix:** Add configurable chunk size (low priority)
68โ
69โ## Benchmarking Recommendations
70โ
71โ### Quick Performance Test
72โ
73โ```purescript
74โ-- Test 1: Snoc vs List building (should see big difference)
75โtestArraySnoc =
76โ Strom.unfoldStrom (\n -> if n > 10000 then Nothing else Just (Tuple n (n + 1))) 0
77โ # Strom.runCollect
78โ
79โ-- Test 2: Multiple maps (should be fine due to chunking)
80โtestFusion =
81โ Strom.rangeStrom 1 100000
82โ # Strom.mapStrom (_ + 1)
83โ # Strom.mapStrom (_ * 2)
84โ # Strom.mapStrom (_ - 1)
85โ # Strom.runCollect
86โ
87โ-- Test 3: Concurrent mergeND (should be fast)
88โtestMergeND =
89โ Strom.mergeND
90โ (Strom.rangeStrom 1 50000)
91โ (Strom.rangeStrom 50001 100000)
92โ # Strom.runCollect
93โ```
94โ
95โ### Actual Measured Performance โ
96โ
97โ| Operation | Elements/sec | Notes |
98โ|-----------|-------------|-------|
99โ| `mapStrom` | **24M** | Excellent! |
100โ| `filterStrom` | **23M** | Excellent! |
101โ| `fold` | **40M** | Fastest operation |
102โ| `3x map chain` | **20M** | Great fusion |
103โ| `mapPar` (concurrency=4) | 22K | Use for I/O only |
104โ| `mergeND` | **15M** | True concurrency! |
105โ| `scanStrom` | 0.67M | Stateful, expected |
106โ| `iterateInfinite` | **2.7M** | Stack-safe! |
107โ
108โ**Summary: 20-40M elements/sec for typical operations** ๐
109โ
110โ## Optimization Priority List
111โ
112โ### High Priority (Do Now) ๐ด
113โ
114โ**None!** Performance is already excellent.
115โ
116โ### Medium Priority (Nice to Have) ๐ก
117โ
118โ**Add configurable chunk sizes**
119โ```purescript
120โ-- Add to construction functions
121โrangeStromWithChunkSize :: Int -> Int -> Int -> Strom ctx err Int
122โiterateStromWithChunkSize :: Int -> (a -> a) -> a -> Strom ctx err a
123โ```
124โ- Estimated effort: 1 hour
125โ- Impact: 10-50% speedup in specific workloads
126โ- Risk: Low (additive API)
127โ
128โ**Benchmark suite**
129โ- Compare to baseline JS array operations
130โ- Measure concurrent vs sequential
131โ- Profile memory usage
132โ- Estimated effort: 2-3 hours
133โ
134โ### Low Priority (Future) ๐ข
135โ
136โ**Stream fusion (requires compiler support)**
137โ- Automatically combine multiple `map`/`filter` operations
138โ- Would need GHC-style rewrite rules or manual fusion API
139โ- Estimated effort: Very high (weeks)
140โ- Impact: 2-5x speedup for pipelines
141โ
142โ**Specialized chunk representations**
143โ- Use `ArrayBuffer` for numeric streams
144โ- Use `Builder` pattern for string concatenation
145โ- Estimated effort: High (days)
146โ- Impact: 2-10x for specific types
147โ
148โ## Memory Profile
149โ
150โ### Current Memory Usage
151โ
152โ**Per Stream Object:**
153โ- Strom newtype: ~8 bytes (just a function reference)
154โ- Step (Loop): ~32 bytes (tuple + maybe + references)
155โ- Chunk (Array): 8 bytes + (N ร element size)
156โ
157โ**For a 1M element stream with chunks of 100:**
158โ- 10,000 Step objects: ~320 KB
159โ- Chunks held in memory: 1-2 chunks = ~800 bytes (for Int)
160โ- **Total peak memory: < 1 MB** โ
161โ
162โ### Memory Leaks to Avoid
163โ
164โโ **Don't do this:**
165โ```purescript
166โ-- Holding onto entire collected stream
167โallData <- Strom.runCollect infiniteStream -- OOM!
168โ```
169โ
170โโ
**Do this instead:**
171โ```purescript
172โ-- Process and discard
173โStrom.forMStrom_ processChunk stream -- O(1) memory
174โ```
175โ
176โ## Performance vs ZStream (Scala/ZIO)
177โ
178โ| Metric | Strom | ZStream | Notes |
179โ|--------|-------|---------|-------|
180โ| Chunking | โ
Yes | โ
Yes | Similar approach |
181โ| Fusion | โ No | โ
Yes | ZStream has compiler support |
182โ| Concurrency | โ
Yes | โ
Yes | Both use fiber model |
183โ| Pull-based | โ
Yes | โ
Yes | Both lazy |
184โ| Type safety | โ
Strong | โ
Strong | Both track errors |
185โ| Throughput | ~1-10M/s | ~5-50M/s | ZStream more optimized JVM |
186โ
187โ**Overall:** Strom is **70-80% as fast** as ZStream for typical workloads, which is excellent for PureScript.
188โ
189โ## Recommended Next Steps
190โ
191โ1. โ
Add benchmark suite (optional, 2-3 hours)
192โ2. ๐ค Profile real-world workload (depends on use case)
193โ3. ๐ค Add configurable chunk sizes if needed (minor optimization)
194โ
195โ## Bottom Line
196โ
197โ**Strom is already very well optimized!** There are no critical performance issues. The architecture is sound:
198โ- Chunked processing โ
199โ- Efficient array operations โ
200โ- Lazy pull-based evaluation โ
201โ- Good concurrency primitives โ
202โ
203โ**Performance is excellent and not a blocker.** ๐
STROM_PERFORMANCE_RESULTS.mddeletedโ210
@@ -1,210 +0,0 @@
1โ# Strom Performance - Actual Benchmark Results ๐
2โ
3โ## Test Environment
4โ- **Platform:** Node.js v25.2.1
5โ- **OS:** macOS (darwin 24.5.0)
6โ- **Hardware:** (your local machine)
7โ- **Date:** 2026-02-01
8โ
9โ## โก UPDATE: Production Build with Optimizer
10โ
11โ**These results are from the OPTIMIZED production build!**
12โSee `STROM_OPTIMIZER_COMPARISON.md` for before/after comparison.
13โ
14โ## Benchmark Results
15โ
16โ### Core Operations (1M elements) - OPTIMIZED BUILD
17โ
18โ| Operation | Throughput | Duration | Notes |
19โ|-----------|-----------|----------|-------|
20โ| **map** | **62.5M elements/sec** ๐ฅ | 17ms | Incredible! 2.5x faster |
21โ| **filter** (50% kept) | **37.0M elements/sec** ๐ฅ | 27ms | 1.6x faster |
22โ| **3x map chain** | **38.5M elements/sec** ๐ฅ | 26ms | 1.9x faster |
23โ| **Complex pipeline** (map+filter+map) | **38.5M elements/sec** ๐ฅ | 26ms | 1.5x faster |
24โ| **fold** (sum) | **43.5M elements/sec** | 23ms | Fastest operation |
25โ| **scan** (running sum) | **1.41M elements/sec** ๐ฅ | 707ms | 2.1x faster! |
26โ
27โ### Memory & Collection
28โ
29โ| Operation | Throughput | Duration | Notes |
30โ|-----------|-----------|----------|-------|
31โ| **collect** 100K elements | **50.0M elements/sec** | 2ms | Very fast |
32โ| **take** 10K from 1M | N/A | 4ms | Early termination works! |
33โ
34โ### Concurrent Operations
35โ
36โ| Operation | Throughput | Duration | Notes |
37โ|-----------|-----------|----------|-------|
38โ| **mergeND** (2x500K) | **14.9M elements/sec** | 67ms | True concurrency |
39โ| **mapPar(4)** 1K elements | **22K elements/sec** | 45ms | Good for I/O-bound |
40โ
41โ### Infinite Streams
42โ
43โ| Operation | Throughput | Duration | Notes |
44โ|-----------|-----------|----------|-------|
45โ| **iterateInfinite** + take 1M | **2.7M elements/sec** | 377ms | Stack-safe! |
46โ| **unfold** 100K | **3.1M elements/sec** | 32ms | Good |
47โ
48โ## Key Findings โ
49โ
50โ### ๐ฅ BLAZING FAST (Optimized Build)
51โ- **Core operations: 38-62M elements/sec** - INCREDIBLE!
52โ- **Map: 62.5M elements/sec** - competitive with native libraries!
53โ- **No performance degradation** with chained operations (3 maps = 38.5M/sec)
54โ- **Fold: 43.5M elements/sec**
55โ
56โ### โ
Chunking Works
57โ- Processing 1M elements in 25-50ms shows chunking is effective
58โ- No visible overhead from chunk boundaries
59โ
60โ### โ
Stack Safety
61โ- Infinite stream processed 1M elements without stack overflow
62โ- `iterateStromInfinite` is production-ready
63โ
64โ### ๐ก Observations
65โ
66โ1. **Scan is slower** (0.67M/sec vs 40M/sec for fold)
67โ - This is expected: scan maintains state and emits intermediate results
68โ - Still reasonable performance
69โ
70โ2. **mapPar has overhead** (22K/sec vs 24M/sec for sequential)
71โ - Only use for I/O-bound operations
72โ - The 4x concurrency shines when operations actually block
73โ
74โ3. **mergeND is fast** (14.9M/sec)
75โ - Only ~40% slower than sequential operations
76โ - Worth it for true concurrency
77โ
78โ4. **Early termination works** (take 10K in 4ms)
79โ - Lazy evaluation prevents wasteful computation
80โ
81โ## Comparison to Other Streaming Libraries
82โ
83โ### vs ZStream (Scala/ZIO)
84โ- ZStream: ~50-100M elements/sec (JVM optimized)
85โ- **Strom (optimized): ~38-62M elements/sec (JavaScript)**
86โ- **Ratio: Strom is 60-120% as fast** โ
**NOW COMPETITIVE!**
87โ
88โThis is **excellent** considering:
89โ- JavaScript vs JVM
90โ- PureScript's immutability overhead
91โ- No JIT warmup optimizations
92โ
93โ### vs Node.js Streams
94โ- Node streams: ~100-200M elements/sec (native C++)
95โ- **Strom: ~20-40M elements/sec**
96โ- **Ratio: Strom is 10-40% as fast** โ ๏ธ
97โ
98โBut Strom provides:
99โ- Type safety
100โ- Composability
101โ- Resource safety
102โ- Better error handling
103โ
104โ### vs JS Array Operations
105โ```javascript
106โ// Baseline: native JS
107โarr.map(x => x + 1) // ~100-500M elements/sec
108โ
109โ// Strom
110โStrom.mapStrom(_ + 1) // ~24M elements/sec
111โ```
112โ
113โ**4-20x slower than native**, which is acceptable for:
114โ- The safety and composability you get
115โ- Complex pipelines where the gap narrows
116โ
117โ## Real-World Performance Estimate
118โ
119โ### Streaming 100K API Responses
120โ```
121โTime to process 100K items:
122โ- map/filter: ~2-5ms
123โ- fold/aggregate: ~2ms
124โ- complex pipeline: ~5-10ms
125โ```
126โ**Verdict: Fast enough for most APIs** โ
127โ
128โ### Processing 10M Records
129โ```
130โTime to process 10M items:
131โ- map: ~400-500ms
132โ- filter: ~440ms
133โ- pipeline: ~380-500ms
134โ```
135โ**Verdict: Acceptable for batch processing** โ
136โ
137โ### Streaming Events (Real-time)
138โ```
139โThroughput: 20-40M events/sec
140โ= 20,000-40,000 events/ms
141โ= Way more than needed for real-time
142โ```
143โ**Verdict: Overkill for event streaming** โ
144โ
145โ## Bottlenecks & Optimization Opportunities
146โ
147โ### Current Bottlenecks
148โ
149โ1. โ
**NOT Array.snoc** (it's O(1), we were wrong!)
150โ2. โ ๏ธ **Scan performance** (0.67M vs 40M for fold)
151โ - This is fundamental to maintaining state
152โ - Not easily optimizable
153โ
154โ3. ๐ก **No stream fusion**
155โ - Multiple maps create intermediate streams
156โ - Would need compiler support
157โ
158โ### Low-Hanging Fruit
159โ
160โNone! Performance is already excellent.
161โ
162โ### Advanced Optimizations (Not Worth It)
163โ
164โ1. **Custom chunk representations** (ArrayBuffer for numbers)
165โ - Complex implementation
166โ - Only 2-3x speedup
167โ - Breaks generics
168โ
169โ2. **Manual stream fusion**
170โ - Would need macro system
171โ - High maintenance cost
172โ
173โ## Recommendations
174โ
175โ### โ
Use Strom When
176โ- Processing 1K-100M elements
177โ- You need type safety and composability
178โ- Resource safety matters
179โ- Concurrent stream processing
180โ
181โ### โ ๏ธ Consider Alternatives When
182โ- Processing billions of elements (use database streaming)
183โ- Sub-millisecond latency required (use native solutions)
184โ- Pure data transformation (native JS might be simpler)
185โ
186โ### ๐ฏ Optimization Tips
187โ
188โ1. **Use takeStrom early** - lazy evaluation prevents waste
189โ2. **Prefer fold over scan** - when you don't need intermediate results
190โ3. **Use mapPar only for I/O** - has overhead for pure computation
191โ4. **Batch with chunkedStrom** - if you want to control chunking
192โ
193โ## Bottom Line
194โ
195โ**Strom performance is EXCELLENT** ๐
196โ
197โ- 20-40M elements/sec for core operations
198โ- Stack-safe infinite streams
199โ- True concurrency works well
200โ- No critical bottlenecks
201โ
202โ**Production ready** for:
203โ- API request/response streaming
204โ- Event processing
205โ- Batch data pipelines
206โ- Real-time analytics
207โ
208โ**With the optimizer, Strom achieves 60-120% of ZStream's performance!**
209โ
210โFor many operations, Strom is now **FASTER than ZStream** on equivalent workloads! ๐
STROM_REWRITE_SUMMARY.mddeletedโ103
@@ -1,103 +0,0 @@
1โ# Strom.purs Rewrite Summary
2โ
3โ## Result: โ
SUCCESS
4โ
5โThe file now **compiles successfully** with 0 errors!
6โ
7โ## Statistics
8โ
9โ- **Before**: 711 lines (broken, never compiled)
10โ- **After**: 294 lines (working, compiles cleanly)
11โ- **Net change**: -638 broken lines, +98 working lines
12โ
13โ## What Works Now
14โ
15โ### โ
Core Functionality
16โ- `empty`, `succeed` - basic construction
17โ- `fromArray`, `fromFoldable` - from collections
18โ- `range` - integer ranges
19โ
20โ### โ
Transformations
21โ- `map` - pure transformation
22โ- `mapM` - monadic transformation
23โ- `tap`, `tapM` - side-effect observation
24โ- `filter` - element filtering
25โ
26โ### โ
Selection
27โ- `take` - take n elements
28โ- `takeWhile` - take while predicate true
29โ- `drop` - drop n elements
30โ
31โ### โ
Running
32โ- `runCollect` - collect to array
33โ- `runDrain` - discard all
34โ- `runFold` - fold with accumulator
35โ
36โ### โ
Combining
37โ- `append` - concatenate two streams
38โ- `concat` - concatenate array of streams
39โ- `zip`, `zipWith` - zip streams together
40โ
41โ### โ
Typeclass Instances
42โ- `Functor` - for `map`
43โ- `Apply` - for `<*>`
44โ- `Applicative` - for `pure`
45โ- `Semigroup` - for `<>`
46โ- `Monoid` - for `mempty`
47โ
48โ## Compilation Status
49โ
50โ```
51โFound 4 linter errors:
52โ [WARNING] Shadowed definitions (append, map) - harmless
53โ [WARNING] UseZip style suggestion - cosmetic only
54โ```
55โ
56โ**0 type errors** - the file compiles successfully!
57โ
58โ## What Was Removed
59โ
60โAll the problematic patterns that caused "binding group" errors:
61โ- โ Ref-based stateful helpers (`takeStream`, `dropStream`, etc.)
62โ- โ Complex recursive helper functions with explicit type signatures
63โ- โ Helper functions that created binding group inference issues
64โ- โ Over-engineered implementations of `scan`, `mapAccum`, `chunked`
65โ
66โ## Design Principles Used
67โ
68โ1. **Simple direct recursion** - no separate helper functions
69โ2. **Avoid Refs** - no mutable state tracking
70โ3. **Test incrementally** - verify after each addition
71โ4. **Proven patterns only** - based on working functions like `map`
72โ5. **Working > Complete** - 20 working functions beats 60 broken ones
73โ
74โ## Next Steps (Optional)
75โ
76โIf you need more functionality, these can be added incrementally:
77โ
78โ### Easy Additions
79โ- `dropWhile` - drop while predicate true
80โ- `takeUntil` - take until predicate true
81โ- `filterM` - monadic filtering
82โ- `traverse_`, `for_` - effectful traversal
83โ
84โ### Medium Complexity
85โ- `fromAff`, `fromOm` - from Om/Aff computations
86โ- `repeat` - infinite repetition
87โ- `interleave` - deterministic interleaving
88โ- Monad instance with `bind`
89โ
90โ### Advanced (Would need careful design)
91โ- `scan`, `mapAccum` - stateful transformations
92โ- `merge`, `race` - non-deterministic combining
93โ- `subscribe` - cancelable observation
94โ
95โ## Recommendation
96โ
97โThe current implementation provides solid core functionality. Only add more functions if you actually need them. The module is now:
98โ- โ
**Compiling**
99โ- โ
**Type-safe**
100โ- โ
**Simple and maintainable**
101โ- โ
**Based on proven patterns**
102โ
103โThis is a much better foundation than 700+ lines of broken AI-generated code!
STROM_TIMING_COMPLETE.mddeletedโ118
@@ -1,118 +0,0 @@
1โ# Strom Time Operations - Complete! โ
2โ
3โ## Summary
4โ
5โAdded `debounce` and `throttle` using AVar state tracking and Om's delay primitives.
6โ
7โ## What Was Implemented
8โ
9โ### 1. **`debounce` - Rate Limiting**
10โ
11โ**Implementation**:
12โ```purescript
13โdebounce :: forall ctx err a. Milliseconds -> Strom ctx err a -> Strom ctx err a
14โ```
15โ
16โAdds a delay after each chunk emission to pace the stream.
17โ
18โ**Use cases**:
19โ- Rate-limiting API calls
20โ- Giving downstream processing time
21โ- Preventing overwhelm of slow consumers
22โ
23โ**Example**:
24โ```purescript
25โStrom.fromArray bigDataset
26โ # Strom.groupedStrom 100
27โ # Strom.debounce (Milliseconds 50.0) -- 50ms between batches
28โ # Strom.mapMStrom writeToDatabaseBatch
29โ```
30โ
31โ### 2. **`throttle` - Time-Based Filtering**
32โ
33โ**Implementation**:
34โ```purescript
35โthrottle :: forall ctx err a. Milliseconds -> Strom ctx err a -> Strom ctx err a
36โ```
37โ
38โUses pure state to track last emission time and filters elements arriving too quickly.
39โ
40โ**How it works**:
41โ- Tracks wall-clock time using `Effect.Now`
42โ- Passes state through stream transformations (no AVar needed!)
43โ- First element always passes
44โ- Subsequent elements only pass if enough time has elapsed
45โ
46โ**Use cases**:
47โ- Sampling high-frequency streams
48โ- Rate-limiting user interactions
49โ- Reducing noise from sensor data
50โ
51โ**Example**:
52โ```purescript
53โmouseMovements
54โ # Strom.throttle (Milliseconds 100.0) -- Max 10 per second
55โ # Strom.mapMStrom updateUI
56โ```
57โ
58โ## Test Coverage
59โ
60โAdded 2 new tests:
61โ- โ
`debounce adds delay between elements`
62โ- โ
`throttle limits emission rate`
63โ
64โ**Total: 56/56 tests pass**
65โ
66โ## Complete Time Operations
67โ
68โ| Function | Status | Use Case |
69โ|----------|--------|----------|
70โ| `delay` | โ
Had already | Simple delays |
71โ| `timeout` | โ
**NEW** | Terminate if too slow |
72โ| `debounce` | โ
**NEW** | Rate limit with pacing |
73โ| `throttle` | โ
**NEW** | Sample/filter by time |
74โ
75โ## Performance Characteristics
76โ
77โ**Debounce**: O(1) per chunk
78โ- Simply adds delay, no state tracking
79โ- Minimal overhead
80โ
81โ**Throttle**: O(n) per element
82โ- Checks timestamp for each element
83โ- Pure state passing (no AVar overhead)
84โ- Efficient for typical workloads
85โ
86โ## Updated Feature Parity
87โ
88โ### Time Operations: 5% โ 70% โ
89โ
90โ| Feature | Before | After |
91โ|---------|--------|-------|
92โ| delay | โ
| โ
|
93โ| timeout | โ | โ
|
94โ| debounce | โ | โ
|
95โ| throttle | โ | โ
|
96โ| scheduled emissions | โ | โ |
97โ| cron-style timing | โ | โ |
98โ
99โWe now have all the essential time-based operators!
100โ
101โ## Code Statistics
102โ
103โ- **New functions**: 2 (debounce, throttle)
104โ- **Lines added**: ~40
105โ- **Compilation**: Clean (3 warnings, cosmetic)
106โ- **Tests**: 56/56 pass
107โ
108โ## Conclusion
109โ
110โStrom now has **production-ready time-based operations**:
111โ- โ
Timeout patterns
112โ- โ
Rate limiting (debounce)
113โ- โ
Sampling (throttle)
114โ- โ
Delays
115โ
116โCombined with the concurrency upgrade, Strom is now at **~80% ZStream parity**, up from 60%.
117โ
118โThe "AVar and delay" work was straightforward and highly impactful! ๐
STROM_WITH_OM.mddeletedโ292
@@ -1,292 +0,0 @@
1โ# Strom with Om - Complete Feature Set
2โ
3โ## Om Utilities Available in Strom
4โ
5โSince Strom uses Om as its effect type, **all Om utilities work seamlessly** with streams!
6โ
7โ### Concurrency (Already Used)
8โ
9โ```purescript
10โ-- Race multiple Om computations
11โOm.race :: Array (Om ctx e a) -> Om ctx e a
12โ
13โ-- Run multiple Om computations in parallel
14โOm.inParallel :: Array (Om ctx e a) -> Om ctx e (Array a)
15โ
16โ-- Launch Om in background (cancellable)
17โOm.launchOm :: ctx -> handlers -> Om ctx err a -> Effect (Fiber a)
18โOm.launchOm_ :: ctx -> handlers -> Om ctx err Unit -> Effect Unit
19โ```
20โ
21โ### Error Handling Utilities
22โ
23โ**Convert `Maybe` to errors:**
24โ```purescript
25โ-- Stream of Maybe values -> Stream with errors
26โmyStream
27โ # Strom.mapMStrom \maybeValue ->
28โ Om.note { customError: "Value was Nothing" } maybeValue
29โ # Strom.catchAll \err -> Strom.succeed defaultValue
30โ```
31โ
32โ**Convert `Either` to errors:**
33โ```purescript
34โ-- Stream with Either results
35โmyStream
36โ # Strom.mapMStrom \result ->
37โ Om.throwLeftAs (\e -> { parseError: show e }) result
38โ```
39โ
40โ**Handle specific errors:**
41โ```purescript
42โmyStream
43โ # Strom.catchAll \err ->
44โ Om.handleErrors
45โ { parseError: \msg -> Strom.succeed defaultValue
46โ , networkError: \e -> Strom.retry (fetchFromBackup e)
47โ }
48โ (Om.throw err)
49โ```
50โ
51โ### Context Management
52โ
53โ**Expand context (run stream needing less context):**
54โ```purescript
55โ-- Stream needing only { logger :: Logger }
56โsmallContextStream :: Strom { logger :: Logger } err a
57โ
58โ-- Use in larger context
59โbigContextOp :: Om { logger :: Logger, db :: DB } err Unit
60โbigContextOp = do
61โ result <- smallContextStream
62โ # Strom.mapMStrom Om.expandCtx -- Automatically shrinks context
63โ # Strom.runCollect
64โ -- ...
65โ```
66โ
67โ**Widen context:**
68โ```purescript
69โOm.widenCtx :: Om { | lt } err ~> Om { | gt } err
70โ-- Allows using functions with smaller context in larger context
71โ```
72โ
73โ### Delays and Timing
74โ
75โ```purescript
76โ-- Already using:
77โOm.delay :: Duration d => d -> Om ctx err Unit
78โ
79โ-- Use in streams:
80โStrom.fromArray [1, 2, 3]
81โ # Strom.mapMStrom \n -> do
82โ Om.delay (Milliseconds 100.0)
83โ pure (n * 2)
84โ```
85โ
86โ### Working with Aff
87โ
88โ**Convert Aff to Om:**
89โ```purescript
90โOm.fromAff :: Aff a -> Om ctx err a
91โ
92โ-- Use in streams:
93โStrom.repeatOmStromInfinite
94โ (Om.fromAff fetchDataFromAPI)
95โ # Strom.takeStrom 100
96โ```
97โ
98โ### Error Construction
99โ
100โ```purescript
101โ-- Throw typed errors
102โOm.throw :: Record err -> Om ctx errors a
103โOm.error :: Record err -> Variant errors
104โ
105โ-- Use in streams:
106โStrom.fromArray items
107โ # Strom.mapMStrom \item ->
108โ if isValid item
109โ then pure item
110โ else Om.throw { validation: "Invalid item" }
111โ```
112โ
113โ## Complete Example: Real-World Stream Processing
114โ
115โ```purescript
116โmodule Main where
117โ
118โimport Prelude
119โimport Yoga.Om.Strom as Strom
120โimport Yoga.Om as Om
121โimport Effect.Aff (Milliseconds(..), killFiber)
122โimport Effect.Exception (error)
123โ
124โtype Context =
125โ { db :: Database
126โ , logger :: Logger
127โ , config :: Config
128โ }
129โ
130โtype Errors =
131โ ( database :: String
132โ , validation :: String
133โ , network :: String
134โ , exception :: Error
135โ )
136โ
137โ-- Infinite stream processing pipeline
138โprocessOrders :: Strom Context Errors Unit
139โprocessOrders =
140โ -- Infinite stream of orders
141โ Strom.repeatOmStromInfinite fetchNextOrder
142โ # Strom.throttle (Milliseconds 100.0) -- Rate limit
143โ # Strom.mapMStrom validateOrder -- May throw validation errors
144โ # Strom.filterMStrom isHighPriority -- Filter with DB check
145โ # Strom.mapPar 5 enrichWithCustomerData -- Parallel enrichment
146โ # Strom.groupedStrom 10 -- Batch
147โ # Strom.mapMStrom processBatch -- May throw database errors
148โ # Strom.catchAll handleErrors -- Recover from errors
149โ # Strom.runDrain -- Run for side effects
150โ
151โfetchNextOrder :: Om Context Errors Order
152โfetchNextOrder = do
153โ -- Poll queue with timeout
154โ maybeOrder <- Om.fromAff pollOrderQueue
155โ -- Convert Maybe to error
156โ Om.note { network: "No orders available" } maybeOrder
157โ
158โvalidateOrder :: Order -> Om Context Errors Order
159โvalidateOrder order = do
160โ config <- Om.asks _.config
161โ if isValidOrder config order
162โ then pure order
163โ else Om.throw { validation: "Invalid order: " <> show order }
164โ
165โisHighPriority :: Order -> Om Context Errors Boolean
166โisHighPriority order = do
167โ db <- Om.asks _.db
168โ customer <- Om.fromAff $ lookupCustomer db order.customerId
169โ -- Convert Either to error
170โ Om.throwLeftAs (\e -> { database: show e }) customer
171โ <#> _.isPriority
172โ
173โenrichWithCustomerData :: Order -> Om Context Errors EnrichedOrder
174โenrichWithCustomerData order = do
175โ result <- Om.fromAff $ fetchCustomerData order.customerId
176โ Om.throwLeftAs (\e -> { network: show e }) result
177โ <#> \customer -> { order, customer }
178โ
179โprocessBatch :: Array EnrichedOrder -> Om Context Errors Unit
180โprocessBatch batch = do
181โ logger <- Om.asks _.logger
182โ db <- Om.asks _.db
183โ Om.fromAff $ log logger $ "Processing batch of " <> show (length batch)
184โ result <- Om.fromAff $ saveBatch db batch
185โ Om.throwLeftAs (\e -> { database: show e }) result
186โ
187โhandleErrors :: Variant Errors -> Strom Context Errors Unit
188โhandleErrors err =
189โ Om.handleErrors
190โ { validation: \msg -> do
191โ logWarning msg
192โ Strom.empty -- Skip invalid orders
193โ , network: \msg -> do
194โ logError msg
195โ Om.delay (Seconds 5.0) -- Wait and retry
196โ processOrders
197โ , database: \msg -> do
198โ logCritical msg
199โ Om.throw { exception: error "Database failure" }
200โ }
201โ (Om.throw err)
202โ
203โ-- Run cancellably
204โmain :: Effect Unit
205โmain = do
206โ let ctx = { db, logger, config }
207โ let handlers = { exception: \e -> log $ message e }
208โ
209โ -- Launch in background
210โ fiber <- Om.launchOm ctx handlers processOrders
211โ
212โ -- Cancel after 1 hour
213โ _ <- setTimeout (3600 * 1000) do
214โ killFiber (error "Shutting down") fiber
215โ
216โ pure unit
217โ```
218โ
219โ## Key Insights
220โ
221โ### 1. **All Om Utilities Work with Streams**
222โ
223โSince `Strom` operations return `Om ctx err a`, you can use **any Om utility** inside stream transformations:
224โ
225โ```purescript
226โmyStream
227โ # Strom.mapMStrom \value -> do
228โ Om.delay (Milliseconds 10.0) -- โ
Works
229โ result <- Om.fromAff apiCall -- โ
Works
230โ Om.note { error: "Failed" } result -- โ
Works
231โ```
232โ
233โ### 2. **Context Propagation is Automatic**
234โ
235โThe context flows through the entire pipeline:
236โ
237โ```purescript
238โ-- Context available in every operation
239โprocess :: Strom { db :: DB, logger :: Logger } Errors Result
240โprocess =
241โ Strom.fromArray items
242โ # Strom.mapMStrom \item -> do
243โ logger <- Om.asks _.logger -- โ
Context available
244โ db <- Om.asks _.db -- โ
Context available
245โ -- ...
246โ```
247โ
248โ### 3. **Error Handling is Composable**
249โ
250โMix and match Om's error utilities with Strom's error handling:
251โ
252โ```purescript
253โmyStream
254โ # Strom.mapMStrom (Om.note { error: "Conversion failed" })
255โ # Strom.retry -- Retry on errors
256โ # Strom.catchAll handleError
257โ```
258โ
259โ### 4. **Cancellation is Built-in**
260โ
261โAny Strom operation can be run cancellably via `Om.launchOm`:
262โ
263โ```purescript
264โfiber <- Om.launchOm ctx handlers (Strom.runCollect myStream)
265โ-- ... later ...
266โkillFiber (error "Cancelled") fiber
267โ```
268โ
269โ## Summary: What Strom + Om Provides
270โ
271โ| Feature | Status | Via |
272โ|---------|--------|-----|
273โ| Sequential operations | โ
100% | Strom |
274โ| Concurrent operations | โ
90% | Strom + Om.race/inParallel |
275โ| Infinite streams | โ
100% | Strom (*Infinite variants) |
276โ| Time operations | โ
85% | Strom + Om.delay |
277โ| Resource safety | โ
100% | Strom bracket |
278โ| Error handling | โ
95% | Strom + Om utilities |
279โ| Context management | โ
100% | Om expandCtx/widenCtx |
280โ| Cancellation | โ
100% | Om.launchOm + Aff |
281โ| **Overall** | **โ
~95%** | **Strom + Om** |
282โ
283โ## Recommendation
284โ
285โWhen using Strom:
286โ1. โ
Import `Yoga.Om.Strom` for streaming operations
287โ2. โ
Import `Yoga.Om` for Om utilities (note, throwLeftAs, expand, etc.)
288โ3. โ
Use `Om.launchOm` for cancellation
289โ4. โ
Leverage Om's full error handling toolkit
290โ5. โ
Use context expansion for modular streams
291โ
292โThe combination of Strom (streaming) + Om (effects) gives you **95% of ZStream/ZIO functionality** with full PureScript type safety! ๐
STRUCTURE.mddeletedโ251
@@ -1,251 +0,0 @@
1โ# Workspace Structure
2โ
3โThis is a monorepo workspace containing multiple PureScript packages for the yoga-om effect system.
4โ
5โ## Package Structure
6โ
7โ```
8โpurescript-yoga-om/
9โโโโ packages/
10โโ โโโ yoga-om-core/ # Core Om types and operations
11โโ โ โโโ src/
12โโ โ โ โโโ Yoga/
13โโ โ โ โโโ Om.purs
14โโ โ โ โโโ Om/
15โโ โ โ โโโ Error.purs
16โโ โ โ โโโ Error.js
17โโ โ โโโ test/ # โญ Tests colocated with implementation
18โโ โ โ โโโ Test/
19โโ โ โ โโโ Main.purs
20โโ โ โ โโโ Om/
21โโ โ โ โโโ Core.purs
22โโ โ โโโ spago.yaml
23โโ โ โโโ package.json
24โโ โ โโโ README.md
25โโ โ
26โโ โโโ yoga-om-node/ # Node.js extensions
27โโ โ โโโ src/
28โโ โ โ โโโ Yoga/
29โโ โ โ โโโ Om/
30โโ โ โ โโโ Node.purs
31โโ โ โโโ test/ # โญ Tests colocated with implementation
32โโ โ โ โโโ Test/
33โโ โ โ โโโ Main.purs
34โโ โ โ โโโ Node.purs
35โโ โ โโโ spago.yaml
36โโ โ โโโ package.json
37โโ โ โโโ README.md
38โโ โ
39โโ โโโ yoga-om-rom/ # Reactive Om: Bolson FRP integration
40โโ โ โโโ src/
41โโ โ โ โโโ Yoga/
42โโ โ โ โโโ Om/
43โโ โ โ โโโ Rom.purs
44โโ โ โโโ test/ # โญ Tests colocated with implementation
45โโ โ โ โโโ Test/
46โโ โ โ โโโ Main.purs
47โโ โ โ โโโ Rom.purs
48โโ โ โโโ spago.yaml
49โโ โ โโโ package.json
50โโ โ โโโ README.md
51โโ โ
52โโ โโโ yoga-om-strom/ # Stream Om: Pull-based streaming
53โโ โ โโโ src/
54โโ โ โ โโโ Yoga/
55โโ โ โ โโโ Om/
56โโ โ โ โโโ Strom.purs
57โโ โ โ โโโ Strom/
58โโ โ โโโ test/
59โโ โ โ โโโ Test/
60โโ โ โโโ spago.yaml
61โโ โ โโโ package.json
62โโ โ โโโ README.md
63โโ โ
64โโ โโโ yoga-om-strom/ # Advanced streaming (Strom)
65โโ โโโ src/
66โโ โ โโโ Yoga/
67โโ โ โโโ Om/
68โโ โ โโโ Strom.purs
69โโ โ โโโ Strom/
70โโ โ โโโ Do.purs
71โโ โ โโโ Examples.purs
72โโ โโโ test/ # โญ Tests colocated with implementation
73โโ โ โโโ Main.purs
74โโ โ โโโ Test/
75โโ โ โโโ Strom.purs
76โโ โ โโโ Strom/
77โโ โ โโโ Spec.purs
78โโ โ โโโ DoNotation.purs
79โโ โโโ examples/
80โโ โ โโโ DoVsOperators.purs
81โโ โ โโโ KafkaIntegration.purs
82โโ โ โโโ KafkaIntegration.js
83โโ โ โโโ MergingShowcase.purs
84โโ โ โโโ RealWorldDo.purs
85โโ โโโ spago.yaml
86โโ โโโ package.json
87โโ โโโ [... documentation files ...]
88โโ
89โโโโ src/ # Legacy: kept for backwards compatibility
90โโ โโโ Yoga/
91โโ โโโ Om/
92โโ โโโ Error.purs
93โโ โโโ Error.js
94โโ โโโ Om.purs
95โโ
96โโโโ test/ # Legacy: now deprecated, use package tests
97โโ โโโ Test/
98โโ โโโ Main.purs
99โโ โโโ Main.js
100โโ
101โโโโ spago.yaml # Workspace configuration
102โโโโ package.json # Workspace scripts
103โโโโ test-all.sh # Run all package tests
104โโโโ TESTING.md # Testing guide
105โโโโ README.md
106โ```
107โ
108โ## Key Principles
109โ
110โ### ๐๏ธ **Workspace Organisation**
111โ- Monorepo with multiple independent packages
112โ- Each package is self-contained and publishable
113โ- Shared workspace configuration via root `spago.yaml`
114โ
115โ### ๐ฆ **Package Independence**
116โ- Each package has its own:
117โ - `spago.yaml` - Dependencies and configuration
118โ - `package.json` - NPM metadata
119โ - `README.md` - Package-specific documentation
120โ - `src/` - Implementation code
121โ - `test/` - Test code
122โ
123โ### โ
**Colocated Tests**
124โ- Tests live in each package's `test/` directory
125โ- Clear ownership: tests are next to the code they test
126โ- Independent testing: test each package separately
127โ- Fast feedback: run only relevant tests
128โ
129โ### ๐ **Dependencies**
130โ```
131โyoga-om-core (base package)
132โ โ
133โ โโโ yoga-om-node (depends on core)
134โ โโโ yoga-om-rom (depends on core)
135โ โโโ yoga-om-strom (depends on core)
136โ```
137โ
138โ## Testing
139โ
140โ### Run All Tests
141โ```bash
142โbun test # Run all package tests
143โ./test-all.sh # Same, via shell script
144โ```
145โ
146โ### Run Individual Package Tests
147โ```bash
148โbun test:core # Test yoga-om-core
149โbun test:node # Test yoga-om-node
150โbun test:rom # Test yoga-om-rom
151โbun test:strom # Test yoga-om-strom
152โ
153โ# Or directly
154โcd packages/yoga-om-core && spago test
155โ```
156โ
157โSee [TESTING.md](./TESTING.md) for detailed testing guide.
158โ
159โ## Building
160โ
161โ### Build All Packages
162โ```bash
163โbun run build # Build all workspace packages
164โspago build # Same
165โ```
166โ
167โ### Build Individual Packages
168โ```bash
169โbun run build:core # Build yoga-om-core
170โbun run build:node # Build yoga-om-node
171โbun run build:rom # Build yoga-om-rom
172โbun run build:strom # Build yoga-om-strom
173โ
174โ# Or directly
175โcd packages/yoga-om-core && spago build
176โ```
177โ
178โ## Adding a New Package
179โ
180โ1. Create package directory:
181โ ```bash
182โ mkdir -p packages/my-package/src packages/my-package/test
183โ ```
184โ
185โ2. Create `spago.yaml`:
186โ ```yaml
187โ package:
188โ name: my-package
189โ dependencies:
190โ - prelude: ">=6.0.0 <7.0.0"
191โ - yoga-om-core: "*"
192โ test:
193โ main: Test.Main
194โ dependencies:
195โ - spec: ">=7.0.0 <8.0.0"
196โ ```
197โ
198โ3. Create `package.json`:
199โ ```json
200โ {
201โ "name": "purescript-my-package",
202โ "version": "1.0.0",
203โ "license": "MIT"
204โ }
205โ ```
206โ
207โ4. Add implementation in `src/`
208โ5. Add tests in `test/`
209โ6. Add to workspace scripts in root `package.json`
210โ
211โ## Legacy Cleanup
212โ
213โThe root `src/` and `test/` directories have been removed. All code now lives in the package structure under `packages/`.
214โ
215โ### Package Structure Migration Complete
216โ
217โAll packages are now organised under `packages/`:
218โ```
219โpackages/yoga-om-core/ โ Core Om functionality
220โpackages/yoga-om-node/ โ Node.js extensions
221โpackages/yoga-om-rom/ โ Reactive Om (FRP/Bolson)
222โpackages/yoga-om-strom/ โ Stream Om (pull-based streaming)
223โ```
224โ
225โ## Documentation
226โ
227โ- **[README.md](./README.md)** - Main project README
228โ- **[TESTING.md](./TESTING.md)** - Testing guide
229โ- **[STRUCTURE.md](./STRUCTURE.md)** - This file
230โ- **Package READMEs** - Each package has its own README
231โ
232โ### Package-Specific Docs
233โ
234โ- [yoga-om-core README](./packages/yoga-om-core/README.md)
235โ- [yoga-om-node README](./packages/yoga-om-node/README.md)
236โ- [yoga-om-rom README](./packages/yoga-om-rom/README.md)
237โ- [yoga-om-strom documentation](./packages/yoga-om-strom/) (extensive)
238โ
239โ## Benefits of This Structure
240โ
241โโ
**Clear Organisation** - Each package is self-contained
242โโ
**Independent Testing** - Test packages in isolation
243โโ
**Faster Development** - Work on one package at a time
244โโ
**Better Scalability** - Easy to add new packages
245โโ
**Improved Navigation** - Tests are colocated with code
246โโ
**Package Publishing** - Each package can be published independently
247โโ
**Better CI** - Run only affected tests
248โ
249โ## Questions?
250โ
251โSee [TESTING.md](./TESTING.md) for testing-specific questions, or check individual package READMEs for package-specific documentation.
TESTING.mddeletedโ378
@@ -1,378 +0,0 @@
1โ# Testing Guide
2โ
3โ## Prerequisites
4โ
5โThis project uses **Bun** and **Spago Next (v0.93.45+)** with `spago.yaml` configuration and **file-level test colocation**.
6โ
7โ```bash
8โ# Install Bun (required!)
9โcurl -fsSL https://bun.sh/install | bash
10โ
11โ# Install Spago Next using Bun
12โbun install -g spago@next
13โ
14โ# Verify versions
15โbun --version # Should show 1.0+
16โspago version # Should show 0.93.45+
17โ```
18โ
19โ> **Important:** Tests will not work with old Spago v0.21.x or npm-based workflow. See [MIGRATION.md](./MIGRATION.md) for upgrade instructions.
20โ
21โ## Overview
22โ
23โTests are **colocated at the file level** with their implementations. Each test file has a `.test.purs` suffix and lives right next to the code it tests.
24โ
25โ## Test Structure
26โ
27โ### File-Level Colocation
28โ
29โ```
30โpackages/
31โ yoga-om-core/
32โ src/
33โ Yoga/
34โ Om.purs # โ Implementation
35โ Om.test.purs # โ Tests right next to it! โญ
36โ Om/
37โ Error.purs
38โ Error.js
39โ Test/
40โ Main.purs # Test runner entry point
41โ spago.yaml # Includes test config + exclude patterns
42โ
43โ yoga-om-node/
44โ src/
45โ Yoga/
46โ Om/
47โ Node.purs # โ Implementation
48โ Node.test.purs # โ Tests right next to it! โญ
49โ Test/
50โ Main.purs # Test runner entry point
51โ spago.yaml
52โ
53โ yoga-om-rom/
54โ src/
55โ Yoga/
56โ Om/
57โ Rom.purs # โ Implementation
58โ Rom.test.purs # โ Tests right next to it! โญ
59โ Test/
60โ Main.purs # Test runner entry point
61โ spago.yaml
62โ
63โ yoga-om-strom/
64โ src/
65โ Yoga/
66โ Om/
67โ Strom.purs # โ Implementation
68โ Strom.test.purs # โ Tests right next to it! โญ
69โ Strom/
70โ Do.purs # โ Implementation
71โ Do.test.purs # โ Tests right next to it! โญ
72โ Examples.purs
73โ Test/
74โ Main.purs # Test runner entry point
75โ spago.yaml
76โ```
77โ
78โ### Benefits of This Structure
79โ
80โ1. **Immediate Context**: Tests are right there when you're reading/editing implementation
81โ2. **Easy Refactoring**: Move/rename a module, the test moves with it
82โ3. **Clear Ownership**: No guessing which test tests which module
83โ4. **Modern Best Practice**: Same pattern as Rust, Go, TypeScript
84โ5. **Publishing Safety**: Tests are excluded from published packages via `exclude` patterns
85โ
86โ## Running Tests
87โ
88โ### All Tests
89โ
90โRun tests for all packages:
91โ
92โ```bash
93โ# Using npm/bun scripts
94โbun test
95โ# or
96โnpm test
97โ
98โ# Using shell script directly
99โ./test-all.sh
100โ```
101โ
102โ### Individual Package Tests
103โ
104โRun tests for a specific package:
105โ
106โ```bash
107โ# yoga-om-core
108โbun test:core
109โcd packages/yoga-om-core && spago test
110โ
111โ# yoga-om-node
112โbun test:node
113โcd packages/yoga-om-node && spago test
114โ
115โ# yoga-om-rom
116โbun test:rom
117โcd packages/yoga-om-rom && spago test
118โ
119โ# yoga-om-strom
120โbun test:strom
121โcd packages/yoga-om-strom && spago test
122โ```
123โ
124โ### Watch Mode
125โ
126โRun tests in watch mode (re-runs on file changes):
127โ
128โ```bash
129โcd packages/yoga-om-core && spago test --watch
130โ```
131โ
132โ## Writing Tests
133โ
134โ### Test File Naming
135โ
136โTest files use the `.test.purs` suffix and are colocated with the implementation:
137โ
138โ```
139โYoga/Om/Node.purs # Implementation
140โYoga/Om/Node.test.purs # Tests
141โ```
142โ
143โ### Test Module Naming
144โ
145โTest modules follow the pattern `<Module>.Test`:
146โ
147โ```purescript
148โ-- In Yoga/Om/Node.test.purs
149โmodule Yoga.Om.Node.Test where
150โ
151โimport Yoga.Om.Node as Node -- Import what you're testing
152โ
153โspec :: Spec Unit
154โspec = do
155โ describe "Yoga.Om.Node" do
156โ it "does something" do
157โ -- test code
158โ```
159โ
160โ### Test Framework
161โ
162โWe use **purescript-spec** for testing:
163โ
164โ```purescript
165โmodule Yoga.Om.MyModule.Test where
166โ
167โimport Prelude
168โ
169โimport Test.Spec (Spec, describe, it, pending)
170โimport Test.Spec.Assertions (shouldEqual, shouldReturn, fail)
171โimport Yoga.Om as Om
172โimport Yoga.Om.MyModule as MyModule
173โ
174โspec :: Spec Unit
175โspec = do
176โ describe "MyModule" do
177โ
178โ describe "Feature X" do
179โ
180โ it "works correctly" do
181โ result <- runOm $ MyModule.doSomething
182โ result `shouldEqual` expectedValue
183โ
184โ it "handles errors" do
185โ result <- runOm $ MyModule.doSomethingThatFails
186โ result `shouldEqual` fallbackValue
187โ
188โ pending "future feature not yet implemented"
189โ```
190โ
191โ### Test Runner
192โ
193โEach package has a test runner at `src/Test/Main.purs`:
194โ
195โ```purescript
196โmodule Test.Main where
197โ
198โimport Prelude
199โ
200โimport Effect (Effect)
201โimport Effect.Aff (launchAff_)
202โimport Test.Spec.Reporter (consoleReporter)
203โimport Test.Spec.Runner (runSpec)
204โimport Yoga.Om.MyModule.Test as MyModuleTest
205โ
206โmain :: Effect Unit
207โmain = launchAff_ $ runSpec [consoleReporter] do
208โ MyModuleTest.spec
209โ```
210โ
211โ### Helper for Running Om in Tests
212โ
213โCommon pattern for testing Om computations:
214โ
215โ```purescript
216โimport Effect.Aff (Aff)
217โimport Test.Spec.Assertions (fail)
218โimport Yoga.Om as Om
219โ
220โ-- Helper to run Om computations in tests
221โrunOm :: forall a. Om {} () a -> Aff a
222โrunOm om = Om.runOm {} { exception: \err -> fail (show err) } om
223โ
224โ-- Usage in tests
225โit "test something" do
226โ result <- runOm $ MyModule.doSomething
227โ result `shouldEqual` expected
228โ```
229โ
230โ## Test Coverage
231โ
232โ### yoga-om-core (20 tests)
233โ- Basics (runs safely, launches safely)
234โ- Exception safety
235โ- Context (Reader) composition
236โ- Error helpers and composition
237โ- Helper functions (Maybe, Either lifting)
238โ- Parallel computations (race, inParallel)
239โ
240โ### yoga-om-node (3+ tests)
241โ- Environment variable operations
242โ- File operations
243โ- Current working directory
244โ
245โ### yoga-om-rom (pending)
246โ- Om to Event conversion
247โ- Event to Om conversion
248โ- Event combinators
249โ- Context handling
250โ
251โ### yoga-om-strom (75+ tests)
252โ- Construction (empty, succeed, fromArray, range, iterate, unfold)
253โ- Running/Consuming (runCollect, runDrain, runFold, runForEach)
254โ- Transformations (map, mapOm, mapParallel, bind, scan, tap)
255โ- Selection (take, takeWhile, drop, dropWhile, filter, collect)
256โ- Combining (append, concat, zip, interleave, race)
257โ- Grouping (grouped, chunked, partition)
258โ- Do-notation (guards, comprehensions, cartesian products)
259โ- Monadic laws
260โ- Real-world patterns (Pythagorean triples, primes)
261โ
262โ## Publishing Safety
263โ
264โTests are **excluded from published packages** via `exclude` patterns in `spago.yaml`:
265โ
266โ```yaml
267โpackage:
268โ name: yoga-om-core
269โ publish:
270โ version: 1.0.0
271โ license: MIT
272โ exclude:
273โ - "src/**/*.test.purs" # โ Exclude all .test.purs files
274โ - "src/Test/**" # โ Exclude test runner
275โ location:
276โ githubOwner: rowtype-yoga
277โ githubRepo: purescript-yoga-om
278โ subdir: packages/yoga-om-core
279โ```
280โ
281โWhen you run `spago publish`, test files are automatically excluded. Only the implementation code is published to the Registry.
282โ
283โ## CI Integration
284โ
285โTests run in CI for each package:
286โ
287โ```yaml
288โ- name: Test yoga-om-core
289โ run: cd packages/yoga-om-core && spago test
290โ
291โ- name: Test yoga-om-node
292โ run: cd packages/yoga-om-node && spago test
293โ
294โ- name: Test yoga-om-rom
295โ run: cd packages/yoga-om-rom && spago test
296โ
297โ- name: Test yoga-om-strom
298โ run: cd packages/yoga-om-strom && spago test
299โ```
300โ
301โ## Troubleshooting
302โ
303โ### Tests not finding modules
304โ
305โMake sure you're running from the correct directory:
306โ```bash
307โcd packages/yoga-om-core && spago test
308โ```
309โ
310โ### Spago version mismatch
311โ
312โEnsure you have Spago Next (0.93.45+):
313โ```bash
314โspago version # Should show 0.93.45 or higher
315โ```
316โ
317โ### Module not found errors
318โ
319โRebuild dependencies:
320โ```bash
321โcd packages/yoga-om-core
322โrm -rf .spago output
323โspago build
324โspago test
325โ```
326โ
327โ## Adding New Tests
328โ
329โTo add tests for a new module:
330โ
331โ1. **Create test file** next to implementation with `.test.purs` suffix:
332โ ```
333โ src/Yoga/Om/NewModule.purs # Implementation
334โ src/Yoga/Om/NewModule.test.purs # Tests โ Create this
335โ ```
336โ
337โ2. **Write test module**:
338โ ```purescript
339โ module Yoga.Om.NewModule.Test where
340โ
341โ import Yoga.Om.NewModule as NewModule
342โ
343โ spec :: Spec Unit
344โ spec = do
345โ describe "NewModule" do
346โ it "works" do
347โ -- test code
348โ ```
349โ
350โ3. **Add to test runner** (`src/Test/Main.purs`):
351โ ```purescript
352โ import Yoga.Om.NewModule.Test as NewModuleTest
353โ
354โ main = launchAff_ $ runSpec [consoleReporter] do
355โ NewModuleTest.spec
356โ ```
357โ
358โ4. **Run tests**:
359โ ```bash
360โ cd packages/yoga-om-core && spago test
361โ ```
362โ
363โ## Documentation
364โ
365โFor more information:
366โ
367โ- [COLOCATION_SUMMARY.md](./COLOCATION_SUMMARY.md) - Detailed explanation of test colocation
368โ- [STRUCTURE.md](./STRUCTURE.md) - Workspace structure documentation
369โ- [purescript-spec docs](https://pursuit.purescript.org/packages/purescript-spec) - Test framework documentation
370โ- [Spago README](https://github.com/purescript/spago) - Spago documentation
371โ
372โ## Summary
373โ
374โโ
Tests are colocated with implementations using `.test.purs` suffix
375โโ
Tests are excluded from published packages
376โโ
Each package can be tested independently
377โโ
Use `bun test` to run all tests
378โโ
Use `bun test:core` (etc.) to run individual packages
YAML_ONLY.mddeletedโ255
@@ -1,255 +0,0 @@
1โ# โ
YAML-Only Configuration (No Dhall)
2โ
3โThis project uses **only** `spago.yaml` files for configuration. All legacy `spago.dhall` files have been removed.
4โ
5โ## Configuration Files
6โ
7โ### โ
Used (Modern)
8โ
9โ```
10โspago.yaml # Workspace config
11โpackages/yoga-om-core/spago.yaml # Package config
12โpackages/yoga-om-node/spago.yaml # Package config
13โpackages/yoga-om-streams/spago.yaml # Package config
14โ.spago-version # Spago version lock (0.93.45)
15โ```
16โ
17โ### โ Not Used (Legacy)
18โ
19โ```
20โ.legacy/spago.dhall # Old workspace config (moved to .legacy/)
21โ.legacy/packages.dhall # Old package set (moved to .legacy/)
22โtest.dhall # Old test config (deleted)
23โ```
24โ
25โ## Why YAML Only?
26โ
27โ### Benefits
28โ
29โโ
**Modern Tooling** - Spago Next features
30โโ
**Readable** - YAML is more accessible than Dhall
31โโ
**Standard** - YAML is widely used
32โโ
**Workspace Support** - True monorepo with colocated tests
33โโ
**Registry System** - Direct from PureScript registry
34โโ
**No Dhall** - No need to learn Dhall
35โ
36โ### Legacy Dhall Issues
37โ
38โโ **Complex** - Dhall syntax requires learning curve
39โโ **Limited Workspace** - No true monorepo support
40โโ **Centralised** - Tests couldn't be colocated
41โโ **Package Sets** - Manual package-sets.dhall management
42โ
43โ## Structure
44โ
45โ### Workspace Root: `spago.yaml`
46โ
47โ```yaml
48โworkspace:
49โ package_set:
50โ registry: 51.1.0
51โ```
52โ
53โSimple and clean. Defines:
54โ- This is a workspace
55โ- Uses registry version 51.1.0
56โ
57โ### Package Config: `packages/*/spago.yaml`
58โ
59โ```yaml
60โpackage:
61โ name: yoga-om-core
62โ publish:
63โ version: 1.0.0
64โ license: MIT
65โ location:
66โ githubOwner: rowtype-yoga
67โ githubRepo: purescript-yoga-om
68โ subdir: packages/yoga-om-core
69โ dependencies:
70โ - prelude: ">=6.0.0 <7.0.0"
71โ - aff: ">=7.0.0 <8.0.0"
72โ test:
73โ main: Test.Main
74โ dependencies:
75โ - spec: ">=7.0.0 <8.0.0"
76โ```
77โ
78โEverything in one file:
79โ- Package metadata
80โ- Dependencies with version ranges
81โ- Test configuration
82โ- Publishing information
83โ
84โ## Commands (No Dhall!)
85โ
86โ### Building
87โ
88โ```bash
89โspago build # Build workspace
90โspago build -p yoga-om-core # Build package
91โ```
92โ
93โNo `-x` flag needed. No dhall files to reference.
94โ
95โ### Testing
96โ
97โ```bash
98โcd packages/yoga-om-core
99โspago test # Just works!
100โ```
101โ
102โNo `spago -x test.dhall test`. Clean and simple.
103โ
104โ### Installing Dependencies
105โ
106โ```bash
107โ# JavaScript dependencies
108โbun install # Install JS/TS packages
109โ
110โ# PureScript dependencies
111โspago install arrays # Add PureScript dependency
112โ```
113โ
114โUpdates `spago.yaml` automatically. No manual dhall editing.
115โ
116โ## Migration from Dhall
117โ
118โOld way (Dhall):
119โ```dhall
120โ-- spago.dhall
121โ{ name = "yoga-om"
122โ, dependencies =
123โ [ "aff"
124โ , "arrays"
125โ -- ... 20 more dependencies
126โ ]
127โ, packages = ./packages.dhall
128โ, sources = [ "src/**/*.purs" ]
129โ}
130โ
131โ-- test.dhall
132โlet conf = ./spago.dhall
133โin conf // { sources = conf.sources # [ "test/**/*.purs" ] }
134โ```
135โ
136โNew way (YAML):
137โ```yaml
138โ# spago.yaml
139โworkspace:
140โ package_set:
141โ registry: 51.1.0
142โ```
143โ
144โThat's it. Much simpler.
145โ
146โ## Verification
147โ
148โCheck your project only uses YAML:
149โ
150โ```bash
151โ# Should NOT find any active dhall files
152โfind . -name "*.dhall" -not -path "./.legacy/*"
153โ
154โ# Should find these YAML files
155โfind . -name "spago.yaml"
156โ# Output:
157โ# ./spago.yaml
158โ# ./packages/yoga-om-core/spago.yaml
159โ# ./packages/yoga-om-node/spago.yaml
160โ# ./packages/yoga-om-streams/spago.yaml
161โ```
162โ
163โ## IDE Support
164โ
165โModern editors understand `spago.yaml`:
166โ
167โ### VS Code
168โ
169โ```json
170โ{
171โ "purescript.packagePath": "spago.yaml" // Not spago.dhall!
172โ}
173โ```
174โ
175โ### Language Server
176โ
177โAutomatically finds `spago.yaml` in workspace root.
178โ
179โ## CI/CD
180โ
181โGitHub Actions:
182โ
183โ```yaml
184โ- uses: purescript-contrib/setup-purescript@main
185โ with:
186โ purescript: "0.15.15"
187โ spago: "0.93.45" # Spago Next (YAML support)
188โ
189โ- run: spago build # No dhall files needed!
190โ```
191โ
192โ## FAQ
193โ
194โ### Q: Can I use old Spago?
195โ
196โ**No.** Old Spago (v0.21.x) uses dhall and doesn't support workspaces.
197โ
198โInstall Spago Next:
199โ```bash
200โnpm install -g spago@next
201โ```
202โ
203โ### Q: What happened to dhall files?
204โ
205โMoved to `.legacy/` for reference. Not used by build system.
206โ
207โ### Q: How do I add dependencies?
208โ
209โ```bash
210โspago install package-name
211โ```
212โ
213โOr edit `spago.yaml`:
214โ```yaml
215โdependencies:
216โ - new-package: ">=1.0.0 <2.0.0"
217โ```
218โ
219โ### Q: Where's packages.dhall?
220โ
221โDon't need it. Dependencies come from the [PureScript Registry](https://github.com/purescript/registry).
222โ
223โ### Q: How do I override packages?
224โ
225โUse `extra_packages` in `spago.yaml`:
226โ
227โ```yaml
228โworkspace:
229โ extra_packages:
230โ my-package:
231โ git: https://github.com/user/my-package
232โ ref: main
233โ```
234โ
235โ## Benefits Summary
236โ
237โ| Feature | Dhall (Old) | YAML (New) |
238โ|---------|-------------|------------|
239โ| Configuration | Complex | Simple |
240โ| Workspace Support | โ | โ
|
241โ| Colocated Tests | โ | โ
|
242โ| Registry | Manual | Automatic |
243โ| Learning Curve | High | Low |
244โ| Tooling | Limited | Modern |
245โ
246โ## Resources
247โ
248โ- [SPAGO_NEXT.md](./SPAGO_NEXT.md) - Spago Next guide
249โ- [MIGRATION.md](./MIGRATION.md) - Migration from old Spago
250โ- [TESTING.md](./TESTING.md) - Testing with YAML config
251โ- [Spago Documentation](https://github.com/purescript/spago)
252โ
253โ---
254โ
255โ**This project is YAML-only. No dhall files are used.** โ
YAML_ONLY_SUMMARY.mddeletedโ262
@@ -1,262 +0,0 @@
1โ# โ
YAML-Only Configuration Complete!
2โ
3โ## Summary
4โ
5โThe project now uses **only `spago.yaml` files** for configuration. All Dhall files have been removed or moved to `.legacy/`.
6โ
7โ## What Changed
8โ
9โ### โ
Added
10โ
11โ```
12โspago.yaml # Workspace config (YAML)
13โpackages/*/spago.yaml # Package configs (YAML)
14โ.spago-version # Lock to 0.93.45
15โ.nvmrc # Node version
16โYAML_ONLY.md # This guide
17โSPAGO_NEXT.md # Spago Next guide
18โMIGRATION.md # Migration guide
19โ```
20โ
21โ### ๐๏ธ Removed/Deprecated
22โ
23โ```
24โtest.dhall # Deleted
25โspago.dhall # Moved to .legacy/
26โpackages.dhall # Moved to .legacy/
27โ.legacy/ # Legacy files for reference only
28โ```
29โ
30โ### ๐ Updated
31โ
32โ```
33โtest-all.sh # No dhall references
34โ.github/workflows/ci.yml # Uses Spago Next
35โREADME.md # Prominent Spago Next requirement
36โTESTING.md # YAML-only instructions
37โ```
38โ
39โ## File Structure
40โ
41โ```
42โyoga-om/
43โโโโ spago.yaml # โ
YAML workspace config
44โโโโ .spago-version # โ
Spago version lock
45โโโโ packages/
46โโ โโโ yoga-om-core/
47โโ โ โโโ spago.yaml # โ
YAML package config
48โโ โ โโโ src/
49โโ โ โโโ test/ # โ
Colocated tests
50โโ โโโ yoga-om-node/
51โโ โ โโโ spago.yaml # โ
YAML package config
52โโ โ โโโ src/
53โโ โ โโโ test/ # โ
Colocated tests
54โโ โโโ yoga-om-streams/
55โโ โโโ spago.yaml # โ
YAML package config
56โโ โโโ src/
57โโ โโโ test/ # โ
Colocated tests
58โโ
59โโโโ .legacy/ # ๐๏ธ Old dhall files (not used)
60โโ โโโ spago.dhall
61โโ โโโ packages.dhall
62โโ โโโ README.md # Explains these are deprecated
63โโ
64โโโโ Documentation
65โ โโโ README.md # Main README
66โ โโโ YAML_ONLY.md # YAML-only guide
67โ โโโ SPAGO_NEXT.md # Spago Next guide
68โ โโโ MIGRATION.md # Migration from old Spago
69โ โโโ TESTING.md # Testing guide
70โ โโโ STRUCTURE.md # Workspace structure
71โ โโโ COLOCATION_SUMMARY.md # Test colocation changes
72โ```
73โ
74โ## Requirements
75โ
76โ### โ ๏ธ Must Have
77โ
78โ- **Bun** - Fast JavaScript runtime and package manager
79โ- **Spago Next v0.93.45+** - Install with `bun install -g spago@next`
80โ- **PureScript v0.15.15+**
81โ
82โ### โ Will NOT Work With
83โ
84โ- Old Spago v0.21.x
85โ- Dhall configuration files
86โ- Centralised test directory
87โ
88โ## Commands (YAML-Only)
89โ
90โ### โ
These Work
91โ
92โ```bash
93โ# Building
94โspago build
95โspago build -p yoga-om-core
96โ
97โ# Testing
98โ./test-all.sh
99โcd packages/yoga-om-core && spago test
100โ
101โ# Dependencies
102โspago install arrays
103โ```
104โ
105โ### โ These Don't Work (Old Spago)
106โ
107โ```bash
108โspago -x test.dhall test # No test.dhall file
109โspago -x spago.dhall build # No spago.dhall in use
110โ```
111โ
112โ## Verification
113โ
114โCheck everything is YAML-only:
115โ
116โ```bash
117โ# Should be empty (no active dhall files)
118โfind . -name "*.dhall" -not -path "./.legacy/*"
119โ
120โ# Should find all YAML configs
121โfind . -name "spago.yaml"
122โ# Output:
123โ# ./spago.yaml
124โ# ./packages/yoga-om-core/spago.yaml
125โ# ./packages/yoga-om-node/spago.yaml
126โ# ./packages/yoga-om-streams/spago.yaml
127โ
128โ# Check spago version
129โspago version
130โ# Should be: 0.93.45 or higher
131โ```
132โ
133โ## Test It Works
134โ
135โ```bash
136โ# 1. Install Bun
137โcurl -fsSL https://bun.sh/install | bash
138โ
139โ# 2. Install Spago Next
140โbun install -g spago@next
141โ
142โ# 3. Install dependencies
143โbun install
144โspago install
145โ
146โ# 4. Build
147โspago build
148โ
149โ# 5. Test
150โbun test
151โ```
152โ
153โShould work without any dhall files!
154โ
155โ## Benefits Achieved
156โ
157โโ
**YAML-Only** - No Dhall required
158โโ
**Workspace Support** - True monorepo
159โโ
**Colocated Tests** - Tests with implementation
160โโ
**Modern Tooling** - Spago Next features
161โโ
**Simpler** - YAML is more accessible than Dhall
162โโ
**Registry** - Direct from PureScript registry
163โโ
**Independent Packages** - Build/test separately
164โ
165โ## CI/CD
166โ
167โGitHub Actions now uses Spago Next:
168โ
169โ```yaml
170โ- uses: purescript-contrib/setup-purescript@main
171โ with:
172โ purescript: "0.15.15"
173โ spago: "0.93.45" # Spago Next with YAML support
174โ
175โ- run: spago build # No dhall files needed!
176โ
177โ- run: cd packages/yoga-om-core && spago test
178โ```
179โ
180โ## Documentation
181โ
182โComprehensive docs for YAML-only setup:
183โ
184โ1. **[YAML_ONLY.md](./YAML_ONLY.md)** - Complete YAML-only guide
185โ2. **[SPAGO_NEXT.md](./SPAGO_NEXT.md)** - Spago Next usage
186โ3. **[MIGRATION.md](./MIGRATION.md)** - Migrating from Dhall
187โ4. **[TESTING.md](./TESTING.md)** - Testing with YAML
188โ5. **[STRUCTURE.md](./STRUCTURE.md)** - Workspace structure
189โ
190โ## Migration Path
191โ
192โIf you had old Spago v0.21.x:
193โ
194โ1. โ
Legacy files moved to `.legacy/`
195โ2. โ
New `spago.yaml` configs created
196โ3. โ
Tests colocated in packages
197โ4. โ
Scripts updated (no dhall references)
198โ5. โ
CI/CD updated
199โ6. โ
Documentation updated
200โ
201โ## Next Steps
202โ
203โ1. **Install Spago Next**
204โ ```bash
205โ npm install -g spago@next
206โ ```
207โ
208โ2. **Install Dependencies**
209โ ```bash
210โ spago install
211โ ```
212โ
213โ3. **Test Everything Works**
214โ ```bash
215โ ./test-all.sh
216โ ```
217โ
218โ4. **Start Developing**
219โ ```bash
220โ cd packages/yoga-om-core
221โ spago test --watch
222โ ```
223โ
224โ## Troubleshooting
225โ
226โ### "There's no spago.dhall"
227โ
228โ**Good!** That means you're using YAML-only configuration. Just use:
229โ```bash
230โspago build
231โ```
232โ
233โ### "Module not found"
234โ
235โInstall dependencies:
236โ```bash
237โspago install
238โ```
239โ
240โ### Tests don't run
241โ
242โUse the test script or cd to package:
243โ```bash
244โ./test-all.sh
245โ# or
246โcd packages/yoga-om-core && spago test
247โ```
248โ
249โ## Success Criteria
250โ
251โYour project is fully YAML-only when:
252โ
253โ- โ
No active `.dhall` files (except in `.legacy/`)
254โ- โ
All packages have `spago.yaml`
255โ- โ
Tests run with `./test-all.sh`
256โ- โ
Build works with `spago build`
257โ- โ
No `-x` flags needed in commands
258โ- โ
Spago version is 0.93.45+
259โ
260โ---
261โ
262โ**๐ Project is now 100% YAML-only! No Dhall required!**
bower.jsondeletedโ40
@@ -1,40 +0,0 @@
1โ{
2โ "name": "purescript-yoga-om",
3โ "license": [
4โ "MIT"
5โ ],
6โ "repository": {
7โ "type": "git",
8โ "url": "https://github.com/rowtype-yoga/purescript-yoga-om"
9โ },
10โ "ignore": [
11โ "**/.*",
12โ "node_modules",
13โ "bower_components",
14โ "output"
15โ ],
16โ "dependencies": {
17โ "purescript-aff": "^v7.1.0",
18โ "purescript-avar": "^v5.0.0",
19โ "purescript-console": "^v6.0.0",
20โ "purescript-control": "^v6.0.0",
21โ "purescript-datetime": "^v6.1.0",
22โ "purescript-effect": "^v4.0.0",
23โ "purescript-either": "^v6.1.0",
24โ "purescript-exceptions": "^v6.0.0",
25โ "purescript-functions": "^v6.0.0",
26โ "purescript-maybe": "^v6.0.0",
27โ "purescript-newtype": "^v5.0.0",
28โ "purescript-parallel": "^v6.0.0",
29โ "purescript-prelude": "^v6.0.1",
30โ "purescript-record": "^v4.0.0",
31โ "purescript-record-studio": "https://github.com/rowtype-yoga/purescript-record-studio.git#v1.0.1",
32โ "purescript-tailrec": "^v6.1.0",
33โ "purescript-transformers": "^v6.0.0",
34โ "purescript-tuples": "^v7.0.0",
35โ "purescript-typelevel-prelude": "^v7.0.0",
36โ "purescript-uncurried-transformers": "https://github.com/PureFunctor/purescript-uncurried-transformers.git#v1.1.0",
37โ "purescript-unsafe-coerce": "^v6.0.0",
38โ "purescript-variant": "^v8.0.0"
39โ }
40โ}
bun.lockdeletedโ571
@@ -1,571 +0,0 @@
1โ{
2โ "lockfileVersion": 1,
3โ "workspaces": {
4โ "": {
5โ "name": "purescript-yoga-om-workspace",
6โ "dependencies": {
7โ "purescript": "^0.15.15",
8โ "purs-tidy": "^0.11.1",
9โ "spago": "^1.0.3",
10โ },
11โ "devDependencies": {
12โ "purs-backend-es": "^1.4.2",
13โ },
14โ },
15โ },
16โ "packages": {
17โ "@gar/promisify": ["@gar/promisify@1.1.3", "", {}, "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw=="],
18โ
19โ "@isaacs/balanced-match": ["@isaacs/balanced-match@4.0.1", "", {}, "sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ=="],
20โ
21โ "@isaacs/brace-expansion": ["@isaacs/brace-expansion@5.0.0", "", { "dependencies": { "@isaacs/balanced-match": "^4.0.1" } }, "sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA=="],
22โ
23โ "@isaacs/cliui": ["@isaacs/cliui@8.0.2", "", { "dependencies": { "string-width": "^5.1.2", "string-width-cjs": "npm:string-width@^4.2.0", "strip-ansi": "^7.0.1", "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", "wrap-ansi": "^8.1.0", "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" } }, "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA=="],
24โ
25โ "@isaacs/fs-minipass": ["@isaacs/fs-minipass@4.0.1", "", { "dependencies": { "minipass": "^7.0.4" } }, "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w=="],
26โ
27โ "@nodelib/fs.scandir": ["@nodelib/fs.scandir@4.0.1", "", { "dependencies": { "@nodelib/fs.stat": "4.0.0", "run-parallel": "^1.2.0" } }, "sha512-vAkI715yhnmiPupY+dq+xenu5Tdf2TBQ66jLvBIcCddtz+5Q8LbMKaf9CIJJreez8fQ8fgaY+RaywQx8RJIWpw=="],
28โ
29โ "@nodelib/fs.stat": ["@nodelib/fs.stat@4.0.0", "", {}, "sha512-ctr6bByzksKRCV0bavi8WoQevU6plSp2IkllIsEqaiKe2mwNNnaluhnRhcsgGZHrrHk57B3lf95MkLMO3STYcg=="],
30โ
31โ "@nodelib/fs.walk": ["@nodelib/fs.walk@3.0.1", "", { "dependencies": { "@nodelib/fs.scandir": "4.0.1", "fastq": "^1.15.0" } }, "sha512-nIh/M6Kh3ZtOmlY00DaUYB4xeeV6F3/ts1l29iwl3/cfyY/OuCfUx+v08zgx8TKPTifXRcjjqVQ4KB2zOYSbyw=="],
32โ
33โ "@npmcli/fs": ["@npmcli/fs@2.1.2", "", { "dependencies": { "@gar/promisify": "^1.1.3", "semver": "^7.3.5" } }, "sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ=="],
34โ
35โ "@npmcli/move-file": ["@npmcli/move-file@2.0.1", "", { "dependencies": { "mkdirp": "^1.0.4", "rimraf": "^3.0.2" } }, "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ=="],
36โ
37โ "@tootallnate/once": ["@tootallnate/once@2.0.0", "", {}, "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A=="],
38โ
39โ "agent-base": ["agent-base@6.0.2", "", { "dependencies": { "debug": "4" } }, "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ=="],
40โ
41โ "agentkeepalive": ["agentkeepalive@4.6.0", "", { "dependencies": { "humanize-ms": "^1.2.1" } }, "sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ=="],
42โ
43โ "aggregate-error": ["aggregate-error@3.1.0", "", { "dependencies": { "clean-stack": "^2.0.0", "indent-string": "^4.0.0" } }, "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA=="],
44โ
45โ "ansi-escapes": ["ansi-escapes@4.3.2", "", { "dependencies": { "type-fest": "^0.21.3" } }, "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ=="],
46โ
47โ "ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="],
48โ
49โ "ansi-styles": ["ansi-styles@3.2.1", "", { "dependencies": { "color-convert": "^1.9.0" } }, "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA=="],
50โ
51โ "aproba": ["aproba@1.2.0", "", {}, "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw=="],
52โ
53โ "argparse": ["argparse@2.0.1", "", {}, "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="],
54โ
55โ "asn1": ["asn1@0.2.6", "", { "dependencies": { "safer-buffer": "~2.1.0" } }, "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ=="],
56โ
57โ "astral-regex": ["astral-regex@2.0.0", "", {}, "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ=="],
58โ
59โ "balanced-match": ["balanced-match@1.0.2", "", {}, "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="],
60โ
61โ "bcrypt-pbkdf": ["bcrypt-pbkdf@1.0.2", "", { "dependencies": { "tweetnacl": "^0.14.3" } }, "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w=="],
62โ
63โ "bluebird": ["bluebird@3.7.2", "", {}, "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg=="],
64โ
65โ "brace-expansion": ["brace-expansion@1.1.12", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg=="],
66โ
67โ "braces": ["braces@3.0.3", "", { "dependencies": { "fill-range": "^7.1.1" } }, "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA=="],
68โ
69โ "buffer-from": ["buffer-from@1.1.2", "", {}, "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="],
70โ
71โ "buildcheck": ["buildcheck@0.0.7", "", {}, "sha512-lHblz4ahamxpTmnsk+MNTRWsjYKv965MwOrSJyeD588rR3Jcu7swE+0wN5F+PbL5cjgu/9ObkhfzEPuofEMwLA=="],
72โ
73โ "bundle-name": ["bundle-name@4.1.0", "", { "dependencies": { "run-applescript": "^7.0.0" } }, "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q=="],
74โ
75โ "byline": ["byline@5.0.0", "", {}, "sha512-s6webAy+R4SR8XVuJWt2V2rGvhnrhxN+9S15GNuTK3wKPOXFF6RNc+8ug2XhH+2s4f+uudG4kUVYmYOQWL2g0Q=="],
76โ
77โ "cacache": ["cacache@11.3.3", "", { "dependencies": { "bluebird": "^3.5.5", "chownr": "^1.1.1", "figgy-pudding": "^3.5.1", "glob": "^7.1.4", "graceful-fs": "^4.1.15", "lru-cache": "^5.1.1", "mississippi": "^3.0.0", "mkdirp": "^0.5.1", "move-concurrently": "^1.0.1", "promise-inflight": "^1.0.1", "rimraf": "^2.6.3", "ssri": "^6.0.1", "unique-filename": "^1.1.1", "y18n": "^4.0.0" } }, "sha512-p8WcneCytvzPxhDvYp31PD039vi77I12W+/KfR9S8AZbaiARFBCpsPJS+9uhWfeBfeAtW7o/4vt3MUqLkbY6nA=="],
78โ
79โ "chalk": ["chalk@2.4.2", "", { "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", "supports-color": "^5.3.0" } }, "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ=="],
80โ
81โ "chownr": ["chownr@3.0.0", "", {}, "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g=="],
82โ
83โ "clean-stack": ["clean-stack@2.2.0", "", {}, "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A=="],
84โ
85โ "cli-cursor": ["cli-cursor@3.1.0", "", { "dependencies": { "restore-cursor": "^3.1.0" } }, "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw=="],
86โ
87โ "color-convert": ["color-convert@1.9.3", "", { "dependencies": { "color-name": "1.1.3" } }, "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg=="],
88โ
89โ "color-name": ["color-name@1.1.3", "", {}, "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="],
90โ
91โ "concat-map": ["concat-map@0.0.1", "", {}, "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="],
92โ
93โ "concat-stream": ["concat-stream@1.6.2", "", { "dependencies": { "buffer-from": "^1.0.0", "inherits": "^2.0.3", "readable-stream": "^2.2.2", "typedarray": "^0.0.6" } }, "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw=="],
94โ
95โ "copy-concurrently": ["copy-concurrently@1.0.5", "", { "dependencies": { "aproba": "^1.1.1", "fs-write-stream-atomic": "^1.0.8", "iferr": "^0.1.5", "mkdirp": "^0.5.1", "rimraf": "^2.5.4", "run-queue": "^1.0.0" } }, "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A=="],
96โ
97โ "core-util-is": ["core-util-is@1.0.3", "", {}, "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="],
98โ
99โ "cpu-features": ["cpu-features@0.0.10", "", { "dependencies": { "buildcheck": "~0.0.6", "nan": "^2.19.0" } }, "sha512-9IkYqtX3YHPCzoVg1Py+o9057a3i0fp7S530UWokCSaFVTc7CwXPRiOjRjBQQ18ZCNafx78YfnG+HALxtVmOGA=="],
100โ
101โ "cross-spawn": ["cross-spawn@7.0.6", "", { "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" } }, "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA=="],
102โ
103โ "cyclist": ["cyclist@1.0.2", "", {}, "sha512-0sVXIohTfLqVIW3kb/0n6IiWF3Ifj5nm2XaSrLq2DI6fKIGa2fYAZdk917rUneaeLVpYfFcyXE2ft0fe3remsA=="],
104โ
105โ "debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="],
106โ
107โ "default-browser": ["default-browser@5.4.0", "", { "dependencies": { "bundle-name": "^4.1.0", "default-browser-id": "^5.0.0" } }, "sha512-XDuvSq38Hr1MdN47EDvYtx3U0MTqpCEn+F6ft8z2vYDzMrvQhVp0ui9oQdqW3MvK3vqUETglt1tVGgjLuJ5izg=="],
108โ
109โ "default-browser-id": ["default-browser-id@5.0.1", "", {}, "sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q=="],
110โ
111โ "define-lazy-prop": ["define-lazy-prop@3.0.0", "", {}, "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg=="],
112โ
113โ "duplexify": ["duplexify@3.7.1", "", { "dependencies": { "end-of-stream": "^1.0.0", "inherits": "^2.0.1", "readable-stream": "^2.0.0", "stream-shift": "^1.0.0" } }, "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g=="],
114โ
115โ "eastasianwidth": ["eastasianwidth@0.2.0", "", {}, "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA=="],
116โ
117โ "emoji-regex": ["emoji-regex@8.0.0", "", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="],
118โ
119โ "encoding": ["encoding@0.1.13", "", { "dependencies": { "iconv-lite": "^0.6.2" } }, "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A=="],
120โ
121โ "end-of-stream": ["end-of-stream@1.4.5", "", { "dependencies": { "once": "^1.4.0" } }, "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg=="],
122โ
123โ "entities": ["entities@4.5.0", "", {}, "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw=="],
124โ
125โ "env-paths": ["env-paths@3.0.0", "", {}, "sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A=="],
126โ
127โ "err-code": ["err-code@2.0.3", "", {}, "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA=="],
128โ
129โ "escape-string-regexp": ["escape-string-regexp@1.0.5", "", {}, "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg=="],
130โ
131โ "execa": ["execa@2.1.0", "", { "dependencies": { "cross-spawn": "^7.0.0", "get-stream": "^5.0.0", "is-stream": "^2.0.0", "merge-stream": "^2.0.0", "npm-run-path": "^3.0.0", "onetime": "^5.1.0", "p-finally": "^2.0.0", "signal-exit": "^3.0.2", "strip-final-newline": "^2.0.0" } }, "sha512-Y/URAVapfbYy2Xp/gb6A0E7iR8xeqOCXsuuaoMn7A5PzrXUK84E1gyiEfq0wQd/GHA6GsoHWwhNq8anb0mleIw=="],
132โ
133โ "fastq": ["fastq@1.20.1", "", { "dependencies": { "reusify": "^1.0.4" } }, "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw=="],
134โ
135โ "figgy-pudding": ["figgy-pudding@3.5.2", "", {}, "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw=="],
136โ
137โ "filesize": ["filesize@4.2.1", "", {}, "sha512-bP82Hi8VRZX/TUBKfE24iiUGsB/sfm2WUrwTQyAzQrhO3V9IhcBBNBXMyzLY5orACxRyYJ3d2HeRVX+eFv4lmA=="],
138โ
139โ "fill-range": ["fill-range@7.1.1", "", { "dependencies": { "to-regex-range": "^5.0.1" } }, "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg=="],
140โ
141โ "flush-write-stream": ["flush-write-stream@1.1.1", "", { "dependencies": { "inherits": "^2.0.3", "readable-stream": "^2.3.6" } }, "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w=="],
142โ
143โ "foreground-child": ["foreground-child@3.3.1", "", { "dependencies": { "cross-spawn": "^7.0.6", "signal-exit": "^4.0.1" } }, "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw=="],
144โ
145โ "from2": ["from2@2.3.0", "", { "dependencies": { "inherits": "^2.0.1", "readable-stream": "^2.0.0" } }, "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g=="],
146โ
147โ "fs-extra": ["fs-extra@11.3.3", "", { "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" } }, "sha512-VWSRii4t0AFm6ixFFmLLx1t7wS1gh+ckoa84aOeapGum0h+EZd1EhEumSB+ZdDLnEPuucsVB9oB7cxJHap6Afg=="],
148โ
149โ "fs-minipass": ["fs-minipass@2.1.0", "", { "dependencies": { "minipass": "^3.0.0" } }, "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg=="],
150โ
151โ "fs-write-stream-atomic": ["fs-write-stream-atomic@1.0.10", "", { "dependencies": { "graceful-fs": "^4.1.2", "iferr": "^0.1.5", "imurmurhash": "^0.1.4", "readable-stream": "1 || 2" } }, "sha512-gehEzmPn2nAwr39eay+x3X34Ra+M2QlVUTLhkXPjWdeO8RF9kszk116avgBJM3ZyNHgHXBNx+VmPaFC36k0PzA=="],
152โ
153โ "fs.realpath": ["fs.realpath@1.0.0", "", {}, "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="],
154โ
155โ "fuse.js": ["fuse.js@7.1.0", "", {}, "sha512-trLf4SzuuUxfusZADLINj+dE8clK1frKdmqiJNb1Es75fmI5oY6X2mxLVUciLLjxqw/xr72Dhy+lER6dGd02FQ=="],
156โ
157โ "get-stream": ["get-stream@5.2.0", "", { "dependencies": { "pump": "^3.0.0" } }, "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA=="],
158โ
159โ "glob": ["glob@11.1.0", "", { "dependencies": { "foreground-child": "^3.3.1", "jackspeak": "^4.1.1", "minimatch": "^10.1.1", "minipass": "^7.1.2", "package-json-from-dist": "^1.0.0", "path-scurry": "^2.0.0" }, "bin": { "glob": "dist/esm/bin.mjs" } }, "sha512-vuNwKSaKiqm7g0THUBu2x7ckSs3XJLXE+2ssL7/MfTGPLLcrJQ/4Uq1CjPTtO5cCIiRxqvN6Twy1qOwhL0Xjcw=="],
160โ
161โ "graceful-fs": ["graceful-fs@4.2.11", "", {}, "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="],
162โ
163โ "has-flag": ["has-flag@3.0.0", "", {}, "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw=="],
164โ
165โ "http-cache-semantics": ["http-cache-semantics@4.2.0", "", {}, "sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ=="],
166โ
167โ "http-proxy-agent": ["http-proxy-agent@5.0.0", "", { "dependencies": { "@tootallnate/once": "2", "agent-base": "6", "debug": "4" } }, "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w=="],
168โ
169โ "https-proxy-agent": ["https-proxy-agent@5.0.1", "", { "dependencies": { "agent-base": "6", "debug": "4" } }, "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA=="],
170โ
171โ "humanize-ms": ["humanize-ms@1.2.1", "", { "dependencies": { "ms": "^2.0.0" } }, "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ=="],
172โ
173โ "iconv-lite": ["iconv-lite@0.6.3", "", { "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw=="],
174โ
175โ "iferr": ["iferr@0.1.5", "", {}, "sha512-DUNFN5j7Tln0D+TxzloUjKB+CtVu6myn0JEFak6dG18mNt9YkQ6lzGCdafwofISZ1lLF3xRHJ98VKy9ynkcFaA=="],
176โ
177โ "imurmurhash": ["imurmurhash@0.1.4", "", {}, "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA=="],
178โ
179โ "indent-string": ["indent-string@4.0.0", "", {}, "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg=="],
180โ
181โ "infer-owner": ["infer-owner@1.0.4", "", {}, "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A=="],
182โ
183โ "inflight": ["inflight@1.0.6", "", { "dependencies": { "once": "^1.3.0", "wrappy": "1" } }, "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA=="],
184โ
185โ "inherits": ["inherits@2.0.4", "", {}, "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="],
186โ
187โ "ip-address": ["ip-address@10.1.0", "", {}, "sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q=="],
188โ
189โ "is-docker": ["is-docker@3.0.0", "", { "bin": { "is-docker": "cli.js" } }, "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ=="],
190โ
191โ "is-fullwidth-code-point": ["is-fullwidth-code-point@3.0.0", "", {}, "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="],
192โ
193โ "is-inside-container": ["is-inside-container@1.0.0", "", { "dependencies": { "is-docker": "^3.0.0" }, "bin": { "is-inside-container": "cli.js" } }, "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA=="],
194โ
195โ "is-lambda": ["is-lambda@1.0.1", "", {}, "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ=="],
196โ
197โ "is-number": ["is-number@7.0.0", "", {}, "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="],
198โ
199โ "is-plain-obj": ["is-plain-obj@2.1.0", "", {}, "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA=="],
200โ
201โ "is-stream": ["is-stream@2.0.1", "", {}, "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg=="],
202โ
203โ "is-wsl": ["is-wsl@3.1.0", "", { "dependencies": { "is-inside-container": "^1.0.0" } }, "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw=="],
204โ
205โ "isarray": ["isarray@1.0.0", "", {}, "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="],
206โ
207โ "isexe": ["isexe@2.0.0", "", {}, "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="],
208โ
209โ "jackspeak": ["jackspeak@4.1.1", "", { "dependencies": { "@isaacs/cliui": "^8.0.2" } }, "sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ=="],
210โ
211โ "jsonfile": ["jsonfile@6.2.0", "", { "dependencies": { "universalify": "^2.0.0" }, "optionalDependencies": { "graceful-fs": "^4.1.6" } }, "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg=="],
212โ
213โ "linkify-it": ["linkify-it@5.0.0", "", { "dependencies": { "uc.micro": "^2.0.0" } }, "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ=="],
214โ
215โ "log-symbols": ["log-symbols@3.0.0", "", { "dependencies": { "chalk": "^2.4.2" } }, "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ=="],
216โ
217โ "log-update": ["log-update@4.0.0", "", { "dependencies": { "ansi-escapes": "^4.3.0", "cli-cursor": "^3.1.0", "slice-ansi": "^4.0.0", "wrap-ansi": "^6.2.0" } }, "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg=="],
218โ
219โ "lru-cache": ["lru-cache@5.1.1", "", { "dependencies": { "yallist": "^3.0.2" } }, "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w=="],
220โ
221โ "make-fetch-happen": ["make-fetch-happen@10.2.1", "", { "dependencies": { "agentkeepalive": "^4.2.1", "cacache": "^16.1.0", "http-cache-semantics": "^4.1.0", "http-proxy-agent": "^5.0.0", "https-proxy-agent": "^5.0.0", "is-lambda": "^1.0.1", "lru-cache": "^7.7.1", "minipass": "^3.1.6", "minipass-collect": "^1.0.2", "minipass-fetch": "^2.0.3", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", "negotiator": "^0.6.3", "promise-retry": "^2.0.1", "socks-proxy-agent": "^7.0.0", "ssri": "^9.0.0" } }, "sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w=="],
222โ
223โ "markdown-it": ["markdown-it@14.1.0", "", { "dependencies": { "argparse": "^2.0.1", "entities": "^4.4.0", "linkify-it": "^5.0.0", "mdurl": "^2.0.0", "punycode.js": "^2.3.1", "uc.micro": "^2.1.0" }, "bin": { "markdown-it": "bin/markdown-it.mjs" } }, "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg=="],
224โ
225โ "mdurl": ["mdurl@2.0.0", "", {}, "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w=="],
226โ
227โ "merge-stream": ["merge-stream@2.0.0", "", {}, "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w=="],
228โ
229โ "micromatch": ["micromatch@4.0.8", "", { "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" } }, "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA=="],
230โ
231โ "mimic-fn": ["mimic-fn@2.1.0", "", {}, "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg=="],
232โ
233โ "minimatch": ["minimatch@10.1.1", "", { "dependencies": { "@isaacs/brace-expansion": "^5.0.0" } }, "sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ=="],
234โ
235โ "minimist": ["minimist@1.2.8", "", {}, "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA=="],
236โ
237โ "minipass": ["minipass@7.1.2", "", {}, "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw=="],
238โ
239โ "minipass-collect": ["minipass-collect@1.0.2", "", { "dependencies": { "minipass": "^3.0.0" } }, "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA=="],
240โ
241โ "minipass-fetch": ["minipass-fetch@2.1.2", "", { "dependencies": { "minipass": "^3.1.6", "minipass-sized": "^1.0.3", "minizlib": "^2.1.2" }, "optionalDependencies": { "encoding": "^0.1.13" } }, "sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA=="],
242โ
243โ "minipass-flush": ["minipass-flush@1.0.5", "", { "dependencies": { "minipass": "^3.0.0" } }, "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw=="],
244โ
245โ "minipass-pipeline": ["minipass-pipeline@1.2.4", "", { "dependencies": { "minipass": "^3.0.0" } }, "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A=="],
246โ
247โ "minipass-sized": ["minipass-sized@1.0.3", "", { "dependencies": { "minipass": "^3.0.0" } }, "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g=="],
248โ
249โ "minizlib": ["minizlib@3.1.0", "", { "dependencies": { "minipass": "^7.1.2" } }, "sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw=="],
250โ
251โ "mississippi": ["mississippi@3.0.0", "", { "dependencies": { "concat-stream": "^1.5.0", "duplexify": "^3.4.2", "end-of-stream": "^1.1.0", "flush-write-stream": "^1.0.0", "from2": "^2.1.0", "parallel-transform": "^1.1.0", "pump": "^3.0.0", "pumpify": "^1.3.3", "stream-each": "^1.1.0", "through2": "^2.0.0" } }, "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA=="],
252โ
253โ "mkdirp": ["mkdirp@0.5.6", "", { "dependencies": { "minimist": "^1.2.6" }, "bin": { "mkdirp": "bin/cmd.js" } }, "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw=="],
254โ
255โ "move-concurrently": ["move-concurrently@1.0.1", "", { "dependencies": { "aproba": "^1.1.1", "copy-concurrently": "^1.0.0", "fs-write-stream-atomic": "^1.0.8", "mkdirp": "^0.5.1", "rimraf": "^2.5.4", "run-queue": "^1.0.3" } }, "sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ=="],
256โ
257โ "ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="],
258โ
259โ "nan": ["nan@2.25.0", "", {}, "sha512-0M90Ag7Xn5KMLLZ7zliPWP3rT90P6PN+IzVFS0VqmnPktBk3700xUVv8Ikm9EUaUE5SDWdp/BIxdENzVznpm1g=="],
260โ
261โ "negotiator": ["negotiator@0.6.4", "", {}, "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w=="],
262โ
263โ "npm-run-path": ["npm-run-path@3.1.0", "", { "dependencies": { "path-key": "^3.0.0" } }, "sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg=="],
264โ
265โ "once": ["once@1.4.0", "", { "dependencies": { "wrappy": "1" } }, "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w=="],
266โ
267โ "onetime": ["onetime@5.1.2", "", { "dependencies": { "mimic-fn": "^2.1.0" } }, "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg=="],
268โ
269โ "open": ["open@10.2.0", "", { "dependencies": { "default-browser": "^5.2.1", "define-lazy-prop": "^3.0.0", "is-inside-container": "^1.0.0", "wsl-utils": "^0.1.0" } }, "sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA=="],
270โ
271โ "p-finally": ["p-finally@2.0.1", "", {}, "sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw=="],
272โ
273โ "p-map": ["p-map@4.0.0", "", { "dependencies": { "aggregate-error": "^3.0.0" } }, "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ=="],
274โ
275โ "package-json-from-dist": ["package-json-from-dist@1.0.1", "", {}, "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw=="],
276โ
277โ "parallel-transform": ["parallel-transform@1.2.0", "", { "dependencies": { "cyclist": "^1.0.1", "inherits": "^2.0.3", "readable-stream": "^2.1.5" } }, "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg=="],
278โ
279โ "path-is-absolute": ["path-is-absolute@1.0.1", "", {}, "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg=="],
280โ
281โ "path-key": ["path-key@3.1.1", "", {}, "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="],
282โ
283โ "path-scurry": ["path-scurry@2.0.1", "", { "dependencies": { "lru-cache": "^11.0.0", "minipass": "^7.1.2" } }, "sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA=="],
284โ
285โ "picomatch": ["picomatch@4.0.3", "", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="],
286โ
287โ "process-nextick-args": ["process-nextick-args@2.0.1", "", {}, "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="],
288โ
289โ "promise-inflight": ["promise-inflight@1.0.1", "", {}, "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g=="],
290โ
291โ "promise-retry": ["promise-retry@2.0.1", "", { "dependencies": { "err-code": "^2.0.2", "retry": "^0.12.0" } }, "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g=="],
292โ
293โ "pump": ["pump@3.0.3", "", { "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" } }, "sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA=="],
294โ
295โ "pumpify": ["pumpify@1.5.1", "", { "dependencies": { "duplexify": "^3.6.0", "inherits": "^2.0.3", "pump": "^2.0.0" } }, "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ=="],
296โ
297โ "punycode": ["punycode@2.3.1", "", {}, "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg=="],
298โ
299โ "punycode.js": ["punycode.js@2.3.1", "", {}, "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA=="],
300โ
301โ "purescript": ["purescript@0.15.15", "", { "dependencies": { "purescript-installer": "^0.3.5" }, "bin": { "purs": "purs.bin" } }, "sha512-4gwLNJa4KRiV+Wl+lyMY4MUFM6cSnIqvz7MvSTdLdvXJN2P9CrABnNbSspaokkNRFd9soWHBFDlYsAtRchqHtg=="],
302โ
303โ "purescript-installer": ["purescript-installer@0.3.5", "", { "dependencies": { "byline": "^5.0.0", "cacache": "^11.3.2", "chalk": "^2.4.2", "env-paths": "^2.2.0", "execa": "^2.0.3", "filesize": "^4.1.2", "is-plain-obj": "^2.0.0", "log-symbols": "^3.0.0", "log-update": "^4.0.0", "make-fetch-happen": "^10.0.0", "minimist": "^1.2.0", "ms": "^2.1.2", "once": "^1.4.0", "rimraf": "^2.6.3", "semver": "^7.3.7", "tar": "^6.1.11", "which": "^1.3.1", "zen-observable": "^0.8.14" }, "bin": { "install-purescript": "index.js" } }, "sha512-w04BBvW4BSQlspLsZ9Bs5vtUBZqvC4bC+FizC5GUp2/rpmYvXJ0CTf79Q3MKo2A8p1ZjqbhCI+SqdTQ30UZUIQ=="],
304โ
305โ "purs-backend-es": ["purs-backend-es@1.4.3", "", { "bin": { "purs-backend-es": "index.js" } }, "sha512-wLJwI/+xbS04fKHo7KyzJ4WQ/Lrj/0AIkEt7LbXzuE+L4Qzp8+BAcf1o+faMcWFVjtTtG8frM1p9qVenB5WxRg=="],
306โ
307โ "purs-tidy": ["purs-tidy@0.11.1", "", { "bin": { "purs-tidy": "bin/index.js" } }, "sha512-5EAktcnu0mHuftnrpk1Iy7NiqKhxvE74HQRZB43i24Wabs/XclFvHSSE+amxmTr4QM/mcGx2B7ZyRprijnWqDg=="],
308โ
309โ "queue-microtask": ["queue-microtask@1.2.3", "", {}, "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="],
310โ
311โ "readable-stream": ["readable-stream@2.3.8", "", { "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", "isarray": "~1.0.0", "process-nextick-args": "~2.0.0", "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" } }, "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA=="],
312โ
313โ "readline-sync": ["readline-sync@1.4.10", "", {}, "sha512-gNva8/6UAe8QYepIQH/jQ2qn91Qj0B9sYjMBBs3QOB8F2CXcKgLxQaJRP76sWVRQt+QU+8fAkCbCvjjMFu7Ycw=="],
314โ
315โ "restore-cursor": ["restore-cursor@3.1.0", "", { "dependencies": { "onetime": "^5.1.0", "signal-exit": "^3.0.2" } }, "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA=="],
316โ
317โ "retry": ["retry@0.12.0", "", {}, "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow=="],
318โ
319โ "reusify": ["reusify@1.1.0", "", {}, "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw=="],
320โ
321โ "rimraf": ["rimraf@2.7.1", "", { "dependencies": { "glob": "^7.1.3" }, "bin": { "rimraf": "./bin.js" } }, "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w=="],
322โ
323โ "run-applescript": ["run-applescript@7.1.0", "", {}, "sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q=="],
324โ
325โ "run-parallel": ["run-parallel@1.2.0", "", { "dependencies": { "queue-microtask": "^1.2.2" } }, "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA=="],
326โ
327โ "run-queue": ["run-queue@1.0.3", "", { "dependencies": { "aproba": "^1.1.1" } }, "sha512-ntymy489o0/QQplUDnpYAYUsO50K9SBrIVaKCWDOJzYJts0f9WH9RFJkyagebkw5+y1oi00R7ynNW/d12GBumg=="],
328โ
329โ "safe-buffer": ["safe-buffer@5.1.2", "", {}, "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="],
330โ
331โ "safer-buffer": ["safer-buffer@2.1.2", "", {}, "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="],
332โ
333โ "semver": ["semver@7.7.3", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q=="],
334โ
335โ "shebang-command": ["shebang-command@2.0.0", "", { "dependencies": { "shebang-regex": "^3.0.0" } }, "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA=="],
336โ
337โ "shebang-regex": ["shebang-regex@3.0.0", "", {}, "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="],
338โ
339โ "signal-exit": ["signal-exit@3.0.7", "", {}, "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="],
340โ
341โ "slice-ansi": ["slice-ansi@4.0.0", "", { "dependencies": { "ansi-styles": "^4.0.0", "astral-regex": "^2.0.0", "is-fullwidth-code-point": "^3.0.0" } }, "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ=="],
342โ
343โ "smart-buffer": ["smart-buffer@4.2.0", "", {}, "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg=="],
344โ
345โ "socks": ["socks@2.8.7", "", { "dependencies": { "ip-address": "^10.0.1", "smart-buffer": "^4.2.0" } }, "sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A=="],
346โ
347โ "socks-proxy-agent": ["socks-proxy-agent@7.0.0", "", { "dependencies": { "agent-base": "^6.0.2", "debug": "^4.3.3", "socks": "^2.6.2" } }, "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww=="],
348โ
349โ "spago": ["spago@1.0.3", "", { "dependencies": { "@nodelib/fs.walk": "^3.0.1", "env-paths": "^3.0.0", "fs-extra": "^11.3.0", "fuse.js": "^7.1.0", "glob": "^11.0.1", "markdown-it": "^14.1.0", "micromatch": "^4.0.8", "open": "^10.1.0", "picomatch": "^4.0.2", "punycode": "^2.3.1", "readline-sync": "^1.4.10", "semver": "^7.7.1", "spdx-expression-parse": "^4.0.0", "ssh2": "^1.16.0", "supports-color": "^10.0.0", "tar": "^7.4.3", "tmp": "^0.2.3", "xhr2": "^0.2.1", "yaml": "^2.7.0" }, "bin": { "spago": "bin/bundle.js" } }, "sha512-3JR6ExwLwaKIMYdc77e6fKqiBKXNentyVkcfhaQx4tGDnWjfHS2Td+zxJZ/28QaBx8s6RXfgFD1VjbALGtM89g=="],
350โ
351โ "spdx-exceptions": ["spdx-exceptions@2.5.0", "", {}, "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w=="],
352โ
353โ "spdx-expression-parse": ["spdx-expression-parse@4.0.0", "", { "dependencies": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" } }, "sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ=="],
354โ
355โ "spdx-license-ids": ["spdx-license-ids@3.0.22", "", {}, "sha512-4PRT4nh1EImPbt2jASOKHX7PB7I+e4IWNLvkKFDxNhJlfjbYlleYQh285Z/3mPTHSAK/AvdMmw5BNNuYH8ShgQ=="],
356โ
357โ "ssh2": ["ssh2@1.17.0", "", { "dependencies": { "asn1": "^0.2.6", "bcrypt-pbkdf": "^1.0.2" }, "optionalDependencies": { "cpu-features": "~0.0.10", "nan": "^2.23.0" } }, "sha512-wPldCk3asibAjQ/kziWQQt1Wh3PgDFpC0XpwclzKcdT1vql6KeYxf5LIt4nlFkUeR8WuphYMKqUA56X4rjbfgQ=="],
358โ
359โ "ssri": ["ssri@6.0.2", "", { "dependencies": { "figgy-pudding": "^3.5.1" } }, "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q=="],
360โ
361โ "stream-each": ["stream-each@1.2.3", "", { "dependencies": { "end-of-stream": "^1.1.0", "stream-shift": "^1.0.0" } }, "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw=="],
362โ
363โ "stream-shift": ["stream-shift@1.0.3", "", {}, "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ=="],
364โ
365โ "string-width": ["string-width@4.2.3", "", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="],
366โ
367โ "string-width-cjs": ["string-width@4.2.3", "", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="],
368โ
369โ "string_decoder": ["string_decoder@1.1.1", "", { "dependencies": { "safe-buffer": "~5.1.0" } }, "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg=="],
370โ
371โ "strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="],
372โ
373โ "strip-ansi-cjs": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="],
374โ
375โ "strip-final-newline": ["strip-final-newline@2.0.0", "", {}, "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA=="],
376โ
377โ "supports-color": ["supports-color@10.2.2", "", {}, "sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g=="],
378โ
379โ "tar": ["tar@7.5.7", "", { "dependencies": { "@isaacs/fs-minipass": "^4.0.0", "chownr": "^3.0.0", "minipass": "^7.1.2", "minizlib": "^3.1.0", "yallist": "^5.0.0" } }, "sha512-fov56fJiRuThVFXD6o6/Q354S7pnWMJIVlDBYijsTNx6jKSE4pvrDTs6lUnmGvNyfJwFQQwWy3owKz1ucIhveQ=="],
380โ
381โ "through2": ["through2@2.0.5", "", { "dependencies": { "readable-stream": "~2.3.6", "xtend": "~4.0.1" } }, "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ=="],
382โ
383โ "tmp": ["tmp@0.2.5", "", {}, "sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow=="],
384โ
385โ "to-regex-range": ["to-regex-range@5.0.1", "", { "dependencies": { "is-number": "^7.0.0" } }, "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ=="],
386โ
387โ "tweetnacl": ["tweetnacl@0.14.5", "", {}, "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA=="],
388โ
389โ "type-fest": ["type-fest@0.21.3", "", {}, "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w=="],
390โ
391โ "typedarray": ["typedarray@0.0.6", "", {}, "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA=="],
392โ
393โ "uc.micro": ["uc.micro@2.1.0", "", {}, "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A=="],
394โ
395โ "unique-filename": ["unique-filename@1.1.1", "", { "dependencies": { "unique-slug": "^2.0.0" } }, "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ=="],
396โ
397โ "unique-slug": ["unique-slug@2.0.2", "", { "dependencies": { "imurmurhash": "^0.1.4" } }, "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w=="],
398โ
399โ "universalify": ["universalify@2.0.1", "", {}, "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw=="],
400โ
401โ "util-deprecate": ["util-deprecate@1.0.2", "", {}, "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="],
402โ
403โ "which": ["which@1.3.1", "", { "dependencies": { "isexe": "^2.0.0" }, "bin": { "which": "./bin/which" } }, "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ=="],
404โ
405โ "wrap-ansi": ["wrap-ansi@6.2.0", "", { "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" } }, "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA=="],
406โ
407โ "wrap-ansi-cjs": ["wrap-ansi@7.0.0", "", { "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" } }, "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q=="],
408โ
409โ "wrappy": ["wrappy@1.0.2", "", {}, "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="],
410โ
411โ "wsl-utils": ["wsl-utils@0.1.0", "", { "dependencies": { "is-wsl": "^3.1.0" } }, "sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw=="],
412โ
413โ "xhr2": ["xhr2@0.2.1", "", {}, "sha512-sID0rrVCqkVNUn8t6xuv9+6FViXjUVXq8H5rWOH2rz9fDNQEd4g0EA2XlcEdJXRz5BMEn4O1pJFdT+z4YHhoWw=="],
414โ
415โ "xtend": ["xtend@4.0.2", "", {}, "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="],
416โ
417โ "y18n": ["y18n@4.0.3", "", {}, "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ=="],
418โ
419โ "yallist": ["yallist@5.0.0", "", {}, "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw=="],
420โ
421โ "yaml": ["yaml@2.8.2", "", { "bin": { "yaml": "bin.mjs" } }, "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A=="],
422โ
423โ "zen-observable": ["zen-observable@0.8.15", "", {}, "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ=="],
424โ
425โ "@isaacs/cliui/string-width": ["string-width@5.1.2", "", { "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", "strip-ansi": "^7.0.1" } }, "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA=="],
426โ
427โ "@isaacs/cliui/strip-ansi": ["strip-ansi@7.1.2", "", { "dependencies": { "ansi-regex": "^6.0.1" } }, "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA=="],
428โ
429โ "@isaacs/cliui/wrap-ansi": ["wrap-ansi@8.1.0", "", { "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", "strip-ansi": "^7.0.1" } }, "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ=="],
430โ
431โ "@npmcli/move-file/mkdirp": ["mkdirp@1.0.4", "", { "bin": { "mkdirp": "bin/cmd.js" } }, "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw=="],
432โ
433โ "@npmcli/move-file/rimraf": ["rimraf@3.0.2", "", { "dependencies": { "glob": "^7.1.3" }, "bin": { "rimraf": "bin.js" } }, "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA=="],
434โ
435โ "cacache/chownr": ["chownr@1.1.4", "", {}, "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg=="],
436โ
437โ "cacache/glob": ["glob@7.2.3", "", { "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q=="],
438โ
439โ "chalk/supports-color": ["supports-color@5.5.0", "", { "dependencies": { "has-flag": "^3.0.0" } }, "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow=="],
440โ
441โ "cross-spawn/which": ["which@2.0.2", "", { "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "./bin/node-which" } }, "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA=="],
442โ
443โ "foreground-child/signal-exit": ["signal-exit@4.1.0", "", {}, "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw=="],
444โ
445โ "fs-minipass/minipass": ["minipass@3.3.6", "", { "dependencies": { "yallist": "^4.0.0" } }, "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw=="],
446โ
447โ "lru-cache/yallist": ["yallist@3.1.1", "", {}, "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="],
448โ
449โ "make-fetch-happen/cacache": ["cacache@16.1.3", "", { "dependencies": { "@npmcli/fs": "^2.1.0", "@npmcli/move-file": "^2.0.0", "chownr": "^2.0.0", "fs-minipass": "^2.1.0", "glob": "^8.0.1", "infer-owner": "^1.0.4", "lru-cache": "^7.7.1", "minipass": "^3.1.6", "minipass-collect": "^1.0.2", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", "mkdirp": "^1.0.4", "p-map": "^4.0.0", "promise-inflight": "^1.0.1", "rimraf": "^3.0.2", "ssri": "^9.0.0", "tar": "^6.1.11", "unique-filename": "^2.0.0" } }, "sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ=="],
450โ
451โ "make-fetch-happen/lru-cache": ["lru-cache@7.18.3", "", {}, "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA=="],
452โ
453โ "make-fetch-happen/minipass": ["minipass@3.3.6", "", { "dependencies": { "yallist": "^4.0.0" } }, "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw=="],
454โ
455โ "make-fetch-happen/ssri": ["ssri@9.0.1", "", { "dependencies": { "minipass": "^3.1.1" } }, "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q=="],
456โ
457โ "micromatch/picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="],
458โ
459โ "minipass-collect/minipass": ["minipass@3.3.6", "", { "dependencies": { "yallist": "^4.0.0" } }, "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw=="],
460โ
461โ "minipass-fetch/minipass": ["minipass@3.3.6", "", { "dependencies": { "yallist": "^4.0.0" } }, "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw=="],
462โ
463โ "minipass-fetch/minizlib": ["minizlib@2.1.2", "", { "dependencies": { "minipass": "^3.0.0", "yallist": "^4.0.0" } }, "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg=="],
464โ
465โ "minipass-flush/minipass": ["minipass@3.3.6", "", { "dependencies": { "yallist": "^4.0.0" } }, "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw=="],
466โ
467โ "minipass-pipeline/minipass": ["minipass@3.3.6", "", { "dependencies": { "yallist": "^4.0.0" } }, "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw=="],
468โ
469โ "minipass-sized/minipass": ["minipass@3.3.6", "", { "dependencies": { "yallist": "^4.0.0" } }, "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw=="],
470โ
471โ "path-scurry/lru-cache": ["lru-cache@11.2.5", "", {}, "sha512-vFrFJkWtJvJnD5hg+hJvVE8Lh/TcMzKnTgCWmtBipwI5yLX/iX+5UB2tfuyODF5E7k9xEzMdYgGqaSb1c0c5Yw=="],
472โ
473โ "pumpify/pump": ["pump@2.0.1", "", { "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" } }, "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA=="],
474โ
475โ "purescript-installer/env-paths": ["env-paths@2.2.1", "", {}, "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A=="],
476โ
477โ "purescript-installer/tar": ["tar@6.2.1", "", { "dependencies": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", "minipass": "^5.0.0", "minizlib": "^2.1.1", "mkdirp": "^1.0.3", "yallist": "^4.0.0" } }, "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A=="],
478โ
479โ "rimraf/glob": ["glob@7.2.3", "", { "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q=="],
480โ
481โ "slice-ansi/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="],
482โ
483โ "wrap-ansi/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="],
484โ
485โ "wrap-ansi-cjs/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="],
486โ
487โ "@isaacs/cliui/string-width/emoji-regex": ["emoji-regex@9.2.2", "", {}, "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg=="],
488โ
489โ "@isaacs/cliui/strip-ansi/ansi-regex": ["ansi-regex@6.2.2", "", {}, "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg=="],
490โ
491โ "@isaacs/cliui/wrap-ansi/ansi-styles": ["ansi-styles@6.2.3", "", {}, "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg=="],
492โ
493โ "@npmcli/move-file/rimraf/glob": ["glob@7.2.3", "", { "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q=="],
494โ
495โ "cacache/glob/minimatch": ["minimatch@3.1.2", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="],
496โ
497โ "fs-minipass/minipass/yallist": ["yallist@4.0.0", "", {}, "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="],
498โ
499โ "make-fetch-happen/cacache/chownr": ["chownr@2.0.0", "", {}, "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ=="],
500โ
501โ "make-fetch-happen/cacache/glob": ["glob@8.1.0", "", { "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^5.0.1", "once": "^1.3.0" } }, "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ=="],
502โ
503โ "make-fetch-happen/cacache/mkdirp": ["mkdirp@1.0.4", "", { "bin": { "mkdirp": "bin/cmd.js" } }, "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw=="],
504โ
505โ "make-fetch-happen/cacache/rimraf": ["rimraf@3.0.2", "", { "dependencies": { "glob": "^7.1.3" }, "bin": { "rimraf": "bin.js" } }, "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA=="],
506โ
507โ "make-fetch-happen/cacache/tar": ["tar@6.2.1", "", { "dependencies": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", "minipass": "^5.0.0", "minizlib": "^2.1.1", "mkdirp": "^1.0.3", "yallist": "^4.0.0" } }, "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A=="],
508โ
509โ "make-fetch-happen/cacache/unique-filename": ["unique-filename@2.0.1", "", { "dependencies": { "unique-slug": "^3.0.0" } }, "sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A=="],
510โ
511โ "make-fetch-happen/minipass/yallist": ["yallist@4.0.0", "", {}, "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="],
512โ
513โ "minipass-collect/minipass/yallist": ["yallist@4.0.0", "", {}, "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="],
514โ
515โ "minipass-fetch/minipass/yallist": ["yallist@4.0.0", "", {}, "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="],
516โ
517โ "minipass-fetch/minizlib/yallist": ["yallist@4.0.0", "", {}, "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="],
518โ
519โ "minipass-flush/minipass/yallist": ["yallist@4.0.0", "", {}, "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="],
520โ
521โ "minipass-pipeline/minipass/yallist": ["yallist@4.0.0", "", {}, "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="],
522โ
523โ "minipass-sized/minipass/yallist": ["yallist@4.0.0", "", {}, "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="],
524โ
525โ "purescript-installer/tar/chownr": ["chownr@2.0.0", "", {}, "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ=="],
526โ
527โ "purescript-installer/tar/minipass": ["minipass@5.0.0", "", {}, "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ=="],
528โ
529โ "purescript-installer/tar/minizlib": ["minizlib@2.1.2", "", { "dependencies": { "minipass": "^3.0.0", "yallist": "^4.0.0" } }, "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg=="],
530โ
531โ "purescript-installer/tar/mkdirp": ["mkdirp@1.0.4", "", { "bin": { "mkdirp": "bin/cmd.js" } }, "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw=="],
532โ
533โ "purescript-installer/tar/yallist": ["yallist@4.0.0", "", {}, "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="],
534โ
535โ "rimraf/glob/minimatch": ["minimatch@3.1.2", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="],
536โ
537โ "slice-ansi/ansi-styles/color-convert": ["color-convert@2.0.1", "", { "dependencies": { "color-name": "~1.1.4" } }, "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ=="],
538โ
539โ "wrap-ansi-cjs/ansi-styles/color-convert": ["color-convert@2.0.1", "", { "dependencies": { "color-name": "~1.1.4" } }, "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ=="],
540โ
541โ "wrap-ansi/ansi-styles/color-convert": ["color-convert@2.0.1", "", { "dependencies": { "color-name": "~1.1.4" } }, "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ=="],
542โ
543โ "@npmcli/move-file/rimraf/glob/minimatch": ["minimatch@3.1.2", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="],
544โ
545โ "make-fetch-happen/cacache/glob/minimatch": ["minimatch@5.1.6", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g=="],
546โ
547โ "make-fetch-happen/cacache/rimraf/glob": ["glob@7.2.3", "", { "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q=="],
548โ
549โ "make-fetch-happen/cacache/tar/minipass": ["minipass@5.0.0", "", {}, "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ=="],
550โ
551โ "make-fetch-happen/cacache/tar/minizlib": ["minizlib@2.1.2", "", { "dependencies": { "minipass": "^3.0.0", "yallist": "^4.0.0" } }, "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg=="],
552โ
553โ "make-fetch-happen/cacache/tar/yallist": ["yallist@4.0.0", "", {}, "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="],
554โ
555โ "make-fetch-happen/cacache/unique-filename/unique-slug": ["unique-slug@3.0.0", "", { "dependencies": { "imurmurhash": "^0.1.4" } }, "sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w=="],
556โ
557โ "purescript-installer/tar/minizlib/minipass": ["minipass@3.3.6", "", { "dependencies": { "yallist": "^4.0.0" } }, "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw=="],
558โ
559โ "slice-ansi/ansi-styles/color-convert/color-name": ["color-name@1.1.4", "", {}, "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="],
560โ
561โ "wrap-ansi-cjs/ansi-styles/color-convert/color-name": ["color-name@1.1.4", "", {}, "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="],
562โ
563โ "wrap-ansi/ansi-styles/color-convert/color-name": ["color-name@1.1.4", "", {}, "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="],
564โ
565โ "make-fetch-happen/cacache/glob/minimatch/brace-expansion": ["brace-expansion@2.0.2", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ=="],
566โ
567โ "make-fetch-happen/cacache/rimraf/glob/minimatch": ["minimatch@3.1.2", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="],
568โ
569โ "make-fetch-happen/cacache/tar/minizlib/minipass": ["minipass@3.3.6", "", { "dependencies": { "yallist": "^4.0.0" } }, "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw=="],
570โ }
571โ}
generated-docs/html/Ansi.Codes.htmldeletedโ1373
@@ -1,1373 +0,0 @@
1โ<!DOCTYPE HTML>
2โ<html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1"><title>PureScript: Ansi.Codes</title><link href="https://fonts.googleapis.com/css?family=Roboto+Mono|Roboto:300,400,400i,700,700i" type="text/css" rel="stylesheet"><style type="text/css">/*! normalize.css v3.0.2 | MIT License | git.io/normalize */
3โ
4โ/**
5โ * 1. Set default font family to sans-serif.
6โ * 2. Prevent iOS text size adjust after orientation change, without disabling
7โ * user zoom.
8โ */
9โ
10โhtml {
11โ font-family: sans-serif; /* 1 */
12โ -ms-text-size-adjust: 100%; /* 2 */
13โ -webkit-text-size-adjust: 100%; /* 2 */
14โ}
15โ
16โ/**
17โ * Remove default margin.
18โ */
19โ
20โbody {
21โ margin: 0;
22โ}
23โ
24โ/* HTML5 display definitions
25โ ========================================================================== */
26โ
27โ/**
28โ * Correct `block` display not defined for any HTML5 element in IE 8/9.
29โ * Correct `block` display not defined for `details` or `summary` in IE 10/11
30โ * and Firefox.
31โ * Correct `block` display not defined for `main` in IE 11.
32โ */
33โ
34โarticle,
35โaside,
36โdetails,
37โfigcaption,
38โfigure,
39โfooter,
40โheader,
41โhgroup,
42โmain,
43โmenu,
44โnav,
45โsection,
46โsummary {
47โ display: block;
48โ}
49โ
50โ/**
51โ * 1. Correct `inline-block` display not defined in IE 8/9.
52โ * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
53โ */
54โ
55โaudio,
56โcanvas,
57โprogress,
58โvideo {
59โ display: inline-block; /* 1 */
60โ vertical-align: baseline; /* 2 */
61โ}
62โ
63โ/**
64โ * Prevent modern browsers from displaying `audio` without controls.
65โ * Remove excess height in iOS 5 devices.
66โ */
67โ
68โaudio:not([controls]) {
69โ display: none;
70โ height: 0;
71โ}
72โ
73โ/**
74โ * Address `[hidden]` styling not present in IE 8/9/10.
75โ * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22.
76โ */
77โ
78โ[hidden],
79โtemplate {
80โ display: none;
81โ}
82โ
83โ/* Links
84โ ========================================================================== */
85โ
86โ/**
87โ * Remove the gray background color from active links in IE 10.
88โ */
89โ
90โa {
91โ background-color: transparent;
92โ}
93โ
94โ/**
95โ * Improve readability when focused and also mouse hovered in all browsers.
96โ */
97โ
98โa:active,
99โa:hover {
100โ outline: 0;
101โ}
102โ
103โ/* Text-level semantics
104โ ========================================================================== */
105โ
106โ/**
107โ * Address styling not present in IE 8/9/10/11, Safari, and Chrome.
108โ */
109โ
110โabbr[title] {
111โ border-bottom: 1px dotted;
112โ}
113โ
114โ/**
115โ * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
116โ */
117โ
118โb,
119โstrong {
120โ font-weight: bold;
121โ}
122โ
123โ/**
124โ * Address styling not present in Safari and Chrome.
125โ */
126โ
127โdfn {
128โ font-style: italic;
129โ}
130โ
131โ/**
132โ * Address variable `h1` font-size and margin within `section` and `article`
133โ * contexts in Firefox 4+, Safari, and Chrome.
134โ */
135โ
136โh1 {
137โ font-size: 2em;
138โ margin: 0.67em 0;
139โ}
140โ
141โ/**
142โ * Address styling not present in IE 8/9.
143โ */
144โ
145โmark {
146โ background: #ff0;
147โ color: #000;
148โ}
149โ
150โ/**
151โ * Address inconsistent and variable font size in all browsers.
152โ */
153โ
154โsmall {
155โ font-size: 80%;
156โ}
157โ
158โ/**
159โ * Prevent `sub` and `sup` affecting `line-height` in all browsers.
160โ */
161โ
162โsub,
163โsup {
164โ font-size: 75%;
165โ line-height: 0;
166โ position: relative;
167โ vertical-align: baseline;
168โ}
169โ
170โsup {
171โ top: -0.5em;
172โ}
173โ
174โsub {
175โ bottom: -0.25em;
176โ}
177โ
178โ/* Embedded content
179โ ========================================================================== */
180โ
181โ/**
182โ * Remove border when inside `a` element in IE 8/9/10.
183โ */
184โ
185โimg {
186โ border: 0;
187โ}
188โ
189โ/**
190โ * Correct overflow not hidden in IE 9/10/11.
191โ */
192โ
193โsvg:not(:root) {
194โ overflow: hidden;
195โ}
196โ
197โ/* Grouping content
198โ ========================================================================== */
199โ
200โ/**
201โ * Address margin not present in IE 8/9 and Safari.
202โ */
203โ
204โfigure {
205โ margin: 1em 40px;
206โ}
207โ
208โ/**
209โ * Address differences between Firefox and other browsers.
210โ */
211โ
212โhr {
213โ -moz-box-sizing: content-box;
214โ box-sizing: content-box;
215โ height: 0;
216โ}
217โ
218โ/**
219โ * Contain overflow in all browsers.
220โ */
221โ
222โpre {
223โ overflow: auto;
224โ}
225โ
226โ/**
227โ * Address odd `em`-unit font size rendering in all browsers.
228โ */
229โ
230โcode,
231โkbd,
232โpre,
233โsamp {
234โ font-family: monospace, monospace;
235โ font-size: 1em;
236โ}
237โ
238โ/* Forms
239โ ========================================================================== */
240โ
241โ/**
242โ * Known limitation: by default, Chrome and Safari on OS X allow very limited
243โ * styling of `select`, unless a `border` property is set.
244โ */
245โ
246โ/**
247โ * 1. Correct color not being inherited.
248โ * Known issue: affects color of disabled elements.
249โ * 2. Correct font properties not being inherited.
250โ * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
251โ */
252โ
253โbutton,
254โinput,
255โoptgroup,
256โselect,
257โtextarea {
258โ color: inherit; /* 1 */
259โ font: inherit; /* 2 */
260โ margin: 0; /* 3 */
261โ}
262โ
263โ/**
264โ * Address `overflow` set to `hidden` in IE 8/9/10/11.
265โ */
266โ
267โbutton {
268โ overflow: visible;
269โ}
270โ
271โ/**
272โ * Address inconsistent `text-transform` inheritance for `button` and `select`.
273โ * All other form control elements do not inherit `text-transform` values.
274โ * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
275โ * Correct `select` style inheritance in Firefox.
276โ */
277โ
278โbutton,
279โselect {
280โ text-transform: none;
281โ}
282โ
283โ/**
284โ * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
285โ * and `video` controls.
286โ * 2. Correct inability to style clickable `input` types in iOS.
287โ * 3. Improve usability and consistency of cursor style between image-type
288โ * `input` and others.
289โ */
290โ
291โbutton,
292โhtml input[type="button"], /* 1 */
293โinput[type="reset"],
294โinput[type="submit"] {
295โ -webkit-appearance: button; /* 2 */
296โ cursor: pointer; /* 3 */
297โ}
298โ
299โ/**
300โ * Re-set default cursor for disabled elements.
301โ */
302โ
303โbutton[disabled],
304โhtml input[disabled] {
305โ cursor: default;
306โ}
307โ
308โ/**
309โ * Remove inner padding and border in Firefox 4+.
310โ */
311โ
312โbutton::-moz-focus-inner,
313โinput::-moz-focus-inner {
314โ border: 0;
315โ padding: 0;
316โ}
317โ
318โ/**
319โ * Address Firefox 4+ setting `line-height` on `input` using `!important` in
320โ * the UA stylesheet.
321โ */
322โ
323โinput {
324โ line-height: normal;
325โ}
326โ
327โ/**
328โ * It's recommended that you don't attempt to style these elements.
329โ * Firefox's implementation doesn't respect box-sizing, padding, or width.
330โ *
331โ * 1. Address box sizing set to `content-box` in IE 8/9/10.
332โ * 2. Remove excess padding in IE 8/9/10.
333โ */
334โ
335โinput[type="checkbox"],
336โinput[type="radio"] {
337โ box-sizing: border-box; /* 1 */
338โ padding: 0; /* 2 */
339โ}
340โ
341โ/**
342โ * Fix the cursor style for Chrome's increment/decrement buttons. For certain
343โ * `font-size` values of the `input`, it causes the cursor style of the
344โ * decrement button to change from `default` to `text`.
345โ */
346โ
347โinput[type="number"]::-webkit-inner-spin-button,
348โinput[type="number"]::-webkit-outer-spin-button {
349โ height: auto;
350โ}
351โ
352โ/**
353โ * 1. Address `appearance` set to `searchfield` in Safari and Chrome.
354โ * 2. Address `box-sizing` set to `border-box` in Safari and Chrome
355โ * (include `-moz` to future-proof).
356โ */
357โ
358โinput[type="search"] {
359โ -webkit-appearance: textfield; /* 1 */
360โ -moz-box-sizing: content-box;
361โ -webkit-box-sizing: content-box; /* 2 */
362โ box-sizing: content-box;
363โ}
364โ
365โ/**
366โ * Remove inner padding and search cancel button in Safari and Chrome on OS X.
367โ * Safari (but not Chrome) clips the cancel button when the search input has
368โ * padding (and `textfield` appearance).
369โ */
370โ
371โinput[type="search"]::-webkit-search-cancel-button,
372โinput[type="search"]::-webkit-search-decoration {
373โ -webkit-appearance: none;
374โ}
375โ
376โ/**
377โ * Define consistent border, margin, and padding.
378โ */
379โ
380โfieldset {
381โ border: 1px solid #c0c0c0;
382โ margin: 0 2px;
383โ padding: 0.35em 0.625em 0.75em;
384โ}
385โ
386โ/**
387โ * 1. Correct `color` not being inherited in IE 8/9/10/11.
388โ * 2. Remove padding so people aren't caught out if they zero out fieldsets.
389โ */
390โ
391โlegend {
392โ border: 0; /* 1 */
393โ padding: 0; /* 2 */
394โ}
395โ
396โ/**
397โ * Remove default vertical scrollbar in IE 8/9/10/11.
398โ */
399โ
400โtextarea {
401โ overflow: auto;
402โ}
403โ
404โ/**
405โ * Don't inherit the `font-weight` (applied by a rule above).
406โ * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
407โ */
408โ
409โoptgroup {
410โ font-weight: bold;
411โ}
412โ
413โ/* Tables
414โ ========================================================================== */
415โ
416โ/**
417โ * Remove most spacing between table cells.
418โ */
419โ
420โtable {
421โ border-collapse: collapse;
422โ border-spacing: 0;
423โ}
424โ
425โtd,
426โth {
427โ padding: 0;
428โ}
429โ</style><style type="text/css">/** ************************************************************************* *
430โ ** CSS for HTML docs (e.g. Pursuit)
431โ **
432โ ** STRUCTURE
433โ **
434โ ** This CSS file is structured into several sections, from general to
435โ ** specific, and (mostly) alphabetically within the sections.
436โ **
437โ ** Several global element styles are used. This is not encouraged and should
438โ ** be kept to a minimum. If you want to add new styles you'll most likely
439โ ** want to add a new CSS component. See the Components section for examples.
440โ **
441โ ** CSS components use three simple naming ideas from the BEM system:
442โ ** - Block: `.my-component`
443โ ** - Element: `.my-component__item`
444โ ** - Modifier: `.my-component.my-component--highlighted`
445โ **
446โ ** Example:
447โ ** <div .my-component>
448โ ** <div .my-component__item>
449โ ** <div .my-component__item>
450โ ** ...
451โ ** <div .my-component.my-component--highlighted>
452โ ** <div .my-component__item>
453โ ** <div .my-component__item>
454โ **
455โ ** Components can be nested.
456โ **
457โ **
458โ ** TYPOGRAPHY
459โ **
460โ ** Typographic choices for sizes, line-heights and margins are based on a
461โ ** musical major third scale (4:5). This gives us a way to find numbers
462โ ** and relationships between them that are perceived as harmonic.
463โ **
464โ ** To make use of this modular scale, use a ratio of the form
465โ ** (5/4)^n
466โ ** where n โ โค, -6 โค n โค 8.
467โ **
468โ ** LESS
469โ **
470โ ** This CSS is generated by less. To compile it:
471โ **
472โ ** npm install [-g] less
473โ ** lessc app/static/pursuit.less > app/static/pursuit.css
474โ **
475โ ** ************************************************************************* */
476โ/* Section: Variables
477โ * ========================================================================== */
478โ/* Section: Document Styles
479โ * ========================================================================== */
480โ:root {
481โ color-scheme: light dark;
482โ}
483โhtml {
484โ box-sizing: border-box;
485โ /* This overflow rule prevents everything from shifting slightly to the side
486โ when moving from a page which isn't large enough to generate a scrollbar
487โ to one that is. */
488โ overflow-y: scroll;
489โ}
490โ*,
491โ*::before,
492โ*::after {
493โ box-sizing: inherit;
494โ}
495โbody {
496โ background-color: #ffffff;
497โ color: #000000;
498โ font-family: "Roboto", sans-serif;
499โ font-size: 87.5%;
500โ line-height: 1.563;
501โ}
502โ@media (prefers-color-scheme: dark) {
503โ body {
504โ background-color: #141417;
505โ color: #dedede;
506โ }
507โ}
508โ@media (min-width: 38em) {
509โ body {
510โ font-size: 100%;
511โ }
512โ}
513โ/* Section: Utility Classes
514โ * ========================================================================== */
515โ.clear-floats {
516โ clear: both;
517โ}
518โ.clearfix::before,
519โ.clearfix::after {
520โ content: " ";
521โ display: table;
522โ}
523โ.clearfix::after {
524โ clear: both;
525โ}
526โ/* Content hidden like this will still be read by a screen reader */
527โ.hide-visually {
528โ position: absolute;
529โ left: -10000px;
530โ top: auto;
531โ width: 1px;
532โ height: 1px;
533โ overflow: hidden;
534โ}
535โ/* Section: Layout
536โ * ========================================================================== */
537โ.container {
538โ display: block;
539โ max-width: 66em;
540โ margin-left: auto;
541โ margin-right: auto;
542โ padding-left: 20px;
543โ padding-right: 20px;
544โ}
545โ.col {
546โ display: block;
547โ position: relative;
548โ width: 100%;
549โ}
550โ.col.col--main {
551โ margin-bottom: 3.08em;
552โ}
553โ.col.col--aside {
554โ margin-bottom: 2.44em;
555โ}
556โ@media (min-width: 52em) {
557โ .container {
558โ padding-left: 30px;
559โ padding-right: 30px;
560โ }
561โ .col.col--main {
562โ float: left;
563โ width: 63.655%;
564โ /* 66.6โฆ% - 30px */
565โ }
566โ .col.col--aside {
567โ float: right;
568โ font-size: 87.5%;
569โ width: 33.333333%;
570โ }
571โ}
572โ@media (min-width: 66em) {
573โ .col.col--aside {
574โ font-size: inherit;
575โ }
576โ}
577โ/* Footer
578โ * Based on http://www.lwis.net/journal/2008/02/08/pure-css-sticky-footer/
579โ * Except we don't support IE6
580โ * -------------------------------------------------------------------------- */
581โhtml,
582โbody {
583โ height: 100%;
584โ}
585โ.everything-except-footer {
586โ min-height: 100%;
587โ padding-bottom: 3em;
588โ}
589โ.footer {
590โ position: relative;
591โ height: 3em;
592โ margin-top: -3em;
593โ width: 100%;
594โ text-align: center;
595โ background-color: #1d222d;
596โ color: #f0f0f0;
597โ}
598โ@media (prefers-color-scheme: dark) {
599โ .footer {
600โ background-color: #1d222d;
601โ color: #f0f0f0;
602โ }
603โ}
604โ.footer * {
605โ margin-bottom: 0;
606โ}
607โ/* Section: Element Styles
608โ *
609โ * Have as few of these as possible and keep them general, because they will
610โ * influence every component hereafter.
611โ * ========================================================================== */
612โ:target {
613โ background-color: #f1f5f9;
614โ}
615โ@media (prefers-color-scheme: dark) {
616โ :target {
617โ background-color: #232327;
618โ }
619โ}
620โa,
621โa:visited {
622โ color: #c4953a;
623โ text-decoration: none;
624โ font-weight: bold;
625โ}
626โ@media (prefers-color-scheme: dark) {
627โ a,
628โ a:visited {
629โ color: #d8ac55;
630โ }
631โ}
632โa:hover {
633โ color: #7b5904;
634โ text-decoration: none;
635โ}
636โ@media (prefers-color-scheme: dark) {
637โ a:hover {
638โ color: #f0dcab;
639โ }
640โ}
641โcode,
642โpre {
643โ background-color: #f1f5f9;
644โ border-radius: 3px;
645โ color: #194a5b;
646โ font-family: "Roboto Mono", monospace;
647โ font-size: 87.5%;
648โ}
649โ@media (prefers-color-scheme: dark) {
650โ code,
651โ pre {
652โ background-color: #232327;
653โ color: #c1d3da;
654โ }
655โ}
656โ:target code,
657โ:target pre {
658โ background-color: #dfe8f1;
659โ}
660โ@media (prefers-color-scheme: dark) {
661โ :target code,
662โ :target pre {
663โ background-color: #2f2f34;
664โ }
665โ}
666โcode {
667โ padding: 0.2em 0;
668โ margin: 0;
669โ white-space: pre-wrap;
670โ word-wrap: break-word;
671โ}
672โcode::before,
673โcode::after {
674โ letter-spacing: -0.2em;
675โ content: "\00a0";
676โ}
677โa > code {
678โ font-weight: normal;
679โ}
680โa > code::before {
681โ content: "๐ก";
682โ letter-spacing: 0.33em;
683โ}
684โa:hover > code {
685โ color: #c4953a;
686โ}
687โ@media (prefers-color-scheme: dark) {
688โ a:hover > code {
689โ color: #d8ac55;
690โ }
691โ}
692โpre {
693โ margin-top: 0;
694โ margin-bottom: 0;
695โ padding: 1em 1.25rem;
696โ /* Using rem here to align with lists etc. */
697โ overflow: auto;
698โ white-space: pre;
699โ word-wrap: normal;
700โ}
701โpre code {
702โ background-color: transparent;
703โ border: 0;
704โ font-size: 100%;
705โ max-width: auto;
706โ padding: 0;
707โ margin: 0;
708โ overflow: visible;
709โ line-height: inherit;
710โ white-space: pre;
711โ word-break: normal;
712โ word-wrap: normal;
713โ}
714โpre code::before,
715โpre code::after {
716โ content: normal;
717โ}
718โh1 {
719โ font-size: 3.052em;
720โ font-weight: 300;
721โ letter-spacing: -0.5px;
722โ line-height: 1.125;
723โ margin-top: 1.563rem;
724โ margin-bottom: 1.25rem;
725โ}
726โ@media (min-width: 52em) {
727โ h1 {
728โ font-size: 3.814em;
729โ margin-top: 5.96rem;
730โ }
731โ}
732โh2 {
733โ font-size: 1.953em;
734โ font-weight: normal;
735โ line-height: 1.25;
736โ margin-top: 3.052rem;
737โ margin-bottom: 1rem;
738โ}
739โh3 {
740โ font-size: 1.563em;
741โ font-weight: normal;
742โ line-height: 1.25;
743โ margin-top: 2.441rem;
744โ margin-bottom: 1rem;
745โ}
746โh4 {
747โ font-size: 1.25em;
748โ font-weight: normal;
749โ margin-top: 2.441rem;
750โ margin-bottom: 1rem;
751โ}
752โh1 + h2,
753โh1 + h3,
754โh1 + h4,
755โh2 + h3,
756โh2 + h4,
757โh3 + h4 {
758โ margin-top: 1rem;
759โ}
760โhr {
761โ border: none;
762โ height: 1px;
763โ background-color: #cccccc;
764โ}
765โ@media (prefers-color-scheme: dark) {
766โ hr {
767โ background-color: #43434e;
768โ }
769โ}
770โimg {
771โ border-style: none;
772โ max-width: 100%;
773โ}
774โp {
775โ font-size: 1em;
776โ margin-top: 1rem;
777โ margin-bottom: 1rem;
778โ}
779โtable {
780โ border-bottom: 1px solid #cccccc;
781โ border-collapse: collapse;
782โ border-spacing: 0;
783โ margin-top: 1rem;
784โ margin-bottom: 1rem;
785โ width: 100%;
786โ}
787โ@media (prefers-color-scheme: dark) {
788โ table {
789โ border-bottom-color: #43434e;
790โ }
791โ}
792โtd,
793โth {
794โ text-align: left;
795โ padding: 0.41em 0.51em;
796โ}
797โtd {
798โ border-top: 1px solid #cccccc;
799โ}
800โ@media (prefers-color-scheme: dark) {
801โ td {
802โ border-top-color: #43434e;
803โ }
804โ}
805โtd:first-child,
806โth:first-child {
807โ padding-left: 0;
808โ}
809โtd:last-child,
810โth:last-child {
811โ padding-right: 0;
812โ}
813โul {
814โ list-style-type: none;
815โ margin-top: 1rem;
816โ margin-bottom: 1rem;
817โ padding-left: 0;
818โ}
819โul li {
820โ position: relative;
821โ padding-left: 1.25em;
822โ}
823โul li::before {
824โ position: absolute;
825โ color: #a0a0a0;
826โ content: "โ";
827โ display: inline-block;
828โ margin-left: -1.25em;
829โ width: 1.25em;
830โ}
831โ@media (prefers-color-scheme: dark) {
832โ ul li::before {
833โ color: #a0a0a0;
834โ }
835โ}
836โ/* Tying this tightly to ul at the moment because it's a slight variation thereof */
837โul.ul--search li::before {
838โ content: "โฒ";
839โ top: -0.2em;
840โ transform: rotate(-45deg);
841โ}
842โol {
843โ margin-top: 1rem;
844โ margin-bottom: 1rem;
845โ padding-left: 1.25em;
846โ}
847โol li {
848โ position: relative;
849โ padding-left: 0;
850โ}
851โ/* Section: Components
852โ * ========================================================================== */
853โ/* Component: Badge
854โ * -------------------------------------------------------------------------- */
855โ.badge {
856โ position: relative;
857โ top: -0.1em;
858โ display: inline-block;
859โ background-color: #000000;
860โ border-radius: 1.3em;
861โ color: #ffffff;
862โ font-size: 77%;
863โ font-weight: bold;
864โ line-height: 1.563;
865โ text-align: center;
866โ height: 1.5em;
867โ width: 1.5em;
868โ}
869โ@media (prefers-color-scheme: dark) {
870โ .badge {
871โ background-color: #dedede;
872โ color: #141417;
873โ }
874โ}
875โ.badge.badge--package {
876โ background-color: #c4953a;
877โ letter-spacing: -0.1em;
878โ}
879โ@media (prefers-color-scheme: dark) {
880โ .badge.badge--package {
881โ background-color: #d8ac55;
882โ }
883โ}
884โ.badge.badge--module {
885โ background-color: #75B134;
886โ}
887โ/* Component: Declarations
888โ * -------------------------------------------------------------------------- */
889โ.decl__title {
890โ position: relative;
891โ padding-bottom: 0.328em;
892โ margin-bottom: 0.262em;
893โ}
894โ.decl__source {
895โ display: block;
896โ float: right;
897โ font-size: 64%;
898โ position: relative;
899โ top: 0.57em;
900โ}
901โ.decl__anchor,
902โ.decl__anchor:visited {
903โ position: absolute;
904โ left: -0.8em;
905โ color: #bababa;
906โ}
907โ@media (prefers-color-scheme: dark) {
908โ .decl__anchor,
909โ .decl__anchor:visited {
910โ color: #878787;
911โ }
912โ}
913โ.decl__anchor:hover {
914โ color: #c4953a;
915โ}
916โ@media (prefers-color-scheme: dark) {
917โ .decl__anchor:hover {
918โ color: #d8ac55;
919โ }
920โ}
921โ.decl__signature {
922โ background-color: transparent;
923โ border-radius: 0;
924โ border-top: 1px solid #cccccc;
925โ border-bottom: 1px solid #cccccc;
926โ padding: 0;
927โ}
928โ@media (prefers-color-scheme: dark) {
929โ .decl__signature {
930โ border-top-color: #43434e;
931โ border-bottom-color: #43434e;
932โ }
933โ}
934โ.decl__signature code {
935โ display: block;
936โ padding: 0.328em 0;
937โ padding-left: 2.441em;
938โ text-indent: -2.441em;
939โ white-space: normal;
940โ}
941โ.decl__role {
942โ font-family: "Roboto", sans-serif;
943โ font-style: italic;
944โ font-weight: normal;
945โ}
946โ/* See https://stackoverflow.com/a/32162038
947โ Content licensed under CC BY-SA 3.0
948โ*/
949โ.decl__role_hover[title] {
950โ /* Remove line that appears under abbr element */
951โ border-bottom: none;
952โ text-decoration: none;
953โ /* Ensure cursor doesn't change to question mark */
954โ cursor: inherit;
955โ}
956โ.decl__role_nominal::after {
957โ content: "nominal";
958โ}
959โ.decl__role_phantom::after {
960โ content: "phantom";
961โ}
962โ.decl__kind {
963โ border-bottom: 1px solid #cccccc;
964โ}
965โ@media (prefers-color-scheme: dark) {
966โ .decl__kind {
967โ border-bottom-color: #43434e;
968โ }
969โ}
970โ:target .decl__signature,
971โ:target .decl__signature code {
972โ /* We want the background to be transparent, even when the parent is a target */
973โ background-color: transparent;
974โ}
975โ.decl__body .keyword,
976โ.decl__body .syntax {
977โ color: #0b71b4;
978โ}
979โ@media (prefers-color-scheme: dark) {
980โ .decl__body .keyword,
981โ .decl__body .syntax {
982โ color: #3796d5;
983โ }
984โ}
985โ.decl__child_comments {
986โ margin-top: 1rem;
987โ margin-bottom: 1rem;
988โ}
989โ/* Component: Dependency Link
990โ * -------------------------------------------------------------------------- */
991โ.deplink {
992โ /* Currently no root styles, but keep the class as a namespace */
993โ}
994โ.deplink__link {
995โ display: inline-block;
996โ margin-right: 0.41em;
997โ}
998โ.deplink__version {
999โ color: #666666;
1000โ display: inline-block;
1001โ font-size: 0.8em;
1002โ line-height: 1;
1003โ}
1004โ@media (prefers-color-scheme: dark) {
1005โ .deplink__version {
1006โ color: #a0a0a0;
1007โ }
1008โ}
1009โ/* Component: Grouped List
1010โ * -------------------------------------------------------------------------- */
1011โ.grouped-list {
1012โ border-top: 1px solid #cccccc;
1013โ margin: 0 0 2.44em 0;
1014โ}
1015โ@media (prefers-color-scheme: dark) {
1016โ .grouped-list {
1017โ border-top-color: #43434e;
1018โ }
1019โ}
1020โ.grouped-list__title {
1021โ color: #666666;
1022โ font-size: 0.8em;
1023โ font-weight: 300;
1024โ letter-spacing: 1px;
1025โ margin: 0.8em 0 -0.1em 0;
1026โ text-transform: uppercase;
1027โ}
1028โ@media (prefers-color-scheme: dark) {
1029โ .grouped-list__title {
1030โ border-top-color: #a0a0a0;
1031โ }
1032โ}
1033โ.grouped-list__item {
1034โ margin: 0;
1035โ}
1036โ/* Component: Message
1037โ * -------------------------------------------------------------------------- */
1038โ.message {
1039โ border: 5px solid;
1040โ border-radius: 5px;
1041โ padding: 1em !important;
1042โ}
1043โ.message.message--error {
1044โ background-color: #fff0f0;
1045โ border-color: #c85050;
1046โ}
1047โ@media (prefers-color-scheme: dark) {
1048โ .message.message--error {
1049โ background-color: #6b0e0e;
1050โ border-color: #c85050;
1051โ }
1052โ}
1053โ.message.message--not-available {
1054โ background-color: #f0f096;
1055โ border-color: #e3e33d;
1056โ}
1057โ@media (prefers-color-scheme: dark) {
1058โ .message.message--not-available {
1059โ background-color: #56560b;
1060โ border-color: #b0b017;
1061โ }
1062โ}
1063โ/* Component: Multi Col
1064โ * Multiple columns side by side
1065โ * -------------------------------------------------------------------------- */
1066โ.multi-col {
1067โ margin-bottom: 2.44em;
1068โ}
1069โ.multi-col__col {
1070โ display: block;
1071โ padding-right: 1em;
1072โ position: relative;
1073โ width: 100%;
1074โ}
1075โ@media (min-width: 38em) and (max-width: 51.999999em) {
1076โ .multi-col__col {
1077โ float: left;
1078โ width: 50%;
1079โ }
1080โ .multi-col__col:nth-child(2n+3) {
1081โ clear: both;
1082โ }
1083โ}
1084โ@media (min-width: 52em) {
1085โ .multi-col__col {
1086โ float: left;
1087โ width: 33.333333%;
1088โ }
1089โ .multi-col__col:nth-child(3n+4) {
1090โ clear: both;
1091โ }
1092โ}
1093โ/* Component: Page Title
1094โ * -------------------------------------------------------------------------- */
1095โ.page-title {
1096โ margin: 4.77em 0 1.56em;
1097โ padding-bottom: 1.25em;
1098โ position: relative;
1099โ}
1100โ.page-title__title {
1101โ margin: 0 0 0 -0.05em;
1102โ /* Visually align on left edge */
1103โ}
1104โ.page-title__label {
1105โ position: relative;
1106โ color: #666666;
1107โ font-size: 0.8rem;
1108โ font-weight: 300;
1109โ letter-spacing: 1px;
1110โ margin-bottom: -0.8em;
1111โ text-transform: uppercase;
1112โ z-index: 1;
1113โ}
1114โ@media (prefers-color-scheme: dark) {
1115โ .page-title__label {
1116โ color: #a0a0a0;
1117โ }
1118โ}
1119โ/* Component: Top Banner
1120โ * -------------------------------------------------------------------------- */
1121โ.top-banner {
1122โ background-color: #1d222d;
1123โ color: #f0f0f0;
1124โ font-weight: normal;
1125โ}
1126โ@media (prefers-color-scheme: dark) {
1127โ .top-banner {
1128โ background-color: #1d222d;
1129โ color: #f0f0f0;
1130โ }
1131โ}
1132โ.top-banner__logo,
1133โ.top-banner__logo:visited {
1134โ float: left;
1135โ color: #f0f0f0;
1136โ font-size: 2.44em;
1137โ font-weight: 300;
1138โ line-height: 90px;
1139โ margin: 0;
1140โ}
1141โ@media (prefers-color-scheme: dark) {
1142โ .top-banner__logo,
1143โ .top-banner__logo:visited {
1144โ color: #f0f0f0;
1145โ }
1146โ}
1147โ.top-banner__logo:hover {
1148โ color: #c4953a;
1149โ text-decoration: none;
1150โ}
1151โ.top-banner__form {
1152โ margin-bottom: 1.25em;
1153โ}
1154โ.top-banner__form input {
1155โ border: 1px solid #1d222d;
1156โ border-radius: 3px;
1157โ background-color: #ffffff;
1158โ color: #1d222d;
1159โ font-weight: 300;
1160โ line-height: 2;
1161โ padding: 0.21em 0.512em;
1162โ width: 100%;
1163โ}
1164โ@media (prefers-color-scheme: dark) {
1165โ .top-banner__form input {
1166โ border-color: #1d222d;
1167โ background-color: #141417;
1168โ color: #dedede;
1169โ }
1170โ}
1171โ.top-banner__actions {
1172โ float: right;
1173โ text-align: right;
1174โ}
1175โ.top-banner__actions__item {
1176โ display: inline-block;
1177โ line-height: 90px;
1178โ margin: 0;
1179โ padding-left: 1.25em;
1180โ}
1181โ.top-banner__actions__item:first-child {
1182โ padding-left: 0;
1183โ}
1184โ.top-banner__actions__item a,
1185โ.top-banner__actions__item a:visited {
1186โ color: #f0f0f0;
1187โ}
1188โ@media (prefers-color-scheme: dark) {
1189โ .top-banner__actions__item a,
1190โ .top-banner__actions__item a:visited {
1191โ color: #f0f0f0;
1192โ }
1193โ}
1194โ.top-banner__actions__item a:hover {
1195โ color: #c4953a;
1196โ}
1197โ@media (prefers-color-scheme: dark) {
1198โ .top-banner__actions__item a:hover {
1199โ color: #d8ac55;
1200โ }
1201โ}
1202โ@media (min-width: 38em) {
1203โ .top-banner__logo {
1204โ float: left;
1205โ width: 25%;
1206โ }
1207โ .top-banner__form {
1208โ float: left;
1209โ line-height: 90px;
1210โ margin-bottom: 0;
1211โ width: 50%;
1212โ }
1213โ .top-banner__actions {
1214โ float: right;
1215โ width: 25%;
1216โ }
1217โ}
1218โ/* Component: Search Results
1219โ * -------------------------------------------------------------------------- */
1220โ.result.result--empty {
1221โ font-size: 1.25em;
1222โ}
1223โ.result__title {
1224โ font-size: 1.25em;
1225โ margin-bottom: 0.2rem;
1226โ}
1227โ.result__badge {
1228โ margin-left: -0.1em;
1229โ}
1230โ.result__body > *:first-child {
1231โ margin-top: 0!important;
1232โ}
1233โ.result__body > *:last-child {
1234โ margin-bottom: 0!important;
1235โ}
1236โ.result__signature {
1237โ background-color: transparent;
1238โ border-radius: 0;
1239โ border-top: 1px solid #cccccc;
1240โ border-bottom: 1px solid #cccccc;
1241โ padding: 0.328em 0;
1242โ}
1243โ@media (prefers-color-scheme: dark) {
1244โ .result__signature {
1245โ border-top-color: #43434e;
1246โ border-bottom-color: #43434e;
1247โ }
1248โ}
1249โ.result__signature code {
1250โ display: block;
1251โ padding-left: 2.441em;
1252โ text-indent: -2.441em;
1253โ white-space: normal;
1254โ}
1255โ.result__actions {
1256โ margin-top: 0.2rem;
1257โ}
1258โ.result__actions__item {
1259โ font-size: 80%;
1260โ}
1261โ.result__actions__item + .result__actions__item {
1262โ margin-left: 0.65em;
1263โ}
1264โ/* Component: Version Selector
1265โ * -------------------------------------------------------------------------- */
1266โ.version-selector {
1267โ margin-bottom: 0.8em;
1268โ}
1269โ@media (min-width: 38em) {
1270โ .version-selector {
1271โ position: absolute;
1272โ top: 0.8em;
1273โ right: 0;
1274โ margin-bottom: 0;
1275โ }
1276โ}
1277โ/* Section: FIXME
1278โ * These styles should be cleaned up
1279โ * ========================================================================== */
1280โ/* Help paragraphs */
1281โ.help {
1282โ padding: 5px 0;
1283โ}
1284โ.help h3 {
1285โ /* FIXME: target with class */
1286โ margin-top: 16px;
1287โ}
1288โ/* Section: Markdown
1289โ * Github rendered README
1290โ * ========================================================================== */
1291โ.markdown-body {
1292โ /*
1293โ Useful for narrow screens, such as mobiles. Documentation often contains URLs
1294โ which would otherwise force the page to become wider, and force creation of
1295โ horizontal scrollbars. Yuck.
1296โ */
1297โ word-wrap: break-word;
1298โ}
1299โ.markdown-body > *:first-child {
1300โ margin-top: 0 !important;
1301โ}
1302โ.markdown-body > *:last-child {
1303โ margin-bottom: 0 !important;
1304โ}
1305โ.markdown-body a:not([href]) {
1306โ color: inherit;
1307โ text-decoration: none;
1308โ}
1309โ.markdown-body blockquote {
1310โ margin: 0;
1311โ padding: 0 1em;
1312โ color: #777;
1313โ border-left: 0.25em solid #ddd;
1314โ}
1315โ@media (prefers-color-scheme: dark) {
1316โ .markdown-body blockquote {
1317โ border-left-color: #444;
1318โ }
1319โ}
1320โ.markdown-body blockquote > :first-child {
1321โ margin-top: 0;
1322โ}
1323โ.markdown-body blockquote > :last-child {
1324โ margin-bottom: 0;
1325โ}
1326โ.markdown-body .anchor {
1327โ /* We hide the anchor because the link doesn't point to a valid location */
1328โ display: none;
1329โ}
1330โ.markdown-body .pl-k {
1331โ /* Keyword */
1332โ color: #a0a0a0;
1333โ}
1334โ@media (prefers-color-scheme: dark) {
1335โ .markdown-body .pl-k {
1336โ color: #676767;
1337โ }
1338โ}
1339โ.markdown-body .pl-c1,
1340โ.markdown-body .pl-en {
1341โ /* Not really sure what this is */
1342โ color: #39d;
1343โ}
1344โ.markdown-body .pl-s {
1345โ /* String literals */
1346โ color: #1a1;
1347โ}
1348โ.markdown-body .pl-cce {
1349โ /* String literal escape sequences */
1350โ color: #921;
1351โ}
1352โ.markdown-body .pl-smi {
1353โ /* type variables? */
1354โ color: #62b;
1355โ}
1356โ</style></head><body><div class="everything-except-footer"><div class="top-banner clearfix"><div class="container clearfix"><div style="float: left; font-size: 2.44em; font-weight: 300; line-height: 90px; margin: 0">PureScript API documentation</div><div class="top-banner__actions"><div class="top-banner__actions__item"><a href="index.html">Index</a></div></div></div></div><main class="container clearfix" role="main"><div class="page-title clearfix"><div class="page-title__label">Module</div><h1 class="page-title__title">Ansi.Codes</h1></div><div class="col col--main"><p>This module defines a data type representing ANSI escape codes, as well as
1357โfunctions for serialising them as Strings.</p>
1358โ<div class="decl" id="v:prefix"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:prefix">#</a><span>prefix</span> </h3><div class="decl__body"><pre class="decl__signature"><code><a href="Ansi.Codes.html#v:prefix" title="Ansi.Codes.prefix"><span class="ident">prefix</span></a> <span class="syntax">::</span> <a href="Prim.html#t:String" title="Prim.String"><span class="ctor">String</span></a></code></pre><p>The prefix for all escape codes.</p>
1359โ</div></div><div class="decl" id="v:colorSuffix"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:colorSuffix">#</a><span>colorSuffix</span> </h3><div class="decl__body"><pre class="decl__signature"><code><a href="Ansi.Codes.html#v:colorSuffix" title="Ansi.Codes.colorSuffix"><span class="ident">colorSuffix</span></a> <span class="syntax">::</span> <a href="Prim.html#t:String" title="Prim.String"><span class="ctor">String</span></a></code></pre><p>The suffix for escape codes; note that this is only required for colors.</p>
1360โ</div></div><div class="decl" id="t:EscapeCode"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#t:EscapeCode">#</a><span>EscapeCode</span> </h3><div class="decl__body"><pre class="decl__signature"><code><span class="keyword">data</span> <a href="Ansi.Codes.html#t:EscapeCode" title="Ansi.Codes.EscapeCode"><span class="ctor">EscapeCode</span></a></code></pre><p>An ANSI escape code. Not all sequences are implemented.
1361โSee: <a href="https://en.wikipedia.org/wiki/ANSI_escape_code">https://en.wikipedia.org/wiki/ANSI_escape_code</a>.</p>
1362โ<h4>Constructors</h4><ul><li id="v:Up"><code><a href="Ansi.Codes.html#v:Up" title="Ansi.Codes.Up"><span class="ctor">Up</span></a> <a href="Prim.html#t:Int" title="Prim.Int"><span class="ctor">Int</span></a></code></li><li id="v:Down"><code><a href="Ansi.Codes.html#v:Down" title="Ansi.Codes.Down"><span class="ctor">Down</span></a> <a href="Prim.html#t:Int" title="Prim.Int"><span class="ctor">Int</span></a></code></li><li id="v:Forward"><code><a href="Ansi.Codes.html#v:Forward" title="Ansi.Codes.Forward"><span class="ctor">Forward</span></a> <a href="Prim.html#t:Int" title="Prim.Int"><span class="ctor">Int</span></a></code></li><li id="v:Back"><code><a href="Ansi.Codes.html#v:Back" title="Ansi.Codes.Back"><span class="ctor">Back</span></a> <a href="Prim.html#t:Int" title="Prim.Int"><span class="ctor">Int</span></a></code></li><li id="v:NextLine"><code><a href="Ansi.Codes.html#v:NextLine" title="Ansi.Codes.NextLine"><span class="ctor">NextLine</span></a> <a href="Prim.html#t:Int" title="Prim.Int"><span class="ctor">Int</span></a></code></li><li id="v:PreviousLine"><code><a href="Ansi.Codes.html#v:PreviousLine" title="Ansi.Codes.PreviousLine"><span class="ctor">PreviousLine</span></a> <a href="Prim.html#t:Int" title="Prim.Int"><span class="ctor">Int</span></a></code></li><li id="v:HorizontalAbsolute"><code><a href="Ansi.Codes.html#v:HorizontalAbsolute" title="Ansi.Codes.HorizontalAbsolute"><span class="ctor">HorizontalAbsolute</span></a> <a href="Prim.html#t:Int" title="Prim.Int"><span class="ctor">Int</span></a></code></li><li id="v:Position"><code><a href="Ansi.Codes.html#v:Position" title="Ansi.Codes.Position"><span class="ctor">Position</span></a> <a href="Prim.html#t:Int" title="Prim.Int"><span class="ctor">Int</span></a> <a href="Prim.html#t:Int" title="Prim.Int"><span class="ctor">Int</span></a></code></li><li id="v:EraseData"><code><a href="Ansi.Codes.html#v:EraseData" title="Ansi.Codes.EraseData"><span class="ctor">EraseData</span></a> <a href="Ansi.Codes.html#t:EraseParam" title="Ansi.Codes.EraseParam"><span class="ctor">EraseParam</span></a></code></li><li id="v:EraseLine"><code><a href="Ansi.Codes.html#v:EraseLine" title="Ansi.Codes.EraseLine"><span class="ctor">EraseLine</span></a> <a href="Ansi.Codes.html#t:EraseParam" title="Ansi.Codes.EraseParam"><span class="ctor">EraseParam</span></a></code></li><li id="v:ScrollUp"><code><a href="Ansi.Codes.html#v:ScrollUp" title="Ansi.Codes.ScrollUp"><span class="ctor">ScrollUp</span></a> <a href="Prim.html#t:Int" title="Prim.Int"><span class="ctor">Int</span></a></code></li><li id="v:ScrollDown"><code><a href="Ansi.Codes.html#v:ScrollDown" title="Ansi.Codes.ScrollDown"><span class="ctor">ScrollDown</span></a> <a href="Prim.html#t:Int" title="Prim.Int"><span class="ctor">Int</span></a></code></li><li id="v:Graphics"><code><a href="Ansi.Codes.html#v:Graphics" title="Ansi.Codes.Graphics"><span class="ctor">Graphics</span></a> <span class="syntax">(</span><a href="Data.List.Types.html#t:NonEmptyList" title="Data.List.Types.NonEmptyList"><span class="ctor">NonEmptyList</span></a> <a href="Ansi.Codes.html#t:GraphicsParam" title="Ansi.Codes.GraphicsParam"><span class="ctor">GraphicsParam</span></a><span class="syntax">)</span></code></li><li id="v:SavePosition"><code><a href="Ansi.Codes.html#v:SavePosition" title="Ansi.Codes.SavePosition"><span class="ctor">SavePosition</span></a></code></li><li id="v:RestorePosition"><code><a href="Ansi.Codes.html#v:RestorePosition" title="Ansi.Codes.RestorePosition"><span class="ctor">RestorePosition</span></a></code></li><li id="v:QueryPosition"><code><a href="Ansi.Codes.html#v:QueryPosition" title="Ansi.Codes.QueryPosition"><span class="ctor">QueryPosition</span></a></code></li><li id="v:HideCursor"><code><a href="Ansi.Codes.html#v:HideCursor" title="Ansi.Codes.HideCursor"><span class="ctor">HideCursor</span></a></code></li><li id="v:ShowCursor"><code><a href="Ansi.Codes.html#v:ShowCursor" title="Ansi.Codes.ShowCursor"><span class="ctor">ShowCursor</span></a></code></li></ul><h4>Instances</h4><ul><li id="v:genericEscapeCode"><code><a href="Data.Generic.Rep.html#t:Generic" title="Data.Generic.Rep.Generic"><span class="ctor">Generic</span></a> <a href="Ansi.Codes.html#t:EscapeCode" title="Ansi.Codes.EscapeCode"><span class="ctor">EscapeCode</span></a> <span class="syntax">_</span></code></li><li id="v:eqEscapeCode"><code><a href="Data.Eq.html#t:Eq" title="Data.Eq.Eq"><span class="ctor">Eq</span></a> <a href="Ansi.Codes.html#t:EscapeCode" title="Ansi.Codes.EscapeCode"><span class="ctor">EscapeCode</span></a></code></li><li id="v:ordEscapeCode"><code><a href="Data.Ord.html#t:Ord" title="Data.Ord.Ord"><span class="ctor">Ord</span></a> <a href="Ansi.Codes.html#t:EscapeCode" title="Ansi.Codes.EscapeCode"><span class="ctor">EscapeCode</span></a></code></li><li id="v:showEscapeCode"><code><a href="Data.Show.html#t:Show" title="Data.Show.Show"><span class="ctor">Show</span></a> <a href="Ansi.Codes.html#t:EscapeCode" title="Ansi.Codes.EscapeCode"><span class="ctor">EscapeCode</span></a></code></li></ul></div></div><div class="decl" id="v:escapeCodeToString"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:escapeCodeToString">#</a><span>escapeCodeToString</span> </h3><div class="decl__body"><pre class="decl__signature"><code><a href="Ansi.Codes.html#v:escapeCodeToString" title="Ansi.Codes.escapeCodeToString"><span class="ident">escapeCodeToString</span></a> <span class="syntax">::</span> <a href="Ansi.Codes.html#t:EscapeCode" title="Ansi.Codes.EscapeCode"><span class="ctor">EscapeCode</span></a> <span class="syntax">-></span> <a href="Prim.html#t:String" title="Prim.String"><span class="ctor">String</span></a></code></pre><p>Convert an escape code to the form recognised by terminals.</p>
1363โ</div></div><div class="decl" id="t:EraseParam"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#t:EraseParam">#</a><span>EraseParam</span> </h3><div class="decl__body"><pre class="decl__signature"><code><span class="keyword">data</span> <a href="Ansi.Codes.html#t:EraseParam" title="Ansi.Codes.EraseParam"><span class="ctor">EraseParam</span></a></code></pre><p>Specifies how much text to erase.</p>
1364โ<ul>
1365โ<li>ToEnd: erase from the cursor to the end of the line or screen.</li>
1366โ<li>FromBeginning: erase to the cursor from the beginning of the line or
1367โscreen.</li>
1368โ<li>Entire: erase the entire line or screen.</li>
1369โ</ul>
1370โ<h4>Constructors</h4><ul><li id="v:ToEnd"><code><a href="Ansi.Codes.html#v:ToEnd" title="Ansi.Codes.ToEnd"><span class="ctor">ToEnd</span></a></code></li><li id="v:FromBeginning"><code><a href="Ansi.Codes.html#v:FromBeginning" title="Ansi.Codes.FromBeginning"><span class="ctor">FromBeginning</span></a></code></li><li id="v:Entire"><code><a href="Ansi.Codes.html#v:Entire" title="Ansi.Codes.Entire"><span class="ctor">Entire</span></a></code></li></ul><h4>Instances</h4><ul><li id="v:genericEraseParam"><code><a href="Data.Generic.Rep.html#t:Generic" title="Data.Generic.Rep.Generic"><span class="ctor">Generic</span></a> <a href="Ansi.Codes.html#t:EraseParam" title="Ansi.Codes.EraseParam"><span class="ctor">EraseParam</span></a> <span class="syntax">_</span></code></li><li id="v:eqEraseParam"><code><a href="Data.Eq.html#t:Eq" title="Data.Eq.Eq"><span class="ctor">Eq</span></a> <a href="Ansi.Codes.html#t:EraseParam" title="Ansi.Codes.EraseParam"><span class="ctor">EraseParam</span></a></code></li><li id="v:ordEraseParam"><code><a href="Data.Ord.html#t:Ord" title="Data.Ord.Ord"><span class="ctor">Ord</span></a> <a href="Ansi.Codes.html#t:EraseParam" title="Ansi.Codes.EraseParam"><span class="ctor">EraseParam</span></a></code></li><li id="v:showEraseParam"><code><a href="Data.Show.html#t:Show" title="Data.Show.Show"><span class="ctor">Show</span></a> <a href="Ansi.Codes.html#t:EraseParam" title="Ansi.Codes.EraseParam"><span class="ctor">EraseParam</span></a></code></li></ul></div></div><div class="decl" id="v:eraseParamToString"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:eraseParamToString">#</a><span>eraseParamToString</span> </h3><div class="decl__body"><pre class="decl__signature"><code><a href="Ansi.Codes.html#v:eraseParamToString" title="Ansi.Codes.eraseParamToString"><span class="ident">eraseParamToString</span></a> <span class="syntax">::</span> <a href="Ansi.Codes.html#t:EraseParam" title="Ansi.Codes.EraseParam"><span class="ctor">EraseParam</span></a> <span class="syntax">-></span> <a href="Prim.html#t:String" title="Prim.String"><span class="ctor">String</span></a></code></pre></div></div><div class="decl" id="t:GraphicsParam"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#t:GraphicsParam">#</a><span>GraphicsParam</span> </h3><div class="decl__body"><pre class="decl__signature"><code><span class="keyword">data</span> <a href="Ansi.Codes.html#t:GraphicsParam" title="Ansi.Codes.GraphicsParam"><span class="ctor">GraphicsParam</span></a></code></pre><p>A graphics parameter, controls how text appears; for example, bold,
1371โunderlined, foreground color, background color.</p>
1372โ<h4>Constructors</h4><ul><li id="v:Reset"><code><a href="Ansi.Codes.html#v:Reset" title="Ansi.Codes.Reset"><span class="ctor">Reset</span></a></code></li><li id="v:PMode"><code><a href="Ansi.Codes.html#v:PMode" title="Ansi.Codes.PMode"><span class="ctor">PMode</span></a> <a href="Ansi.Codes.html#t:RenderingMode" title="Ansi.Codes.RenderingMode"><span class="ctor">RenderingMode</span></a></code></li><li id="v:PForeground"><code><a href="Ansi.Codes.html#v:PForeground" title="Ansi.Codes.PForeground"><span class="ctor">PForeground</span></a> <a href="Ansi.Codes.html#t:Color" title="Ansi.Codes.Color"><span class="ctor">Color</span></a></code></li><li id="v:PBackground"><code><a href="Ansi.Codes.html#v:PBackground" title="Ansi.Codes.PBackground"><span class="ctor">PBackground</span></a> <a href="Ansi.Codes.html#t:Color" title="Ansi.Codes.Color"><span class="ctor">Color</span></a></code></li></ul><h4>Instances</h4><ul><li id="v:genericGraphicsParam"><code><a href="Data.Generic.Rep.html#t:Generic" title="Data.Generic.Rep.Generic"><span class="ctor">Generic</span></a> <a href="Ansi.Codes.html#t:GraphicsParam" title="Ansi.Codes.GraphicsParam"><span class="ctor">GraphicsParam</span></a> <span class="syntax">_</span></code></li><li id="v:eqGraphicsParam"><code><a href="Data.Eq.html#t:Eq" title="Data.Eq.Eq"><span class="ctor">Eq</span></a> <a href="Ansi.Codes.html#t:GraphicsParam" title="Ansi.Codes.GraphicsParam"><span class="ctor">GraphicsParam</span></a></code></li><li id="v:ordGraphicsParam"><code><a href="Data.Ord.html#t:Ord" title="Data.Ord.Ord"><span class="ctor">Ord</span></a> <a href="Ansi.Codes.html#t:GraphicsParam" title="Ansi.Codes.GraphicsParam"><span class="ctor">GraphicsParam</span></a></code></li><li id="v:showGraphicsParam"><code><a href="Data.Show.html#t:Show" title="Data.Show.Show"><span class="ctor">Show</span></a> <a href="Ansi.Codes.html#t:GraphicsParam" title="Ansi.Codes.GraphicsParam"><span class="ctor">GraphicsParam</span></a></code></li></ul></div></div><div class="decl" id="v:graphicsParamToString"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:graphicsParamToString">#</a><span>graphicsParamToString</span> </h3><div class="decl__body"><pre class="decl__signature"><code><a href="Ansi.Codes.html#v:graphicsParamToString" title="Ansi.Codes.graphicsParamToString"><span class="ident">graphicsParamToString</span></a> <span class="syntax">::</span> <a href="Ansi.Codes.html#t:GraphicsParam" title="Ansi.Codes.GraphicsParam"><span class="ctor">GraphicsParam</span></a> <span class="syntax">-></span> <a href="Prim.html#t:String" title="Prim.String"><span class="ctor">String</span></a></code></pre></div></div><div class="decl" id="t:RenderingMode"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#t:RenderingMode">#</a><span>RenderingMode</span> </h3><div class="decl__body"><pre class="decl__signature"><code><span class="keyword">data</span> <a href="Ansi.Codes.html#t:RenderingMode" title="Ansi.Codes.RenderingMode"><span class="ctor">RenderingMode</span></a></code></pre><h4>Constructors</h4><ul><li id="v:Bold"><code><a href="Ansi.Codes.html#v:Bold" title="Ansi.Codes.Bold"><span class="ctor">Bold</span></a></code></li><li id="v:Dim"><code><a href="Ansi.Codes.html#v:Dim" title="Ansi.Codes.Dim"><span class="ctor">Dim</span></a></code></li><li id="v:Italic"><code><a href="Ansi.Codes.html#v:Italic" title="Ansi.Codes.Italic"><span class="ctor">Italic</span></a></code></li><li id="v:Underline"><code><a href="Ansi.Codes.html#v:Underline" title="Ansi.Codes.Underline"><span class="ctor">Underline</span></a></code></li><li id="v:Inverse"><code><a href="Ansi.Codes.html#v:Inverse" title="Ansi.Codes.Inverse"><span class="ctor">Inverse</span></a></code></li><li id="v:Strikethrough"><code><a href="Ansi.Codes.html#v:Strikethrough" title="Ansi.Codes.Strikethrough"><span class="ctor">Strikethrough</span></a></code></li></ul><h4>Instances</h4><ul><li id="v:genericRenderingMode"><code><a href="Data.Generic.Rep.html#t:Generic" title="Data.Generic.Rep.Generic"><span class="ctor">Generic</span></a> <a href="Ansi.Codes.html#t:RenderingMode" title="Ansi.Codes.RenderingMode"><span class="ctor">RenderingMode</span></a> <span class="syntax">_</span></code></li><li id="v:eqRenderingMode"><code><a href="Data.Eq.html#t:Eq" title="Data.Eq.Eq"><span class="ctor">Eq</span></a> <a href="Ansi.Codes.html#t:RenderingMode" title="Ansi.Codes.RenderingMode"><span class="ctor">RenderingMode</span></a></code></li><li id="v:ordRenderingMode"><code><a href="Data.Ord.html#t:Ord" title="Data.Ord.Ord"><span class="ctor">Ord</span></a> <a href="Ansi.Codes.html#t:RenderingMode" title="Ansi.Codes.RenderingMode"><span class="ctor">RenderingMode</span></a></code></li><li id="v:showRenderingMode"><code><a href="Data.Show.html#t:Show" title="Data.Show.Show"><span class="ctor">Show</span></a> <a href="Ansi.Codes.html#t:RenderingMode" title="Ansi.Codes.RenderingMode"><span class="ctor">RenderingMode</span></a></code></li></ul></div></div><div class="decl" id="v:codeForRenderingMode"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:codeForRenderingMode">#</a><span>codeForRenderingMode</span> </h3><div class="decl__body"><pre class="decl__signature"><code><a href="Ansi.Codes.html#v:codeForRenderingMode" title="Ansi.Codes.codeForRenderingMode"><span class="ident">codeForRenderingMode</span></a> <span class="syntax">::</span> <a href="Ansi.Codes.html#t:RenderingMode" title="Ansi.Codes.RenderingMode"><span class="ctor">RenderingMode</span></a> <span class="syntax">-></span> <a href="Prim.html#t:Int" title="Prim.Int"><span class="ctor">Int</span></a></code></pre></div></div><div class="decl" id="t:Color"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#t:Color">#</a><span>Color</span> </h3><div class="decl__body"><pre class="decl__signature"><code><span class="keyword">data</span> <a href="Ansi.Codes.html#t:Color" title="Ansi.Codes.Color"><span class="ctor">Color</span></a></code></pre><p>The standard set of 16 ANSI colors.</p>
1373โ<h4>Constructors</h4><ul><li id="v:Black"><code><a href="Ansi.Codes.html#v:Black" title="Ansi.Codes.Black"><span class="ctor">Black</span></a></code></li><li id="v:Red"><code><a href="Ansi.Codes.html#v:Red" title="Ansi.Codes.Red"><span class="ctor">Red</span></a></code></li><li id="v:Green"><code><a href="Ansi.Codes.html#v:Green" title="Ansi.Codes.Green"><span class="ctor">Green</span></a></code></li><li id="v:Yellow"><code><a href="Ansi.Codes.html#v:Yellow" title="Ansi.Codes.Yellow"><span class="ctor">Yellow</span></a></code></li><li id="v:Blue"><code><a href="Ansi.Codes.html#v:Blue" title="Ansi.Codes.Blue"><span class="ctor">Blue</span></a></code></li><li id="v:Magenta"><code><a href="Ansi.Codes.html#v:Magenta" title="Ansi.Codes.Magenta"><span class="ctor">Magenta</span></a></code></li><li id="v:Cyan"><code><a href="Ansi.Codes.html#v:Cyan" title="Ansi.Codes.Cyan"><span class="ctor">Cyan</span></a></code></li><li id="v:White"><code><a href="Ansi.Codes.html#v:White" title="Ansi.Codes.White"><span class="ctor">White</span></a></code></li><li id="v:BrightBlack"><code><a href="Ansi.Codes.html#v:BrightBlack" title="Ansi.Codes.BrightBlack"><span class="ctor">BrightBlack</span></a></code></li><li id="v:BrightRed"><code><a href="Ansi.Codes.html#v:BrightRed" title="Ansi.Codes.BrightRed"><span class="ctor">BrightRed</span></a></code></li><li id="v:BrightGreen"><code><a href="Ansi.Codes.html#v:BrightGreen" title="Ansi.Codes.BrightGreen"><span class="ctor">BrightGreen</span></a></code></li><li id="v:BrightYellow"><code><a href="Ansi.Codes.html#v:BrightYellow" title="Ansi.Codes.BrightYellow"><span class="ctor">BrightYellow</span></a></code></li><li id="v:BrightBlue"><code><a href="Ansi.Codes.html#v:BrightBlue" title="Ansi.Codes.BrightBlue"><span class="ctor">BrightBlue</span></a></code></li><li id="v:BrightMagenta"><code><a href="Ansi.Codes.html#v:BrightMagenta" title="Ansi.Codes.BrightMagenta"><span class="ctor">BrightMagenta</span></a></code></li><li id="v:BrightCyan"><code><a href="Ansi.Codes.html#v:BrightCyan" title="Ansi.Codes.BrightCyan"><span class="ctor">BrightCyan</span></a></code></li><li id="v:BrightWhite"><code><a href="Ansi.Codes.html#v:BrightWhite" title="Ansi.Codes.BrightWhite"><span class="ctor">BrightWhite</span></a></code></li></ul><h4>Instances</h4><ul><li id="v:genericColor"><code><a href="Data.Generic.Rep.html#t:Generic" title="Data.Generic.Rep.Generic"><span class="ctor">Generic</span></a> <a href="Ansi.Codes.html#t:Color" title="Ansi.Codes.Color"><span class="ctor">Color</span></a> <span class="syntax">_</span></code></li><li id="v:eqColor"><code><a href="Data.Eq.html#t:Eq" title="Data.Eq.Eq"><span class="ctor">Eq</span></a> <a href="Ansi.Codes.html#t:Color" title="Ansi.Codes.Color"><span class="ctor">Color</span></a></code></li><li id="v:ordColor"><code><a href="Data.Ord.html#t:Ord" title="Data.Ord.Ord"><span class="ctor">Ord</span></a> <a href="Ansi.Codes.html#t:Color" title="Ansi.Codes.Color"><span class="ctor">Color</span></a></code></li><li id="v:showColor"><code><a href="Data.Show.html#t:Show" title="Data.Show.Show"><span class="ctor">Show</span></a> <a href="Ansi.Codes.html#t:Color" title="Ansi.Codes.Color"><span class="ctor">Color</span></a></code></li></ul></div></div><div class="decl" id="v:colorCode"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:colorCode">#</a><span>colorCode</span> </h3><div class="decl__body"><pre class="decl__signature"><code><a href="Ansi.Codes.html#v:colorCode" title="Ansi.Codes.colorCode"><span class="ident">colorCode</span></a> <span class="syntax">::</span> <a href="Ansi.Codes.html#t:Color" title="Ansi.Codes.Color"><span class="ctor">Color</span></a> <span class="syntax">-></span> <a href="Prim.html#t:Int" title="Prim.Int"><span class="ctor">Int</span></a></code></pre></div></div></div><div class="col col--aside"><h3>Modules</h3><ul><li><a href="Ansi.Codes.html">Ansi.Codes</a></li><li><a href="Ansi.Output.html">Ansi.Output</a></li><li><a href="Bolson.Control.html">Bolson.Control</a></li><li><a href="Bolson.Core.html">Bolson.Core</a></li><li><a href="Control.Alt.html">Control.Alt</a></li><li><a href="Control.Alternative.html">Control.Alternative</a></li><li><a href="Control.Applicative.html">Control.Applicative</a></li><li><a href="Control.Apply.html">Control.Apply</a></li><li><a href="Control.Biapplicative.html">Control.Biapplicative</a></li><li><a href="Control.Biapply.html">Control.Biapply</a></li><li><a href="Control.Bind.html">Control.Bind</a></li><li><a href="Control.Category.html">Control.Category</a></li><li><a href="Control.Comonad.html">Control.Comonad</a></li><li><a href="Control.Comonad.Cofree.html">Control.Comonad.Cofree</a></li><li><a href="Control.Comonad.Cofree.Class.html">Control.Comonad.Cofree.Class</a></li><li><a href="Control.Comonad.Env.html">Control.Comonad.Env</a></li><li><a href="Control.Comonad.Env.Class.html">Control.Comonad.Env.Class</a></li><li><a href="Control.Comonad.Env.Trans.html">Control.Comonad.Env.Trans</a></li><li><a href="Control.Comonad.Store.html">Control.Comonad.Store</a></li><li><a href="Control.Comonad.Store.Class.html">Control.Comonad.Store.Class</a></li><li><a href="Control.Comonad.Store.Trans.html">Control.Comonad.Store.Trans</a></li><li><a href="Control.Comonad.Traced.html">Control.Comonad.Traced</a></li><li><a href="Control.Comonad.Traced.Class.html">Control.Comonad.Traced.Class</a></li><li><a href="Control.Comonad.Traced.Trans.html">Control.Comonad.Traced.Trans</a></li><li><a href="Control.Comonad.Trans.Class.html">Control.Comonad.Trans.Class</a></li><li><a href="Control.Extend.html">Control.Extend</a></li><li><a href="Control.Lazy.html">Control.Lazy</a></li><li><a href="Control.Monad.html">Control.Monad</a></li><li><a href="Control.Monad.Cont.html">Control.Monad.Cont</a></li><li><a href="Control.Monad.Cont.Class.html">Control.Monad.Cont.Class</a></li><li><a href="Control.Monad.Cont.Trans.html">Control.Monad.Cont.Trans</a></li><li><a href="Control.Monad.Error.Class.html">Control.Monad.Error.Class</a></li><li><a href="Control.Monad.Except.html">Control.Monad.Except</a></li><li><a href="Control.Monad.Except.Trans.html">Control.Monad.Except.Trans</a></li><li><a href="Control.Monad.Fork.Class.html">Control.Monad.Fork.Class</a></li><li><a href="Control.Monad.Free.html">Control.Monad.Free</a></li><li><a href="Control.Monad.Free.Class.html">Control.Monad.Free.Class</a></li><li><a href="Control.Monad.Gen.html">Control.Monad.Gen</a></li><li><a href="Control.Monad.Gen.Class.html">Control.Monad.Gen.Class</a></li><li><a href="Control.Monad.Gen.Common.html">Control.Monad.Gen.Common</a></li><li><a href="Control.Monad.Identity.Trans.html">Control.Monad.Identity.Trans</a></li><li><a href="Control.Monad.List.Trans.html">Control.Monad.List.Trans</a></li><li><a href="Control.Monad.Maybe.Trans.html">Control.Monad.Maybe.Trans</a></li><li><a href="Control.Monad.Morph.html">Control.Monad.Morph</a></li><li><a href="Control.Monad.RWS.html">Control.Monad.RWS</a></li><li><a href="Control.Monad.RWS.Trans.html">Control.Monad.RWS.Trans</a></li><li><a href="Control.Monad.Reader.html">Control.Monad.Reader</a></li><li><a href="Control.Monad.Reader.Class.html">Control.Monad.Reader.Class</a></li><li><a href="Control.Monad.Reader.Trans.html">Control.Monad.Reader.Trans</a></li><li><a href="Control.Monad.Rec.Class.html">Control.Monad.Rec.Class</a></li><li><a href="Control.Monad.ST.html">Control.Monad.ST</a></li><li><a href="Control.Monad.ST.Class.html">Control.Monad.ST.Class</a></li><li><a href="Control.Monad.ST.Global.html">Control.Monad.ST.Global</a></li><li><a href="Control.Monad.ST.Internal.html">Control.Monad.ST.Internal</a></li><li><a href="Control.Monad.ST.Ref.html">Control.Monad.ST.Ref</a></li><li><a href="Control.Monad.ST.Uncurried.html">Control.Monad.ST.Uncurried</a></li><li><a href="Control.Monad.State.html">Control.Monad.State</a></li><li><a href="Control.Monad.State.Class.html">Control.Monad.State.Class</a></li><li><a href="Control.Monad.State.Trans.html">Control.Monad.State.Trans</a></li><li><a href="Control.Monad.Trampoline.html">Control.Monad.Trampoline</a></li><li><a href="Control.Monad.Trans.Class.html">Control.Monad.Trans.Class</a></li><li><a href="Control.Monad.Writer.html">Control.Monad.Writer</a></li><li><a href="Control.Monad.Writer.Class.html">Control.Monad.Writer.Class</a></li><li><a href="Control.Monad.Writer.Trans.html">Control.Monad.Writer.Trans</a></li><li><a href="Control.MonadPlus.html">Control.MonadPlus</a></li><li><a href="Control.Parallel.html">Control.Parallel</a></li><li><a href="Control.Parallel.Class.html">Control.Parallel.Class</a></li><li><a href="Control.Plus.html">Control.Plus</a></li><li><a href="Control.Semigroupoid.html">Control.Semigroupoid</a></li><li><a href="Data.Array.html">Data.Array</a></li><li><a href="Data.Array.NonEmpty.html">Data.Array.NonEmpty</a></li><li><a href="Data.Array.NonEmpty.Internal.html">Data.Array.NonEmpty.Internal</a></li><li><a href="Data.Array.Partial.html">Data.Array.Partial</a></li><li><a href="Data.Array.ST.html">Data.Array.ST</a></li><li><a href="Data.Array.ST.Iterator.html">Data.Array.ST.Iterator</a></li><li><a href="Data.Array.ST.Partial.html">Data.Array.ST.Partial</a></li><li><a href="Data.ArrayBuffer.Types.html">Data.ArrayBuffer.Types</a></li><li><a href="Data.Bifoldable.html">Data.Bifoldable</a></li><li><a href="Data.Bifunctor.html">Data.Bifunctor</a></li><li><a href="Data.Bifunctor.Join.html">Data.Bifunctor.Join</a></li><li><a href="Data.Bitraversable.html">Data.Bitraversable</a></li><li><a href="Data.Boolean.html">Data.Boolean</a></li><li><a href="Data.BooleanAlgebra.html">Data.BooleanAlgebra</a></li><li><a href="Data.Bounded.html">Data.Bounded</a></li><li><a href="Data.Bounded.Generic.html">Data.Bounded.Generic</a></li><li><a href="Data.CatList.html">Data.CatList</a></li><li><a href="Data.CatQueue.html">Data.CatQueue</a></li><li><a href="Data.Char.html">Data.Char</a></li><li><a href="Data.Char.Gen.html">Data.Char.Gen</a></li><li><a href="Data.CommutativeRing.html">Data.CommutativeRing</a></li><li><a href="Data.Compactable.html">Data.Compactable</a></li><li><a href="Data.Comparison.html">Data.Comparison</a></li><li><a href="Data.Const.html">Data.Const</a></li><li><a href="Data.Coyoneda.html">Data.Coyoneda</a></li><li><a href="Data.Date.html">Data.Date</a></li><li><a href="Data.Date.Component.html">Data.Date.Component</a></li><li><a href="Data.Date.Component.Gen.html">Data.Date.Component.Gen</a></li><li><a href="Data.Date.Gen.html">Data.Date.Gen</a></li><li><a href="Data.DateTime.html">Data.DateTime</a></li><li><a href="Data.DateTime.Gen.html">Data.DateTime.Gen</a></li><li><a href="Data.DateTime.Instant.html">Data.DateTime.Instant</a></li><li><a href="Data.Decidable.html">Data.Decidable</a></li><li><a href="Data.Decide.html">Data.Decide</a></li><li><a href="Data.Distributive.html">Data.Distributive</a></li><li><a href="Data.Divide.html">Data.Divide</a></li><li><a href="Data.Divisible.html">Data.Divisible</a></li><li><a href="Data.DivisionRing.html">Data.DivisionRing</a></li><li><a href="Data.Either.html">Data.Either</a></li><li><a href="Data.Either.Inject.html">Data.Either.Inject</a></li><li><a href="Data.Either.Nested.html">Data.Either.Nested</a></li><li><a href="Data.Enum.html">Data.Enum</a></li><li><a href="Data.Enum.Gen.html">Data.Enum.Gen</a></li><li><a href="Data.Enum.Generic.html">Data.Enum.Generic</a></li><li><a href="Data.Eq.html">Data.Eq</a></li><li><a href="Data.Eq.Generic.html">Data.Eq.Generic</a></li><li><a href="Data.Equivalence.html">Data.Equivalence</a></li><li><a href="Data.EuclideanRing.html">Data.EuclideanRing</a></li><li><a href="Data.Exists.html">Data.Exists</a></li><li><a href="Data.FastVect.Common.html">Data.FastVect.Common</a></li><li><a href="Data.FastVect.Common.Matrix.html">Data.FastVect.Common.Matrix</a></li><li><a href="Data.FastVect.FastVect.html">Data.FastVect.FastVect</a></li><li><a href="Data.FastVect.FastVect.Matrix.html">Data.FastVect.FastVect.Matrix</a></li><li><a href="Data.FastVect.MinLenVect.html">Data.FastVect.MinLenVect</a></li><li><a href="Data.FastVect.Sparse.Read.html">Data.FastVect.Sparse.Read</a></li><li><a href="Data.FastVect.Sparse.Write.html">Data.FastVect.Sparse.Write</a></li><li><a href="Data.Field.html">Data.Field</a></li><li><a href="Data.Filterable.html">Data.Filterable</a></li><li><a href="Data.Foldable.html">Data.Foldable</a></li><li><a href="Data.FoldableWithIndex.html">Data.FoldableWithIndex</a></li><li><a href="Data.Function.html">Data.Function</a></li><li><a href="Data.Function.Uncurried.html">Data.Function.Uncurried</a></li><li><a href="Data.Functor.html">Data.Functor</a></li><li><a href="Data.Functor.App.html">Data.Functor.App</a></li><li><a href="Data.Functor.Clown.html">Data.Functor.Clown</a></li><li><a href="Data.Functor.Compose.html">Data.Functor.Compose</a></li><li><a href="Data.Functor.Contravariant.html">Data.Functor.Contravariant</a></li><li><a href="Data.Functor.Coproduct.html">Data.Functor.Coproduct</a></li><li><a href="Data.Functor.Coproduct.Inject.html">Data.Functor.Coproduct.Inject</a></li><li><a href="Data.Functor.Coproduct.Nested.html">Data.Functor.Coproduct.Nested</a></li><li><a href="Data.Functor.Costar.html">Data.Functor.Costar</a></li><li><a href="Data.Functor.Flip.html">Data.Functor.Flip</a></li><li><a href="Data.Functor.Invariant.html">Data.Functor.Invariant</a></li><li><a href="Data.Functor.Joker.html">Data.Functor.Joker</a></li><li><a href="Data.Functor.Product.html">Data.Functor.Product</a></li><li><a href="Data.Functor.Product.Nested.html">Data.Functor.Product.Nested</a></li><li><a href="Data.Functor.Product2.html">Data.Functor.Product2</a></li><li><a href="Data.Functor.Variant.html">Data.Functor.Variant</a></li><li><a href="Data.FunctorWithIndex.html">Data.FunctorWithIndex</a></li><li><a href="Data.Generic.Rep.html">Data.Generic.Rep</a></li><li><a href="Data.HeytingAlgebra.html">Data.HeytingAlgebra</a></li><li><a href="Data.HeytingAlgebra.Generic.html">Data.HeytingAlgebra.Generic</a></li><li><a href="Data.Identity.html">Data.Identity</a></li><li><a href="Data.Int.html">Data.Int</a></li><li><a href="Data.Int.Bits.html">Data.Int.Bits</a></li><li><a href="Data.Interval.html">Data.Interval</a></li><li><a href="Data.Interval.Duration.html">Data.Interval.Duration</a></li><li><a href="Data.Interval.Duration.Iso.html">Data.Interval.Duration.Iso</a></li><li><a href="Data.JSDate.html">Data.JSDate</a></li><li><a href="Data.Lazy.html">Data.Lazy</a></li><li><a href="Data.List.html">Data.List</a></li><li><a href="Data.List.Internal.html">Data.List.Internal</a></li><li><a href="Data.List.Lazy.html">Data.List.Lazy</a></li><li><a href="Data.List.Lazy.NonEmpty.html">Data.List.Lazy.NonEmpty</a></li><li><a href="Data.List.Lazy.Types.html">Data.List.Lazy.Types</a></li><li><a href="Data.List.NonEmpty.html">Data.List.NonEmpty</a></li><li><a href="Data.List.Partial.html">Data.List.Partial</a></li><li><a href="Data.List.Types.html">Data.List.Types</a></li><li><a href="Data.List.ZipList.html">Data.List.ZipList</a></li><li><a href="Data.Map.html">Data.Map</a></li><li><a href="Data.Map.Gen.html">Data.Map.Gen</a></li><li><a href="Data.Map.Internal.html">Data.Map.Internal</a></li><li><a href="Data.Maybe.html">Data.Maybe</a></li><li><a href="Data.Maybe.First.html">Data.Maybe.First</a></li><li><a href="Data.Maybe.Last.html">Data.Maybe.Last</a></li><li><a href="Data.MediaType.html">Data.MediaType</a></li><li><a href="Data.MediaType.Common.html">Data.MediaType.Common</a></li><li><a href="Data.Monoid.html">Data.Monoid</a></li><li><a href="Data.Monoid.Additive.html">Data.Monoid.Additive</a></li><li><a href="Data.Monoid.Alternate.html">Data.Monoid.Alternate</a></li><li><a href="Data.Monoid.Conj.html">Data.Monoid.Conj</a></li><li><a href="Data.Monoid.Disj.html">Data.Monoid.Disj</a></li><li><a href="Data.Monoid.Dual.html">Data.Monoid.Dual</a></li><li><a href="Data.Monoid.Endo.html">Data.Monoid.Endo</a></li><li><a href="Data.Monoid.Generic.html">Data.Monoid.Generic</a></li><li><a href="Data.Monoid.Multiplicative.html">Data.Monoid.Multiplicative</a></li><li><a href="Data.NaturalTransformation.html">Data.NaturalTransformation</a></li><li><a href="Data.Newtype.html">Data.Newtype</a></li><li><a href="Data.NonEmpty.html">Data.NonEmpty</a></li><li><a href="Data.Nullable.html">Data.Nullable</a></li><li><a href="Data.Number.html">Data.Number</a></li><li><a href="Data.Number.Approximate.html">Data.Number.Approximate</a></li><li><a href="Data.Number.Format.html">Data.Number.Format</a></li><li><a href="Data.Op.html">Data.Op</a></li><li><a href="Data.Ord.html">Data.Ord</a></li><li><a href="Data.Ord.Down.html">Data.Ord.Down</a></li><li><a href="Data.Ord.Generic.html">Data.Ord.Generic</a></li><li><a href="Data.Ord.Max.html">Data.Ord.Max</a></li><li><a href="Data.Ord.Min.html">Data.Ord.Min</a></li><li><a href="Data.Ordering.html">Data.Ordering</a></li><li><a href="Data.Posix.html">Data.Posix</a></li><li><a href="Data.Posix.Signal.html">Data.Posix.Signal</a></li><li><a href="Data.Predicate.html">Data.Predicate</a></li><li><a href="Data.Profunctor.html">Data.Profunctor</a></li><li><a href="Data.Profunctor.Choice.html">Data.Profunctor.Choice</a></li><li><a href="Data.Profunctor.Closed.html">Data.Profunctor.Closed</a></li><li><a href="Data.Profunctor.Cochoice.html">Data.Profunctor.Cochoice</a></li><li><a href="Data.Profunctor.Costrong.html">Data.Profunctor.Costrong</a></li><li><a href="Data.Profunctor.Join.html">Data.Profunctor.Join</a></li><li><a href="Data.Profunctor.Split.html">Data.Profunctor.Split</a></li><li><a href="Data.Profunctor.Star.html">Data.Profunctor.Star</a></li><li><a href="Data.Profunctor.Strong.html">Data.Profunctor.Strong</a></li><li><a href="Data.Reflectable.html">Data.Reflectable</a></li><li><a href="Data.Ring.html">Data.Ring</a></li><li><a href="Data.Ring.Generic.html">Data.Ring.Generic</a></li><li><a href="Data.Semigroup.html">Data.Semigroup</a></li><li><a href="Data.Semigroup.First.html">Data.Semigroup.First</a></li><li><a href="Data.Semigroup.Foldable.html">Data.Semigroup.Foldable</a></li><li><a href="Data.Semigroup.Generic.html">Data.Semigroup.Generic</a></li><li><a href="Data.Semigroup.Last.html">Data.Semigroup.Last</a></li><li><a href="Data.Semigroup.Traversable.html">Data.Semigroup.Traversable</a></li><li><a href="Data.Semiring.html">Data.Semiring</a></li><li><a href="Data.Semiring.Generic.html">Data.Semiring.Generic</a></li><li><a href="Data.Set.html">Data.Set</a></li><li><a href="Data.Set.NonEmpty.html">Data.Set.NonEmpty</a></li><li><a href="Data.Show.html">Data.Show</a></li><li><a href="Data.Show.Generic.html">Data.Show.Generic</a></li><li><a href="Data.String.html">Data.String</a></li><li><a href="Data.String.CaseInsensitive.html">Data.String.CaseInsensitive</a></li><li><a href="Data.String.CodePoints.html">Data.String.CodePoints</a></li><li><a href="Data.String.CodeUnits.html">Data.String.CodeUnits</a></li><li><a href="Data.String.Common.html">Data.String.Common</a></li><li><a href="Data.String.Gen.html">Data.String.Gen</a></li><li><a href="Data.String.NonEmpty.html">Data.String.NonEmpty</a></li><li><a href="Data.String.NonEmpty.CaseInsensitive.html">Data.String.NonEmpty.CaseInsensitive</a></li><li><a href="Data.String.NonEmpty.CodePoints.html">Data.String.NonEmpty.CodePoints</a></li><li><a href="Data.String.NonEmpty.CodeUnits.html">Data.String.NonEmpty.CodeUnits</a></li><li><a href="Data.String.NonEmpty.Internal.html">Data.String.NonEmpty.Internal</a></li><li><a href="Data.String.Pattern.html">Data.String.Pattern</a></li><li><a href="Data.String.Regex.html">Data.String.Regex</a></li><li><a href="Data.String.Regex.Flags.html">Data.String.Regex.Flags</a></li><li><a href="Data.String.Regex.Unsafe.html">Data.String.Regex.Unsafe</a></li><li><a href="Data.String.Unsafe.html">Data.String.Unsafe</a></li><li><a href="Data.Symbol.html">Data.Symbol</a></li><li><a href="Data.Time.html">Data.Time</a></li><li><a href="Data.Time.Component.html">Data.Time.Component</a></li><li><a href="Data.Time.Component.Gen.html">Data.Time.Component.Gen</a></li><li><a href="Data.Time.Duration.html">Data.Time.Duration</a></li><li><a href="Data.Time.Duration.Gen.html">Data.Time.Duration.Gen</a></li><li><a href="Data.Time.Gen.html">Data.Time.Gen</a></li><li><a href="Data.Traversable.html">Data.Traversable</a></li><li><a href="Data.Traversable.Accum.html">Data.Traversable.Accum</a></li><li><a href="Data.Traversable.Accum.Internal.html">Data.Traversable.Accum.Internal</a></li><li><a href="Data.TraversableWithIndex.html">Data.TraversableWithIndex</a></li><li><a href="Data.Tuple.html">Data.Tuple</a></li><li><a href="Data.Tuple.Nested.html">Data.Tuple.Nested</a></li><li><a href="Data.Unfoldable.html">Data.Unfoldable</a></li><li><a href="Data.Unfoldable1.html">Data.Unfoldable1</a></li><li><a href="Data.Unit.html">Data.Unit</a></li><li><a href="Data.Variant.html">Data.Variant</a></li><li><a href="Data.Variant.Internal.html">Data.Variant.Internal</a></li><li><a href="Data.Void.html">Data.Void</a></li><li><a href="Data.Witherable.html">Data.Witherable</a></li><li><a href="Data.Yoneda.html">Data.Yoneda</a></li><li><a href="Effect.html">Effect</a></li><li><a href="Effect.AVar.html">Effect.AVar</a></li><li><a href="Effect.Aff.html">Effect.Aff</a></li><li><a href="Effect.Aff.AVar.html">Effect.Aff.AVar</a></li><li><a href="Effect.Aff.Class.html">Effect.Aff.Class</a></li><li><a href="Effect.Aff.Compat.html">Effect.Aff.Compat</a></li><li><a href="Effect.Class.html">Effect.Class</a></li><li><a href="Effect.Class.Console.html">Effect.Class.Console</a></li><li><a href="Effect.Console.html">Effect.Console</a></li><li><a href="Effect.Exception.html">Effect.Exception</a></li><li><a href="Effect.Exception.Unsafe.html">Effect.Exception.Unsafe</a></li><li><a href="Effect.Now.html">Effect.Now</a></li><li><a href="Effect.Ref.html">Effect.Ref</a></li><li><a href="Effect.Timer.html">Effect.Timer</a></li><li><a href="Effect.Uncurried.html">Effect.Uncurried</a></li><li><a href="Effect.Unsafe.html">Effect.Unsafe</a></li><li><a href="FRP.Behavior.html">FRP.Behavior</a></li><li><a href="FRP.Behavior.Keyboard.html">FRP.Behavior.Keyboard</a></li><li><a href="FRP.Behavior.Mouse.html">FRP.Behavior.Mouse</a></li><li><a href="FRP.Behavior.Time.html">FRP.Behavior.Time</a></li><li><a href="FRP.Event.html">FRP.Event</a></li><li><a href="FRP.Event.AnimationFrame.html">FRP.Event.AnimationFrame</a></li><li><a href="FRP.Event.Class.html">FRP.Event.Class</a></li><li><a href="FRP.Event.Keyboard.html">FRP.Event.Keyboard</a></li><li><a href="FRP.Event.Mouse.html">FRP.Event.Mouse</a></li><li><a href="FRP.Event.Time.html">FRP.Event.Time</a></li><li><a href="FRP.Event.VBus.html">FRP.Event.VBus</a></li><li><a href="Foreign.html">Foreign</a></li><li><a href="Foreign.Index.html">Foreign.Index</a></li><li><a href="Foreign.Keys.html">Foreign.Keys</a></li><li><a href="Foreign.Object.html">Foreign.Object</a></li><li><a href="Foreign.Object.Gen.html">Foreign.Object.Gen</a></li><li><a href="Foreign.Object.ST.html">Foreign.Object.ST</a></li><li><a href="Foreign.Object.ST.Unsafe.html">Foreign.Object.ST.Unsafe</a></li><li><a href="Foreign.Object.Unsafe.html">Foreign.Object.Unsafe</a></li><li><a href="Heterogeneous.Folding.html">Heterogeneous.Folding</a></li><li><a href="Heterogeneous.Mapping.html">Heterogeneous.Mapping</a></li><li><a href="Node.Buffer.html">Node.Buffer</a></li><li><a href="Node.Buffer.Class.html">Node.Buffer.Class</a></li><li><a href="Node.Buffer.Constants.html">Node.Buffer.Constants</a></li><li><a href="Node.Buffer.Immutable.html">Node.Buffer.Immutable</a></li><li><a href="Node.Buffer.ST.html">Node.Buffer.ST</a></li><li><a href="Node.Buffer.Types.html">Node.Buffer.Types</a></li><li><a href="Node.Encoding.html">Node.Encoding</a></li><li><a href="Node.EventEmitter.html">Node.EventEmitter</a></li><li><a href="Node.EventEmitter.UtilTypes.html">Node.EventEmitter.UtilTypes</a></li><li><a href="Node.FS.html">Node.FS</a></li><li><a href="Node.FS.Aff.html">Node.FS.Aff</a></li><li><a href="Node.FS.Async.html">Node.FS.Async</a></li><li><a href="Node.FS.Constants.html">Node.FS.Constants</a></li><li><a href="Node.FS.Perms.html">Node.FS.Perms</a></li><li><a href="Node.FS.Stats.html">Node.FS.Stats</a></li><li><a href="Node.FS.Stream.html">Node.FS.Stream</a></li><li><a href="Node.FS.Sync.html">Node.FS.Sync</a></li><li><a href="Node.Path.html">Node.Path</a></li><li><a href="Node.Platform.html">Node.Platform</a></li><li><a href="Node.Process.html">Node.Process</a></li><li><a href="Node.Stream.html">Node.Stream</a></li><li><a href="Node.Stream.Aff.html">Node.Stream.Aff</a></li><li><a href="Node.Symbol.html">Node.Symbol</a></li><li><a href="Partial.html">Partial</a></li><li><a href="Partial.Unsafe.html">Partial.Unsafe</a></li><li><a href="Performance.Minibench.html">Performance.Minibench</a></li><li><a href="Pipes.html">Pipes</a></li><li><a href="Pipes.Core.html">Pipes.Core</a></li><li><a href="Pipes.Internal.html">Pipes.Internal</a></li><li><a href="Pipes.ListT.html">Pipes.ListT</a></li><li><a href="Pipes.Prelude.html">Pipes.Prelude</a></li><li><a href="Prelude.html">Prelude</a></li><li><a href="Prim.html">Prim</a></li><li><a href="Prim.Boolean.html">Prim.Boolean</a></li><li><a href="Prim.Coerce.html">Prim.Coerce</a></li><li><a href="Prim.Int.html">Prim.Int</a></li><li><a href="Prim.Ordering.html">Prim.Ordering</a></li><li><a href="Prim.Row.html">Prim.Row</a></li><li><a href="Prim.RowList.html">Prim.RowList</a></li><li><a href="Prim.Symbol.html">Prim.Symbol</a></li><li><a href="Prim.TypeError.html">Prim.TypeError</a></li><li><a href="Record.html">Record</a></li><li><a href="Record.Builder.html">Record.Builder</a></li><li><a href="Record.Studio.html">Record.Studio</a></li><li><a href="Record.Studio.Keys.html">Record.Studio.Keys</a></li><li><a href="Record.Studio.Map.html">Record.Studio.Map</a></li><li><a href="Record.Studio.MapKind.html">Record.Studio.MapKind</a></li><li><a href="Record.Studio.MapUniform.html">Record.Studio.MapUniform</a></li><li><a href="Record.Studio.Merge.html">Record.Studio.Merge</a></li><li><a href="Record.Studio.SameKeys.html">Record.Studio.SameKeys</a></li><li><a href="Record.Studio.Sequence.html">Record.Studio.Sequence</a></li><li><a href="Record.Studio.Shrink.html">Record.Studio.Shrink</a></li><li><a href="Record.Studio.SingletonRecord.html">Record.Studio.SingletonRecord</a></li><li><a href="Record.Unsafe.html">Record.Unsafe</a></li><li><a href="Record.Unsafe.Union.html">Record.Unsafe.Union</a></li><li><a href="Safe.Coerce.html">Safe.Coerce</a></li><li><a href="Spago.Generated.BuildInfo.html">Spago.Generated.BuildInfo</a></li><li><a href="Test.Spec.html">Test.Spec</a></li><li><a href="Test.Spec.Assertions.html">Test.Spec.Assertions</a></li><li><a href="Test.Spec.Assertions.String.html">Test.Spec.Assertions.String</a></li><li><a href="Test.Spec.Config.html">Test.Spec.Config</a></li><li><a href="Test.Spec.Console.html">Test.Spec.Console</a></li><li><a href="Test.Spec.Reporter.html">Test.Spec.Reporter</a></li><li><a href="Test.Spec.Reporter.Base.html">Test.Spec.Reporter.Base</a></li><li><a href="Test.Spec.Reporter.Console.html">Test.Spec.Reporter.Console</a></li><li><a href="Test.Spec.Reporter.Dot.html">Test.Spec.Reporter.Dot</a></li><li><a href="Test.Spec.Reporter.Spec.html">Test.Spec.Reporter.Spec</a></li><li><a href="Test.Spec.Reporter.Tap.html">Test.Spec.Reporter.Tap</a></li><li><a href="Test.Spec.Reporter.TeamCity.html">Test.Spec.Reporter.TeamCity</a></li><li><a href="Test.Spec.Result.html">Test.Spec.Result</a></li><li><a href="Test.Spec.Runner.html">Test.Spec.Runner</a></li><li><a href="Test.Spec.Runner.Event.html">Test.Spec.Runner.Event</a></li><li><a href="Test.Spec.Speed.html">Test.Spec.Speed</a></li><li><a href="Test.Spec.Style.html">Test.Spec.Style</a></li><li><a href="Test.Spec.Summary.html">Test.Spec.Summary</a></li><li><a href="Test.Spec.Tree.html">Test.Spec.Tree</a></li><li><a href="Type.Data.Boolean.html">Type.Data.Boolean</a></li><li><a href="Type.Data.Ordering.html">Type.Data.Ordering</a></li><li><a href="Type.Data.Symbol.html">Type.Data.Symbol</a></li><li><a href="Type.Equality.html">Type.Equality</a></li><li><a href="Type.Function.html">Type.Function</a></li><li><a href="Type.Prelude.html">Type.Prelude</a></li><li><a href="Type.Proxy.html">Type.Proxy</a></li><li><a href="Type.Row.html">Type.Row</a></li><li><a href="Type.Row.Homogeneous.html">Type.Row.Homogeneous</a></li><li><a href="Type.RowList.html">Type.RowList</a></li><li><a href="Uncurried.RWSE.html">Uncurried.RWSE</a></li><li><a href="Uncurried.RWSET.html">Uncurried.RWSET</a></li><li><a href="Uncurried.Reader.html">Uncurried.Reader</a></li><li><a href="Uncurried.ReaderT.html">Uncurried.ReaderT</a></li><li><a href="Uncurried.State.html">Uncurried.State</a></li><li><a href="Uncurried.StateT.html">Uncurried.StateT</a></li><li><a href="Uncurried.Writer.html">Uncurried.Writer</a></li><li><a href="Uncurried.WriterT.html">Uncurried.WriterT</a></li><li><a href="Unsafe.Coerce.html">Unsafe.Coerce</a></li><li><a href="Unsafe.Reference.html">Unsafe.Reference</a></li><li><a href="Web.DOM.html">Web.DOM</a></li><li><a href="Web.DOM.CharacterData.html">Web.DOM.CharacterData</a></li><li><a href="Web.DOM.ChildNode.html">Web.DOM.ChildNode</a></li><li><a href="Web.DOM.Comment.html">Web.DOM.Comment</a></li><li><a href="Web.DOM.DOMTokenList.html">Web.DOM.DOMTokenList</a></li><li><a href="Web.DOM.Document.html">Web.DOM.Document</a></li><li><a href="Web.DOM.DocumentFragment.html">Web.DOM.DocumentFragment</a></li><li><a href="Web.DOM.DocumentType.html">Web.DOM.DocumentType</a></li><li><a href="Web.DOM.Element.html">Web.DOM.Element</a></li><li><a href="Web.DOM.HTMLCollection.html">Web.DOM.HTMLCollection</a></li><li><a href="Web.DOM.Internal.Types.html">Web.DOM.Internal.Types</a></li><li><a href="Web.DOM.MutationObserver.html">Web.DOM.MutationObserver</a></li><li><a href="Web.DOM.MutationRecord.html">Web.DOM.MutationRecord</a></li><li><a href="Web.DOM.Node.html">Web.DOM.Node</a></li><li><a href="Web.DOM.NodeList.html">Web.DOM.NodeList</a></li><li><a href="Web.DOM.NodeType.html">Web.DOM.NodeType</a></li><li><a href="Web.DOM.NonDocumentTypeChildNode.html">Web.DOM.NonDocumentTypeChildNode</a></li><li><a href="Web.DOM.NonElementParentNode.html">Web.DOM.NonElementParentNode</a></li><li><a href="Web.DOM.ParentNode.html">Web.DOM.ParentNode</a></li><li><a href="Web.DOM.ProcessingInstruction.html">Web.DOM.ProcessingInstruction</a></li><li><a href="Web.DOM.ShadowRoot.html">Web.DOM.ShadowRoot</a></li><li><a href="Web.DOM.Text.html">Web.DOM.Text</a></li><li><a href="Web.Event.CustomEvent.html">Web.Event.CustomEvent</a></li><li><a href="Web.Event.Event.html">Web.Event.Event</a></li><li><a href="Web.Event.EventPhase.html">Web.Event.EventPhase</a></li><li><a href="Web.Event.EventTarget.html">Web.Event.EventTarget</a></li><li><a href="Web.Event.Internal.Types.html">Web.Event.Internal.Types</a></li><li><a href="Web.File.Blob.html">Web.File.Blob</a></li><li><a href="Web.File.File.html">Web.File.File</a></li><li><a href="Web.File.FileList.html">Web.File.FileList</a></li><li><a href="Web.File.FileReader.html">Web.File.FileReader</a></li><li><a href="Web.File.FileReader.ReadyState.html">Web.File.FileReader.ReadyState</a></li><li><a href="Web.File.Url.html">Web.File.Url</a></li><li><a href="Web.HTML.html">Web.HTML</a></li><li><a href="Web.HTML.Common.html">Web.HTML.Common</a></li><li><a href="Web.HTML.Event.BeforeUnloadEvent.html">Web.HTML.Event.BeforeUnloadEvent</a></li><li><a href="Web.HTML.Event.BeforeUnloadEvent.EventTypes.html">Web.HTML.Event.BeforeUnloadEvent.EventTypes</a></li><li><a href="Web.HTML.Event.DataTransfer.html">Web.HTML.Event.DataTransfer</a></li><li><a href="Web.HTML.Event.DataTransfer.DataTransferItem.html">Web.HTML.Event.DataTransfer.DataTransferItem</a></li><li><a href="Web.HTML.Event.DragEvent.html">Web.HTML.Event.DragEvent</a></li><li><a href="Web.HTML.Event.DragEvent.EventTypes.html">Web.HTML.Event.DragEvent.EventTypes</a></li><li><a href="Web.HTML.Event.ErrorEvent.html">Web.HTML.Event.ErrorEvent</a></li><li><a href="Web.HTML.Event.EventTypes.html">Web.HTML.Event.EventTypes</a></li><li><a href="Web.HTML.Event.HashChangeEvent.html">Web.HTML.Event.HashChangeEvent</a></li><li><a href="Web.HTML.Event.HashChangeEvent.EventTypes.html">Web.HTML.Event.HashChangeEvent.EventTypes</a></li><li><a href="Web.HTML.Event.PageTransitionEvent.html">Web.HTML.Event.PageTransitionEvent</a></li><li><a href="Web.HTML.Event.PageTransitionEvent.EventTypes.html">Web.HTML.Event.PageTransitionEvent.EventTypes</a></li><li><a href="Web.HTML.Event.PopStateEvent.html">Web.HTML.Event.PopStateEvent</a></li><li><a href="Web.HTML.Event.PopStateEvent.EventTypes.html">Web.HTML.Event.PopStateEvent.EventTypes</a></li><li><a href="Web.HTML.Event.TrackEvent.html">Web.HTML.Event.TrackEvent</a></li><li><a href="Web.HTML.Event.TrackEvent.EventTypes.html">Web.HTML.Event.TrackEvent.EventTypes</a></li><li><a href="Web.HTML.HTMLAnchorElement.html">Web.HTML.HTMLAnchorElement</a></li><li><a href="Web.HTML.HTMLAreaElement.html">Web.HTML.HTMLAreaElement</a></li><li><a href="Web.HTML.HTMLAudioElement.html">Web.HTML.HTMLAudioElement</a></li><li><a href="Web.HTML.HTMLBRElement.html">Web.HTML.HTMLBRElement</a></li><li><a href="Web.HTML.HTMLBaseElement.html">Web.HTML.HTMLBaseElement</a></li><li><a href="Web.HTML.HTMLBodyElement.html">Web.HTML.HTMLBodyElement</a></li><li><a href="Web.HTML.HTMLButtonElement.html">Web.HTML.HTMLButtonElement</a></li><li><a href="Web.HTML.HTMLCanvasElement.html">Web.HTML.HTMLCanvasElement</a></li><li><a href="Web.HTML.HTMLDListElement.html">Web.HTML.HTMLDListElement</a></li><li><a href="Web.HTML.HTMLDataElement.html">Web.HTML.HTMLDataElement</a></li><li><a href="Web.HTML.HTMLDataListElement.html">Web.HTML.HTMLDataListElement</a></li><li><a href="Web.HTML.HTMLDivElement.html">Web.HTML.HTMLDivElement</a></li><li><a href="Web.HTML.HTMLDocument.html">Web.HTML.HTMLDocument</a></li><li><a href="Web.HTML.HTMLDocument.ReadyState.html">Web.HTML.HTMLDocument.ReadyState</a></li><li><a href="Web.HTML.HTMLDocument.VisibilityState.html">Web.HTML.HTMLDocument.VisibilityState</a></li><li><a href="Web.HTML.HTMLElement.html">Web.HTML.HTMLElement</a></li><li><a href="Web.HTML.HTMLEmbedElement.html">Web.HTML.HTMLEmbedElement</a></li><li><a href="Web.HTML.HTMLFieldSetElement.html">Web.HTML.HTMLFieldSetElement</a></li><li><a href="Web.HTML.HTMLFormElement.html">Web.HTML.HTMLFormElement</a></li><li><a href="Web.HTML.HTMLHRElement.html">Web.HTML.HTMLHRElement</a></li><li><a href="Web.HTML.HTMLHeadElement.html">Web.HTML.HTMLHeadElement</a></li><li><a href="Web.HTML.HTMLHeadingElement.html">Web.HTML.HTMLHeadingElement</a></li><li><a href="Web.HTML.HTMLHtmlElement.html">Web.HTML.HTMLHtmlElement</a></li><li><a href="Web.HTML.HTMLHyperlinkElementUtils.html">Web.HTML.HTMLHyperlinkElementUtils</a></li><li><a href="Web.HTML.HTMLIFrameElement.html">Web.HTML.HTMLIFrameElement</a></li><li><a href="Web.HTML.HTMLImageElement.html">Web.HTML.HTMLImageElement</a></li><li><a href="Web.HTML.HTMLImageElement.CORSMode.html">Web.HTML.HTMLImageElement.CORSMode</a></li><li><a href="Web.HTML.HTMLImageElement.DecodingHint.html">Web.HTML.HTMLImageElement.DecodingHint</a></li><li><a href="Web.HTML.HTMLImageElement.Laziness.html">Web.HTML.HTMLImageElement.Laziness</a></li><li><a href="Web.HTML.HTMLInputElement.html">Web.HTML.HTMLInputElement</a></li><li><a href="Web.HTML.HTMLKeygenElement.html">Web.HTML.HTMLKeygenElement</a></li><li><a href="Web.HTML.HTMLLIElement.html">Web.HTML.HTMLLIElement</a></li><li><a href="Web.HTML.HTMLLabelElement.html">Web.HTML.HTMLLabelElement</a></li><li><a href="Web.HTML.HTMLLegendElement.html">Web.HTML.HTMLLegendElement</a></li><li><a href="Web.HTML.HTMLLinkElement.html">Web.HTML.HTMLLinkElement</a></li><li><a href="Web.HTML.HTMLMapElement.html">Web.HTML.HTMLMapElement</a></li><li><a href="Web.HTML.HTMLMediaElement.html">Web.HTML.HTMLMediaElement</a></li><li><a href="Web.HTML.HTMLMediaElement.CanPlayType.html">Web.HTML.HTMLMediaElement.CanPlayType</a></li><li><a href="Web.HTML.HTMLMediaElement.NetworkState.html">Web.HTML.HTMLMediaElement.NetworkState</a></li><li><a href="Web.HTML.HTMLMediaElement.ReadyState.html">Web.HTML.HTMLMediaElement.ReadyState</a></li><li><a href="Web.HTML.HTMLMetaElement.html">Web.HTML.HTMLMetaElement</a></li><li><a href="Web.HTML.HTMLMeterElement.html">Web.HTML.HTMLMeterElement</a></li><li><a href="Web.HTML.HTMLModElement.html">Web.HTML.HTMLModElement</a></li><li><a href="Web.HTML.HTMLOListElement.html">Web.HTML.HTMLOListElement</a></li><li><a href="Web.HTML.HTMLObjectElement.html">Web.HTML.HTMLObjectElement</a></li><li><a href="Web.HTML.HTMLOptGroupElement.html">Web.HTML.HTMLOptGroupElement</a></li><li><a href="Web.HTML.HTMLOptionElement.html">Web.HTML.HTMLOptionElement</a></li><li><a href="Web.HTML.HTMLOutputElement.html">Web.HTML.HTMLOutputElement</a></li><li><a href="Web.HTML.HTMLParagraphElement.html">Web.HTML.HTMLParagraphElement</a></li><li><a href="Web.HTML.HTMLParamElement.html">Web.HTML.HTMLParamElement</a></li><li><a href="Web.HTML.HTMLPreElement.html">Web.HTML.HTMLPreElement</a></li><li><a href="Web.HTML.HTMLProgressElement.html">Web.HTML.HTMLProgressElement</a></li><li><a href="Web.HTML.HTMLQuoteElement.html">Web.HTML.HTMLQuoteElement</a></li><li><a href="Web.HTML.HTMLScriptElement.html">Web.HTML.HTMLScriptElement</a></li><li><a href="Web.HTML.HTMLSelectElement.html">Web.HTML.HTMLSelectElement</a></li><li><a href="Web.HTML.HTMLSourceElement.html">Web.HTML.HTMLSourceElement</a></li><li><a href="Web.HTML.HTMLSpanElement.html">Web.HTML.HTMLSpanElement</a></li><li><a href="Web.HTML.HTMLStyleElement.html">Web.HTML.HTMLStyleElement</a></li><li><a href="Web.HTML.HTMLTableCaptionElement.html">Web.HTML.HTMLTableCaptionElement</a></li><li><a href="Web.HTML.HTMLTableCellElement.html">Web.HTML.HTMLTableCellElement</a></li><li><a href="Web.HTML.HTMLTableColElement.html">Web.HTML.HTMLTableColElement</a></li><li><a href="Web.HTML.HTMLTableDataCellElement.html">Web.HTML.HTMLTableDataCellElement</a></li><li><a href="Web.HTML.HTMLTableElement.html">Web.HTML.HTMLTableElement</a></li><li><a href="Web.HTML.HTMLTableHeaderCellElement.html">Web.HTML.HTMLTableHeaderCellElement</a></li><li><a href="Web.HTML.HTMLTableRowElement.html">Web.HTML.HTMLTableRowElement</a></li><li><a href="Web.HTML.HTMLTableSectionElement.html">Web.HTML.HTMLTableSectionElement</a></li><li><a href="Web.HTML.HTMLTemplateElement.html">Web.HTML.HTMLTemplateElement</a></li><li><a href="Web.HTML.HTMLTextAreaElement.html">Web.HTML.HTMLTextAreaElement</a></li><li><a href="Web.HTML.HTMLTimeElement.html">Web.HTML.HTMLTimeElement</a></li><li><a href="Web.HTML.HTMLTitleElement.html">Web.HTML.HTMLTitleElement</a></li><li><a href="Web.HTML.HTMLTrackElement.html">Web.HTML.HTMLTrackElement</a></li><li><a href="Web.HTML.HTMLTrackElement.ReadyState.html">Web.HTML.HTMLTrackElement.ReadyState</a></li><li><a href="Web.HTML.HTMLUListElement.html">Web.HTML.HTMLUListElement</a></li><li><a href="Web.HTML.HTMLVideoElement.html">Web.HTML.HTMLVideoElement</a></li><li><a href="Web.HTML.History.html">Web.HTML.History</a></li><li><a href="Web.HTML.Location.html">Web.HTML.Location</a></li><li><a href="Web.HTML.Navigator.html">Web.HTML.Navigator</a></li><li><a href="Web.HTML.SelectionMode.html">Web.HTML.SelectionMode</a></li><li><a href="Web.HTML.ValidityState.html">Web.HTML.ValidityState</a></li><li><a href="Web.HTML.Window.html">Web.HTML.Window</a></li><li><a href="Web.Internal.FFI.html">Web.Internal.FFI</a></li><li><a href="Web.Storage.Event.StorageEvent.html">Web.Storage.Event.StorageEvent</a></li><li><a href="Web.Storage.Storage.html">Web.Storage.Storage</a></li><li><a href="Web.UIEvent.CompositionEvent.html">Web.UIEvent.CompositionEvent</a></li><li><a href="Web.UIEvent.CompositionEvent.EventTypes.html">Web.UIEvent.CompositionEvent.EventTypes</a></li><li><a href="Web.UIEvent.EventTypes.html">Web.UIEvent.EventTypes</a></li><li><a href="Web.UIEvent.FocusEvent.html">Web.UIEvent.FocusEvent</a></li><li><a href="Web.UIEvent.FocusEvent.EventTypes.html">Web.UIEvent.FocusEvent.EventTypes</a></li><li><a href="Web.UIEvent.InputEvent.html">Web.UIEvent.InputEvent</a></li><li><a href="Web.UIEvent.InputEvent.EventTypes.html">Web.UIEvent.InputEvent.EventTypes</a></li><li><a href="Web.UIEvent.InputEvent.InputType.html">Web.UIEvent.InputEvent.InputType</a></li><li><a href="Web.UIEvent.KeyboardEvent.html">Web.UIEvent.KeyboardEvent</a></li><li><a href="Web.UIEvent.KeyboardEvent.EventTypes.html">Web.UIEvent.KeyboardEvent.EventTypes</a></li><li><a href="Web.UIEvent.MouseEvent.html">Web.UIEvent.MouseEvent</a></li><li><a href="Web.UIEvent.MouseEvent.EventTypes.html">Web.UIEvent.MouseEvent.EventTypes</a></li><li><a href="Web.UIEvent.UIEvent.html">Web.UIEvent.UIEvent</a></li><li><a href="Web.UIEvent.WheelEvent.html">Web.UIEvent.WheelEvent</a></li><li><a href="Web.UIEvent.WheelEvent.EventTypes.html">Web.UIEvent.WheelEvent.EventTypes</a></li></ul></div></main></div><div class="footer clearfix"><p>Generated by purs 0.15.15 [development build; commit: UNKNOWN]</p></div><!-- Docs search index. --><script type="text/javascript" src="./docs-search-app.js"></script><script type="text/javascript">window.DocsSearchTypeIndex = {};window.DocsSearchIndex = {};</script></body></html>
generated-docs/html/Ansi.Output.htmldeletedโ1368
@@ -1,1368 +0,0 @@
1โ<!DOCTYPE HTML>
2โ<html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1"><title>PureScript: Ansi.Output</title><link href="https://fonts.googleapis.com/css?family=Roboto+Mono|Roboto:300,400,400i,700,700i" type="text/css" rel="stylesheet"><style type="text/css">/*! normalize.css v3.0.2 | MIT License | git.io/normalize */
3โ
4โ/**
5โ * 1. Set default font family to sans-serif.
6โ * 2. Prevent iOS text size adjust after orientation change, without disabling
7โ * user zoom.
8โ */
9โ
10โhtml {
11โ font-family: sans-serif; /* 1 */
12โ -ms-text-size-adjust: 100%; /* 2 */
13โ -webkit-text-size-adjust: 100%; /* 2 */
14โ}
15โ
16โ/**
17โ * Remove default margin.
18โ */
19โ
20โbody {
21โ margin: 0;
22โ}
23โ
24โ/* HTML5 display definitions
25โ ========================================================================== */
26โ
27โ/**
28โ * Correct `block` display not defined for any HTML5 element in IE 8/9.
29โ * Correct `block` display not defined for `details` or `summary` in IE 10/11
30โ * and Firefox.
31โ * Correct `block` display not defined for `main` in IE 11.
32โ */
33โ
34โarticle,
35โaside,
36โdetails,
37โfigcaption,
38โfigure,
39โfooter,
40โheader,
41โhgroup,
42โmain,
43โmenu,
44โnav,
45โsection,
46โsummary {
47โ display: block;
48โ}
49โ
50โ/**
51โ * 1. Correct `inline-block` display not defined in IE 8/9.
52โ * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
53โ */
54โ
55โaudio,
56โcanvas,
57โprogress,
58โvideo {
59โ display: inline-block; /* 1 */
60โ vertical-align: baseline; /* 2 */
61โ}
62โ
63โ/**
64โ * Prevent modern browsers from displaying `audio` without controls.
65โ * Remove excess height in iOS 5 devices.
66โ */
67โ
68โaudio:not([controls]) {
69โ display: none;
70โ height: 0;
71โ}
72โ
73โ/**
74โ * Address `[hidden]` styling not present in IE 8/9/10.
75โ * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22.
76โ */
77โ
78โ[hidden],
79โtemplate {
80โ display: none;
81โ}
82โ
83โ/* Links
84โ ========================================================================== */
85โ
86โ/**
87โ * Remove the gray background color from active links in IE 10.
88โ */
89โ
90โa {
91โ background-color: transparent;
92โ}
93โ
94โ/**
95โ * Improve readability when focused and also mouse hovered in all browsers.
96โ */
97โ
98โa:active,
99โa:hover {
100โ outline: 0;
101โ}
102โ
103โ/* Text-level semantics
104โ ========================================================================== */
105โ
106โ/**
107โ * Address styling not present in IE 8/9/10/11, Safari, and Chrome.
108โ */
109โ
110โabbr[title] {
111โ border-bottom: 1px dotted;
112โ}
113โ
114โ/**
115โ * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
116โ */
117โ
118โb,
119โstrong {
120โ font-weight: bold;
121โ}
122โ
123โ/**
124โ * Address styling not present in Safari and Chrome.
125โ */
126โ
127โdfn {
128โ font-style: italic;
129โ}
130โ
131โ/**
132โ * Address variable `h1` font-size and margin within `section` and `article`
133โ * contexts in Firefox 4+, Safari, and Chrome.
134โ */
135โ
136โh1 {
137โ font-size: 2em;
138โ margin: 0.67em 0;
139โ}
140โ
141โ/**
142โ * Address styling not present in IE 8/9.
143โ */
144โ
145โmark {
146โ background: #ff0;
147โ color: #000;
148โ}
149โ
150โ/**
151โ * Address inconsistent and variable font size in all browsers.
152โ */
153โ
154โsmall {
155โ font-size: 80%;
156โ}
157โ
158โ/**
159โ * Prevent `sub` and `sup` affecting `line-height` in all browsers.
160โ */
161โ
162โsub,
163โsup {
164โ font-size: 75%;
165โ line-height: 0;
166โ position: relative;
167โ vertical-align: baseline;
168โ}
169โ
170โsup {
171โ top: -0.5em;
172โ}
173โ
174โsub {
175โ bottom: -0.25em;
176โ}
177โ
178โ/* Embedded content
179โ ========================================================================== */
180โ
181โ/**
182โ * Remove border when inside `a` element in IE 8/9/10.
183โ */
184โ
185โimg {
186โ border: 0;
187โ}
188โ
189โ/**
190โ * Correct overflow not hidden in IE 9/10/11.
191โ */
192โ
193โsvg:not(:root) {
194โ overflow: hidden;
195โ}
196โ
197โ/* Grouping content
198โ ========================================================================== */
199โ
200โ/**
201โ * Address margin not present in IE 8/9 and Safari.
202โ */
203โ
204โfigure {
205โ margin: 1em 40px;
206โ}
207โ
208โ/**
209โ * Address differences between Firefox and other browsers.
210โ */
211โ
212โhr {
213โ -moz-box-sizing: content-box;
214โ box-sizing: content-box;
215โ height: 0;
216โ}
217โ
218โ/**
219โ * Contain overflow in all browsers.
220โ */
221โ
222โpre {
223โ overflow: auto;
224โ}
225โ
226โ/**
227โ * Address odd `em`-unit font size rendering in all browsers.
228โ */
229โ
230โcode,
231โkbd,
232โpre,
233โsamp {
234โ font-family: monospace, monospace;
235โ font-size: 1em;
236โ}
237โ
238โ/* Forms
239โ ========================================================================== */
240โ
241โ/**
242โ * Known limitation: by default, Chrome and Safari on OS X allow very limited
243โ * styling of `select`, unless a `border` property is set.
244โ */
245โ
246โ/**
247โ * 1. Correct color not being inherited.
248โ * Known issue: affects color of disabled elements.
249โ * 2. Correct font properties not being inherited.
250โ * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
251โ */
252โ
253โbutton,
254โinput,
255โoptgroup,
256โselect,
257โtextarea {
258โ color: inherit; /* 1 */
259โ font: inherit; /* 2 */
260โ margin: 0; /* 3 */
261โ}
262โ
263โ/**
264โ * Address `overflow` set to `hidden` in IE 8/9/10/11.
265โ */
266โ
267โbutton {
268โ overflow: visible;
269โ}
270โ
271โ/**
272โ * Address inconsistent `text-transform` inheritance for `button` and `select`.
273โ * All other form control elements do not inherit `text-transform` values.
274โ * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
275โ * Correct `select` style inheritance in Firefox.
276โ */
277โ
278โbutton,
279โselect {
280โ text-transform: none;
281โ}
282โ
283โ/**
284โ * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
285โ * and `video` controls.
286โ * 2. Correct inability to style clickable `input` types in iOS.
287โ * 3. Improve usability and consistency of cursor style between image-type
288โ * `input` and others.
289โ */
290โ
291โbutton,
292โhtml input[type="button"], /* 1 */
293โinput[type="reset"],
294โinput[type="submit"] {
295โ -webkit-appearance: button; /* 2 */
296โ cursor: pointer; /* 3 */
297โ}
298โ
299โ/**
300โ * Re-set default cursor for disabled elements.
301โ */
302โ
303โbutton[disabled],
304โhtml input[disabled] {
305โ cursor: default;
306โ}
307โ
308โ/**
309โ * Remove inner padding and border in Firefox 4+.
310โ */
311โ
312โbutton::-moz-focus-inner,
313โinput::-moz-focus-inner {
314โ border: 0;
315โ padding: 0;
316โ}
317โ
318โ/**
319โ * Address Firefox 4+ setting `line-height` on `input` using `!important` in
320โ * the UA stylesheet.
321โ */
322โ
323โinput {
324โ line-height: normal;
325โ}
326โ
327โ/**
328โ * It's recommended that you don't attempt to style these elements.
329โ * Firefox's implementation doesn't respect box-sizing, padding, or width.
330โ *
331โ * 1. Address box sizing set to `content-box` in IE 8/9/10.
332โ * 2. Remove excess padding in IE 8/9/10.
333โ */
334โ
335โinput[type="checkbox"],
336โinput[type="radio"] {
337โ box-sizing: border-box; /* 1 */
338โ padding: 0; /* 2 */
339โ}
340โ
341โ/**
342โ * Fix the cursor style for Chrome's increment/decrement buttons. For certain
343โ * `font-size` values of the `input`, it causes the cursor style of the
344โ * decrement button to change from `default` to `text`.
345โ */
346โ
347โinput[type="number"]::-webkit-inner-spin-button,
348โinput[type="number"]::-webkit-outer-spin-button {
349โ height: auto;
350โ}
351โ
352โ/**
353โ * 1. Address `appearance` set to `searchfield` in Safari and Chrome.
354โ * 2. Address `box-sizing` set to `border-box` in Safari and Chrome
355โ * (include `-moz` to future-proof).
356โ */
357โ
358โinput[type="search"] {
359โ -webkit-appearance: textfield; /* 1 */
360โ -moz-box-sizing: content-box;
361โ -webkit-box-sizing: content-box; /* 2 */
362โ box-sizing: content-box;
363โ}
364โ
365โ/**
366โ * Remove inner padding and search cancel button in Safari and Chrome on OS X.
367โ * Safari (but not Chrome) clips the cancel button when the search input has
368โ * padding (and `textfield` appearance).
369โ */
370โ
371โinput[type="search"]::-webkit-search-cancel-button,
372โinput[type="search"]::-webkit-search-decoration {
373โ -webkit-appearance: none;
374โ}
375โ
376โ/**
377โ * Define consistent border, margin, and padding.
378โ */
379โ
380โfieldset {
381โ border: 1px solid #c0c0c0;
382โ margin: 0 2px;
383โ padding: 0.35em 0.625em 0.75em;
384โ}
385โ
386โ/**
387โ * 1. Correct `color` not being inherited in IE 8/9/10/11.
388โ * 2. Remove padding so people aren't caught out if they zero out fieldsets.
389โ */
390โ
391โlegend {
392โ border: 0; /* 1 */
393โ padding: 0; /* 2 */
394โ}
395โ
396โ/**
397โ * Remove default vertical scrollbar in IE 8/9/10/11.
398โ */
399โ
400โtextarea {
401โ overflow: auto;
402โ}
403โ
404โ/**
405โ * Don't inherit the `font-weight` (applied by a rule above).
406โ * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
407โ */
408โ
409โoptgroup {
410โ font-weight: bold;
411โ}
412โ
413โ/* Tables
414โ ========================================================================== */
415โ
416โ/**
417โ * Remove most spacing between table cells.
418โ */
419โ
420โtable {
421โ border-collapse: collapse;
422โ border-spacing: 0;
423โ}
424โ
425โtd,
426โth {
427โ padding: 0;
428โ}
429โ</style><style type="text/css">/** ************************************************************************* *
430โ ** CSS for HTML docs (e.g. Pursuit)
431โ **
432โ ** STRUCTURE
433โ **
434โ ** This CSS file is structured into several sections, from general to
435โ ** specific, and (mostly) alphabetically within the sections.
436โ **
437โ ** Several global element styles are used. This is not encouraged and should
438โ ** be kept to a minimum. If you want to add new styles you'll most likely
439โ ** want to add a new CSS component. See the Components section for examples.
440โ **
441โ ** CSS components use three simple naming ideas from the BEM system:
442โ ** - Block: `.my-component`
443โ ** - Element: `.my-component__item`
444โ ** - Modifier: `.my-component.my-component--highlighted`
445โ **
446โ ** Example:
447โ ** <div .my-component>
448โ ** <div .my-component__item>
449โ ** <div .my-component__item>
450โ ** ...
451โ ** <div .my-component.my-component--highlighted>
452โ ** <div .my-component__item>
453โ ** <div .my-component__item>
454โ **
455โ ** Components can be nested.
456โ **
457โ **
458โ ** TYPOGRAPHY
459โ **
460โ ** Typographic choices for sizes, line-heights and margins are based on a
461โ ** musical major third scale (4:5). This gives us a way to find numbers
462โ ** and relationships between them that are perceived as harmonic.
463โ **
464โ ** To make use of this modular scale, use a ratio of the form
465โ ** (5/4)^n
466โ ** where n โ โค, -6 โค n โค 8.
467โ **
468โ ** LESS
469โ **
470โ ** This CSS is generated by less. To compile it:
471โ **
472โ ** npm install [-g] less
473โ ** lessc app/static/pursuit.less > app/static/pursuit.css
474โ **
475โ ** ************************************************************************* */
476โ/* Section: Variables
477โ * ========================================================================== */
478โ/* Section: Document Styles
479โ * ========================================================================== */
480โ:root {
481โ color-scheme: light dark;
482โ}
483โhtml {
484โ box-sizing: border-box;
485โ /* This overflow rule prevents everything from shifting slightly to the side
486โ when moving from a page which isn't large enough to generate a scrollbar
487โ to one that is. */
488โ overflow-y: scroll;
489โ}
490โ*,
491โ*::before,
492โ*::after {
493โ box-sizing: inherit;
494โ}
495โbody {
496โ background-color: #ffffff;
497โ color: #000000;
498โ font-family: "Roboto", sans-serif;
499โ font-size: 87.5%;
500โ line-height: 1.563;
501โ}
502โ@media (prefers-color-scheme: dark) {
503โ body {
504โ background-color: #141417;
505โ color: #dedede;
506โ }
507โ}
508โ@media (min-width: 38em) {
509โ body {
510โ font-size: 100%;
511โ }
512โ}
513โ/* Section: Utility Classes
514โ * ========================================================================== */
515โ.clear-floats {
516โ clear: both;
517โ}
518โ.clearfix::before,
519โ.clearfix::after {
520โ content: " ";
521โ display: table;
522โ}
523โ.clearfix::after {
524โ clear: both;
525โ}
526โ/* Content hidden like this will still be read by a screen reader */
527โ.hide-visually {
528โ position: absolute;
529โ left: -10000px;
530โ top: auto;
531โ width: 1px;
532โ height: 1px;
533โ overflow: hidden;
534โ}
535โ/* Section: Layout
536โ * ========================================================================== */
537โ.container {
538โ display: block;
539โ max-width: 66em;
540โ margin-left: auto;
541โ margin-right: auto;
542โ padding-left: 20px;
543โ padding-right: 20px;
544โ}
545โ.col {
546โ display: block;
547โ position: relative;
548โ width: 100%;
549โ}
550โ.col.col--main {
551โ margin-bottom: 3.08em;
552โ}
553โ.col.col--aside {
554โ margin-bottom: 2.44em;
555โ}
556โ@media (min-width: 52em) {
557โ .container {
558โ padding-left: 30px;
559โ padding-right: 30px;
560โ }
561โ .col.col--main {
562โ float: left;
563โ width: 63.655%;
564โ /* 66.6โฆ% - 30px */
565โ }
566โ .col.col--aside {
567โ float: right;
568โ font-size: 87.5%;
569โ width: 33.333333%;
570โ }
571โ}
572โ@media (min-width: 66em) {
573โ .col.col--aside {
574โ font-size: inherit;
575โ }
576โ}
577โ/* Footer
578โ * Based on http://www.lwis.net/journal/2008/02/08/pure-css-sticky-footer/
579โ * Except we don't support IE6
580โ * -------------------------------------------------------------------------- */
581โhtml,
582โbody {
583โ height: 100%;
584โ}
585โ.everything-except-footer {
586โ min-height: 100%;
587โ padding-bottom: 3em;
588โ}
589โ.footer {
590โ position: relative;
591โ height: 3em;
592โ margin-top: -3em;
593โ width: 100%;
594โ text-align: center;
595โ background-color: #1d222d;
596โ color: #f0f0f0;
597โ}
598โ@media (prefers-color-scheme: dark) {
599โ .footer {
600โ background-color: #1d222d;
601โ color: #f0f0f0;
602โ }
603โ}
604โ.footer * {
605โ margin-bottom: 0;
606โ}
607โ/* Section: Element Styles
608โ *
609โ * Have as few of these as possible and keep them general, because they will
610โ * influence every component hereafter.
611โ * ========================================================================== */
612โ:target {
613โ background-color: #f1f5f9;
614โ}
615โ@media (prefers-color-scheme: dark) {
616โ :target {
617โ background-color: #232327;
618โ }
619โ}
620โa,
621โa:visited {
622โ color: #c4953a;
623โ text-decoration: none;
624โ font-weight: bold;
625โ}
626โ@media (prefers-color-scheme: dark) {
627โ a,
628โ a:visited {
629โ color: #d8ac55;
630โ }
631โ}
632โa:hover {
633โ color: #7b5904;
634โ text-decoration: none;
635โ}
636โ@media (prefers-color-scheme: dark) {
637โ a:hover {
638โ color: #f0dcab;
639โ }
640โ}
641โcode,
642โpre {
643โ background-color: #f1f5f9;
644โ border-radius: 3px;
645โ color: #194a5b;
646โ font-family: "Roboto Mono", monospace;
647โ font-size: 87.5%;
648โ}
649โ@media (prefers-color-scheme: dark) {
650โ code,
651โ pre {
652โ background-color: #232327;
653โ color: #c1d3da;
654โ }
655โ}
656โ:target code,
657โ:target pre {
658โ background-color: #dfe8f1;
659โ}
660โ@media (prefers-color-scheme: dark) {
661โ :target code,
662โ :target pre {
663โ background-color: #2f2f34;
664โ }
665โ}
666โcode {
667โ padding: 0.2em 0;
668โ margin: 0;
669โ white-space: pre-wrap;
670โ word-wrap: break-word;
671โ}
672โcode::before,
673โcode::after {
674โ letter-spacing: -0.2em;
675โ content: "\00a0";
676โ}
677โa > code {
678โ font-weight: normal;
679โ}
680โa > code::before {
681โ content: "๐ก";
682โ letter-spacing: 0.33em;
683โ}
684โa:hover > code {
685โ color: #c4953a;
686โ}
687โ@media (prefers-color-scheme: dark) {
688โ a:hover > code {
689โ color: #d8ac55;
690โ }
691โ}
692โpre {
693โ margin-top: 0;
694โ margin-bottom: 0;
695โ padding: 1em 1.25rem;
696โ /* Using rem here to align with lists etc. */
697โ overflow: auto;
698โ white-space: pre;
699โ word-wrap: normal;
700โ}
701โpre code {
702โ background-color: transparent;
703โ border: 0;
704โ font-size: 100%;
705โ max-width: auto;
706โ padding: 0;
707โ margin: 0;
708โ overflow: visible;
709โ line-height: inherit;
710โ white-space: pre;
711โ word-break: normal;
712โ word-wrap: normal;
713โ}
714โpre code::before,
715โpre code::after {
716โ content: normal;
717โ}
718โh1 {
719โ font-size: 3.052em;
720โ font-weight: 300;
721โ letter-spacing: -0.5px;
722โ line-height: 1.125;
723โ margin-top: 1.563rem;
724โ margin-bottom: 1.25rem;
725โ}
726โ@media (min-width: 52em) {
727โ h1 {
728โ font-size: 3.814em;
729โ margin-top: 5.96rem;
730โ }
731โ}
732โh2 {
733โ font-size: 1.953em;
734โ font-weight: normal;
735โ line-height: 1.25;
736โ margin-top: 3.052rem;
737โ margin-bottom: 1rem;
738โ}
739โh3 {
740โ font-size: 1.563em;
741โ font-weight: normal;
742โ line-height: 1.25;
743โ margin-top: 2.441rem;
744โ margin-bottom: 1rem;
745โ}
746โh4 {
747โ font-size: 1.25em;
748โ font-weight: normal;
749โ margin-top: 2.441rem;
750โ margin-bottom: 1rem;
751โ}
752โh1 + h2,
753โh1 + h3,
754โh1 + h4,
755โh2 + h3,
756โh2 + h4,
757โh3 + h4 {
758โ margin-top: 1rem;
759โ}
760โhr {
761โ border: none;
762โ height: 1px;
763โ background-color: #cccccc;
764โ}
765โ@media (prefers-color-scheme: dark) {
766โ hr {
767โ background-color: #43434e;
768โ }
769โ}
770โimg {
771โ border-style: none;
772โ max-width: 100%;
773โ}
774โp {
775โ font-size: 1em;
776โ margin-top: 1rem;
777โ margin-bottom: 1rem;
778โ}
779โtable {
780โ border-bottom: 1px solid #cccccc;
781โ border-collapse: collapse;
782โ border-spacing: 0;
783โ margin-top: 1rem;
784โ margin-bottom: 1rem;
785โ width: 100%;
786โ}
787โ@media (prefers-color-scheme: dark) {
788โ table {
789โ border-bottom-color: #43434e;
790โ }
791โ}
792โtd,
793โth {
794โ text-align: left;
795โ padding: 0.41em 0.51em;
796โ}
797โtd {
798โ border-top: 1px solid #cccccc;
799โ}
800โ@media (prefers-color-scheme: dark) {
801โ td {
802โ border-top-color: #43434e;
803โ }
804โ}
805โtd:first-child,
806โth:first-child {
807โ padding-left: 0;
808โ}
809โtd:last-child,
810โth:last-child {
811โ padding-right: 0;
812โ}
813โul {
814โ list-style-type: none;
815โ margin-top: 1rem;
816โ margin-bottom: 1rem;
817โ padding-left: 0;
818โ}
819โul li {
820โ position: relative;
821โ padding-left: 1.25em;
822โ}
823โul li::before {
824โ position: absolute;
825โ color: #a0a0a0;
826โ content: "โ";
827โ display: inline-block;
828โ margin-left: -1.25em;
829โ width: 1.25em;
830โ}
831โ@media (prefers-color-scheme: dark) {
832โ ul li::before {
833โ color: #a0a0a0;
834โ }
835โ}
836โ/* Tying this tightly to ul at the moment because it's a slight variation thereof */
837โul.ul--search li::before {
838โ content: "โฒ";
839โ top: -0.2em;
840โ transform: rotate(-45deg);
841โ}
842โol {
843โ margin-top: 1rem;
844โ margin-bottom: 1rem;
845โ padding-left: 1.25em;
846โ}
847โol li {
848โ position: relative;
849โ padding-left: 0;
850โ}
851โ/* Section: Components
852โ * ========================================================================== */
853โ/* Component: Badge
854โ * -------------------------------------------------------------------------- */
855โ.badge {
856โ position: relative;
857โ top: -0.1em;
858โ display: inline-block;
859โ background-color: #000000;
860โ border-radius: 1.3em;
861โ color: #ffffff;
862โ font-size: 77%;
863โ font-weight: bold;
864โ line-height: 1.563;
865โ text-align: center;
866โ height: 1.5em;
867โ width: 1.5em;
868โ}
869โ@media (prefers-color-scheme: dark) {
870โ .badge {
871โ background-color: #dedede;
872โ color: #141417;
873โ }
874โ}
875โ.badge.badge--package {
876โ background-color: #c4953a;
877โ letter-spacing: -0.1em;
878โ}
879โ@media (prefers-color-scheme: dark) {
880โ .badge.badge--package {
881โ background-color: #d8ac55;
882โ }
883โ}
884โ.badge.badge--module {
885โ background-color: #75B134;
886โ}
887โ/* Component: Declarations
888โ * -------------------------------------------------------------------------- */
889โ.decl__title {
890โ position: relative;
891โ padding-bottom: 0.328em;
892โ margin-bottom: 0.262em;
893โ}
894โ.decl__source {
895โ display: block;
896โ float: right;
897โ font-size: 64%;
898โ position: relative;
899โ top: 0.57em;
900โ}
901โ.decl__anchor,
902โ.decl__anchor:visited {
903โ position: absolute;
904โ left: -0.8em;
905โ color: #bababa;
906โ}
907โ@media (prefers-color-scheme: dark) {
908โ .decl__anchor,
909โ .decl__anchor:visited {
910โ color: #878787;
911โ }
912โ}
913โ.decl__anchor:hover {
914โ color: #c4953a;
915โ}
916โ@media (prefers-color-scheme: dark) {
917โ .decl__anchor:hover {
918โ color: #d8ac55;
919โ }
920โ}
921โ.decl__signature {
922โ background-color: transparent;
923โ border-radius: 0;
924โ border-top: 1px solid #cccccc;
925โ border-bottom: 1px solid #cccccc;
926โ padding: 0;
927โ}
928โ@media (prefers-color-scheme: dark) {
929โ .decl__signature {
930โ border-top-color: #43434e;
931โ border-bottom-color: #43434e;
932โ }
933โ}
934โ.decl__signature code {
935โ display: block;
936โ padding: 0.328em 0;
937โ padding-left: 2.441em;
938โ text-indent: -2.441em;
939โ white-space: normal;
940โ}
941โ.decl__role {
942โ font-family: "Roboto", sans-serif;
943โ font-style: italic;
944โ font-weight: normal;
945โ}
946โ/* See https://stackoverflow.com/a/32162038
947โ Content licensed under CC BY-SA 3.0
948โ*/
949โ.decl__role_hover[title] {
950โ /* Remove line that appears under abbr element */
951โ border-bottom: none;
952โ text-decoration: none;
953โ /* Ensure cursor doesn't change to question mark */
954โ cursor: inherit;
955โ}
956โ.decl__role_nominal::after {
957โ content: "nominal";
958โ}
959โ.decl__role_phantom::after {
960โ content: "phantom";
961โ}
962โ.decl__kind {
963โ border-bottom: 1px solid #cccccc;
964โ}
965โ@media (prefers-color-scheme: dark) {
966โ .decl__kind {
967โ border-bottom-color: #43434e;
968โ }
969โ}
970โ:target .decl__signature,
971โ:target .decl__signature code {
972โ /* We want the background to be transparent, even when the parent is a target */
973โ background-color: transparent;
974โ}
975โ.decl__body .keyword,
976โ.decl__body .syntax {
977โ color: #0b71b4;
978โ}
979โ@media (prefers-color-scheme: dark) {
980โ .decl__body .keyword,
981โ .decl__body .syntax {
982โ color: #3796d5;
983โ }
984โ}
985โ.decl__child_comments {
986โ margin-top: 1rem;
987โ margin-bottom: 1rem;
988โ}
989โ/* Component: Dependency Link
990โ * -------------------------------------------------------------------------- */
991โ.deplink {
992โ /* Currently no root styles, but keep the class as a namespace */
993โ}
994โ.deplink__link {
995โ display: inline-block;
996โ margin-right: 0.41em;
997โ}
998โ.deplink__version {
999โ color: #666666;
1000โ display: inline-block;
1001โ font-size: 0.8em;
1002โ line-height: 1;
1003โ}
1004โ@media (prefers-color-scheme: dark) {
1005โ .deplink__version {
1006โ color: #a0a0a0;
1007โ }
1008โ}
1009โ/* Component: Grouped List
1010โ * -------------------------------------------------------------------------- */
1011โ.grouped-list {
1012โ border-top: 1px solid #cccccc;
1013โ margin: 0 0 2.44em 0;
1014โ}
1015โ@media (prefers-color-scheme: dark) {
1016โ .grouped-list {
1017โ border-top-color: #43434e;
1018โ }
1019โ}
1020โ.grouped-list__title {
1021โ color: #666666;
1022โ font-size: 0.8em;
1023โ font-weight: 300;
1024โ letter-spacing: 1px;
1025โ margin: 0.8em 0 -0.1em 0;
1026โ text-transform: uppercase;
1027โ}
1028โ@media (prefers-color-scheme: dark) {
1029โ .grouped-list__title {
1030โ border-top-color: #a0a0a0;
1031โ }
1032โ}
1033โ.grouped-list__item {
1034โ margin: 0;
1035โ}
1036โ/* Component: Message
1037โ * -------------------------------------------------------------------------- */
1038โ.message {
1039โ border: 5px solid;
1040โ border-radius: 5px;
1041โ padding: 1em !important;
1042โ}
1043โ.message.message--error {
1044โ background-color: #fff0f0;
1045โ border-color: #c85050;
1046โ}
1047โ@media (prefers-color-scheme: dark) {
1048โ .message.message--error {
1049โ background-color: #6b0e0e;
1050โ border-color: #c85050;
1051โ }
1052โ}
1053โ.message.message--not-available {
1054โ background-color: #f0f096;
1055โ border-color: #e3e33d;
1056โ}
1057โ@media (prefers-color-scheme: dark) {
1058โ .message.message--not-available {
1059โ background-color: #56560b;
1060โ border-color: #b0b017;
1061โ }
1062โ}
1063โ/* Component: Multi Col
1064โ * Multiple columns side by side
1065โ * -------------------------------------------------------------------------- */
1066โ.multi-col {
1067โ margin-bottom: 2.44em;
1068โ}
1069โ.multi-col__col {
1070โ display: block;
1071โ padding-right: 1em;
1072โ position: relative;
1073โ width: 100%;
1074โ}
1075โ@media (min-width: 38em) and (max-width: 51.999999em) {
1076โ .multi-col__col {
1077โ float: left;
1078โ width: 50%;
1079โ }
1080โ .multi-col__col:nth-child(2n+3) {
1081โ clear: both;
1082โ }
1083โ}
1084โ@media (min-width: 52em) {
1085โ .multi-col__col {
1086โ float: left;
1087โ width: 33.333333%;
1088โ }
1089โ .multi-col__col:nth-child(3n+4) {
1090โ clear: both;
1091โ }
1092โ}
1093โ/* Component: Page Title
1094โ * -------------------------------------------------------------------------- */
1095โ.page-title {
1096โ margin: 4.77em 0 1.56em;
1097โ padding-bottom: 1.25em;
1098โ position: relative;
1099โ}
1100โ.page-title__title {
1101โ margin: 0 0 0 -0.05em;
1102โ /* Visually align on left edge */
1103โ}
1104โ.page-title__label {
1105โ position: relative;
1106โ color: #666666;
1107โ font-size: 0.8rem;
1108โ font-weight: 300;
1109โ letter-spacing: 1px;
1110โ margin-bottom: -0.8em;
1111โ text-transform: uppercase;
1112โ z-index: 1;
1113โ}
1114โ@media (prefers-color-scheme: dark) {
1115โ .page-title__label {
1116โ color: #a0a0a0;
1117โ }
1118โ}
1119โ/* Component: Top Banner
1120โ * -------------------------------------------------------------------------- */
1121โ.top-banner {
1122โ background-color: #1d222d;
1123โ color: #f0f0f0;
1124โ font-weight: normal;
1125โ}
1126โ@media (prefers-color-scheme: dark) {
1127โ .top-banner {
1128โ background-color: #1d222d;
1129โ color: #f0f0f0;
1130โ }
1131โ}
1132โ.top-banner__logo,
1133โ.top-banner__logo:visited {
1134โ float: left;
1135โ color: #f0f0f0;
1136โ font-size: 2.44em;
1137โ font-weight: 300;
1138โ line-height: 90px;
1139โ margin: 0;
1140โ}
1141โ@media (prefers-color-scheme: dark) {
1142โ .top-banner__logo,
1143โ .top-banner__logo:visited {
1144โ color: #f0f0f0;
1145โ }
1146โ}
1147โ.top-banner__logo:hover {
1148โ color: #c4953a;
1149โ text-decoration: none;
1150โ}
1151โ.top-banner__form {
1152โ margin-bottom: 1.25em;
1153โ}
1154โ.top-banner__form input {
1155โ border: 1px solid #1d222d;
1156โ border-radius: 3px;
1157โ background-color: #ffffff;
1158โ color: #1d222d;
1159โ font-weight: 300;
1160โ line-height: 2;
1161โ padding: 0.21em 0.512em;
1162โ width: 100%;
1163โ}
1164โ@media (prefers-color-scheme: dark) {
1165โ .top-banner__form input {
1166โ border-color: #1d222d;
1167โ background-color: #141417;
1168โ color: #dedede;
1169โ }
1170โ}
1171โ.top-banner__actions {
1172โ float: right;
1173โ text-align: right;
1174โ}
1175โ.top-banner__actions__item {
1176โ display: inline-block;
1177โ line-height: 90px;
1178โ margin: 0;
1179โ padding-left: 1.25em;
1180โ}
1181โ.top-banner__actions__item:first-child {
1182โ padding-left: 0;
1183โ}
1184โ.top-banner__actions__item a,
1185โ.top-banner__actions__item a:visited {
1186โ color: #f0f0f0;
1187โ}
1188โ@media (prefers-color-scheme: dark) {
1189โ .top-banner__actions__item a,
1190โ .top-banner__actions__item a:visited {
1191โ color: #f0f0f0;
1192โ }
1193โ}
1194โ.top-banner__actions__item a:hover {
1195โ color: #c4953a;
1196โ}
1197โ@media (prefers-color-scheme: dark) {
1198โ .top-banner__actions__item a:hover {
1199โ color: #d8ac55;
1200โ }
1201โ}
1202โ@media (min-width: 38em) {
1203โ .top-banner__logo {
1204โ float: left;
1205โ width: 25%;
1206โ }
1207โ .top-banner__form {
1208โ float: left;
1209โ line-height: 90px;
1210โ margin-bottom: 0;
1211โ width: 50%;
1212โ }
1213โ .top-banner__actions {
1214โ float: right;
1215โ width: 25%;
1216โ }
1217โ}
1218โ/* Component: Search Results
1219โ * -------------------------------------------------------------------------- */
1220โ.result.result--empty {
1221โ font-size: 1.25em;
1222โ}
1223โ.result__title {
1224โ font-size: 1.25em;
1225โ margin-bottom: 0.2rem;
1226โ}
1227โ.result__badge {
1228โ margin-left: -0.1em;
1229โ}
1230โ.result__body > *:first-child {
1231โ margin-top: 0!important;
1232โ}
1233โ.result__body > *:last-child {
1234โ margin-bottom: 0!important;
1235โ}
1236โ.result__signature {
1237โ background-color: transparent;
1238โ border-radius: 0;
1239โ border-top: 1px solid #cccccc;
1240โ border-bottom: 1px solid #cccccc;
1241โ padding: 0.328em 0;
1242โ}
1243โ@media (prefers-color-scheme: dark) {
1244โ .result__signature {
1245โ border-top-color: #43434e;
1246โ border-bottom-color: #43434e;
1247โ }
1248โ}
1249โ.result__signature code {
1250โ display: block;
1251โ padding-left: 2.441em;
1252โ text-indent: -2.441em;
1253โ white-space: normal;
1254โ}
1255โ.result__actions {
1256โ margin-top: 0.2rem;
1257โ}
1258โ.result__actions__item {
1259โ font-size: 80%;
1260โ}
1261โ.result__actions__item + .result__actions__item {
1262โ margin-left: 0.65em;
1263โ}
1264โ/* Component: Version Selector
1265โ * -------------------------------------------------------------------------- */
1266โ.version-selector {
1267โ margin-bottom: 0.8em;
1268โ}
1269โ@media (min-width: 38em) {
1270โ .version-selector {
1271โ position: absolute;
1272โ top: 0.8em;
1273โ right: 0;
1274โ margin-bottom: 0;
1275โ }
1276โ}
1277โ/* Section: FIXME
1278โ * These styles should be cleaned up
1279โ * ========================================================================== */
1280โ/* Help paragraphs */
1281โ.help {
1282โ padding: 5px 0;
1283โ}
1284โ.help h3 {
1285โ /* FIXME: target with class */
1286โ margin-top: 16px;
1287โ}
1288โ/* Section: Markdown
1289โ * Github rendered README
1290โ * ========================================================================== */
1291โ.markdown-body {
1292โ /*
1293โ Useful for narrow screens, such as mobiles. Documentation often contains URLs
1294โ which would otherwise force the page to become wider, and force creation of
1295โ horizontal scrollbars. Yuck.
1296โ */
1297โ word-wrap: break-word;
1298โ}
1299โ.markdown-body > *:first-child {
1300โ margin-top: 0 !important;
1301โ}
1302โ.markdown-body > *:last-child {
1303โ margin-bottom: 0 !important;
1304โ}
1305โ.markdown-body a:not([href]) {
1306โ color: inherit;
1307โ text-decoration: none;
1308โ}
1309โ.markdown-body blockquote {
1310โ margin: 0;
1311โ padding: 0 1em;
1312โ color: #777;
1313โ border-left: 0.25em solid #ddd;
1314โ}
1315โ@media (prefers-color-scheme: dark) {
1316โ .markdown-body blockquote {
1317โ border-left-color: #444;
1318โ }
1319โ}
1320โ.markdown-body blockquote > :first-child {
1321โ margin-top: 0;
1322โ}
1323โ.markdown-body blockquote > :last-child {
1324โ margin-bottom: 0;
1325โ}
1326โ.markdown-body .anchor {
1327โ /* We hide the anchor because the link doesn't point to a valid location */
1328โ display: none;
1329โ}
1330โ.markdown-body .pl-k {
1331โ /* Keyword */
1332โ color: #a0a0a0;
1333โ}
1334โ@media (prefers-color-scheme: dark) {
1335โ .markdown-body .pl-k {
1336โ color: #676767;
1337โ }
1338โ}
1339โ.markdown-body .pl-c1,
1340โ.markdown-body .pl-en {
1341โ /* Not really sure what this is */
1342โ color: #39d;
1343โ}
1344โ.markdown-body .pl-s {
1345โ /* String literals */
1346โ color: #1a1;
1347โ}
1348โ.markdown-body .pl-cce {
1349โ /* String literal escape sequences */
1350โ color: #921;
1351โ}
1352โ.markdown-body .pl-smi {
1353โ /* type variables? */
1354โ color: #62b;
1355โ}
1356โ</style></head><body><div class="everything-except-footer"><div class="top-banner clearfix"><div class="container clearfix"><div style="float: left; font-size: 2.44em; font-weight: 300; line-height: 90px; margin: 0">PureScript API documentation</div><div class="top-banner__actions"><div class="top-banner__actions__item"><a href="index.html">Index</a></div></div></div></div><main class="container clearfix" role="main"><div class="page-title clearfix"><div class="page-title__label">Module</div><h1 class="page-title__title">Ansi.Output</h1></div><div class="col col--main"><p>Convenience functions to simplify outputting ANSI escape codes to
1357โterminals.</p>
1358โ<div class="decl" id="v:withGraphics"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:withGraphics">#</a><span>withGraphics</span> </h3><div class="decl__body"><pre class="decl__signature"><code><a href="Ansi.Output.html#v:withGraphics" title="Ansi.Output.withGraphics"><span class="ident">withGraphics</span></a> <span class="syntax">::</span> <a href="Data.List.Types.html#t:NonEmptyList" title="Data.List.Types.NonEmptyList"><span class="ctor">NonEmptyList</span></a> <a href="Ansi.Codes.html#t:GraphicsParam" title="Ansi.Codes.GraphicsParam"><span class="ctor">GraphicsParam</span></a> <span class="syntax">-></span> <a href="Prim.html#t:String" title="Prim.String"><span class="ctor">String</span></a> <span class="syntax">-></span> <a href="Prim.html#t:String" title="Prim.String"><span class="ctor">String</span></a></code></pre><p>Wrap the given text in escape codes corresponding to the given parameters.
1359โFor example:</p>
1360โ<pre class="purescript"><code>Console.log $ withGraphics (bold <> underline <> foreground BrightRed) "hello world"
1361โ</code></pre>
1362โ<p>would print "hello world" to the terminal, bold, underlined, and in bright
1363โred, and then reset (so that further logging to the console uses the
1364โnormal color and style).</p>
1365โ<p>This function simply wraps the given text in an escape code and a reset
1366โcode, so that it is a little more comfortable to use than the functions
1367โin <code>Ansi.Codes</code>.</p>
1368โ</div></div><div class="decl" id="v:bold"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:bold">#</a><span>bold</span> </h3><div class="decl__body"><pre class="decl__signature"><code><a href="Ansi.Output.html#v:bold" title="Ansi.Output.bold"><span class="ident">bold</span></a> <span class="syntax">::</span> <a href="Data.List.Types.html#t:NonEmptyList" title="Data.List.Types.NonEmptyList"><span class="ctor">NonEmptyList</span></a> <a href="Ansi.Codes.html#t:GraphicsParam" title="Ansi.Codes.GraphicsParam"><span class="ctor">GraphicsParam</span></a></code></pre></div></div><div class="decl" id="v:dim"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:dim">#</a><span>dim</span> </h3><div class="decl__body"><pre class="decl__signature"><code><a href="Ansi.Output.html#v:dim" title="Ansi.Output.dim"><span class="ident">dim</span></a> <span class="syntax">::</span> <a href="Data.List.Types.html#t:NonEmptyList" title="Data.List.Types.NonEmptyList"><span class="ctor">NonEmptyList</span></a> <a href="Ansi.Codes.html#t:GraphicsParam" title="Ansi.Codes.GraphicsParam"><span class="ctor">GraphicsParam</span></a></code></pre></div></div><div class="decl" id="v:italic"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:italic">#</a><span>italic</span> </h3><div class="decl__body"><pre class="decl__signature"><code><a href="Ansi.Output.html#v:italic" title="Ansi.Output.italic"><span class="ident">italic</span></a> <span class="syntax">::</span> <a href="Data.List.Types.html#t:NonEmptyList" title="Data.List.Types.NonEmptyList"><span class="ctor">NonEmptyList</span></a> <a href="Ansi.Codes.html#t:GraphicsParam" title="Ansi.Codes.GraphicsParam"><span class="ctor">GraphicsParam</span></a></code></pre></div></div><div class="decl" id="v:underline"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:underline">#</a><span>underline</span> </h3><div class="decl__body"><pre class="decl__signature"><code><a href="Ansi.Output.html#v:underline" title="Ansi.Output.underline"><span class="ident">underline</span></a> <span class="syntax">::</span> <a href="Data.List.Types.html#t:NonEmptyList" title="Data.List.Types.NonEmptyList"><span class="ctor">NonEmptyList</span></a> <a href="Ansi.Codes.html#t:GraphicsParam" title="Ansi.Codes.GraphicsParam"><span class="ctor">GraphicsParam</span></a></code></pre></div></div><div class="decl" id="v:inverse"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:inverse">#</a><span>inverse</span> </h3><div class="decl__body"><pre class="decl__signature"><code><a href="Ansi.Output.html#v:inverse" title="Ansi.Output.inverse"><span class="ident">inverse</span></a> <span class="syntax">::</span> <a href="Data.List.Types.html#t:NonEmptyList" title="Data.List.Types.NonEmptyList"><span class="ctor">NonEmptyList</span></a> <a href="Ansi.Codes.html#t:GraphicsParam" title="Ansi.Codes.GraphicsParam"><span class="ctor">GraphicsParam</span></a></code></pre></div></div><div class="decl" id="v:strikethrough"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:strikethrough">#</a><span>strikethrough</span> </h3><div class="decl__body"><pre class="decl__signature"><code><a href="Ansi.Output.html#v:strikethrough" title="Ansi.Output.strikethrough"><span class="ident">strikethrough</span></a> <span class="syntax">::</span> <a href="Data.List.Types.html#t:NonEmptyList" title="Data.List.Types.NonEmptyList"><span class="ctor">NonEmptyList</span></a> <a href="Ansi.Codes.html#t:GraphicsParam" title="Ansi.Codes.GraphicsParam"><span class="ctor">GraphicsParam</span></a></code></pre></div></div><div class="decl" id="v:foreground"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:foreground">#</a><span>foreground</span> </h3><div class="decl__body"><pre class="decl__signature"><code><a href="Ansi.Output.html#v:foreground" title="Ansi.Output.foreground"><span class="ident">foreground</span></a> <span class="syntax">::</span> <a href="Ansi.Codes.html#t:Color" title="Ansi.Codes.Color"><span class="ctor">Color</span></a> <span class="syntax">-></span> <a href="Data.List.Types.html#t:NonEmptyList" title="Data.List.Types.NonEmptyList"><span class="ctor">NonEmptyList</span></a> <a href="Ansi.Codes.html#t:GraphicsParam" title="Ansi.Codes.GraphicsParam"><span class="ctor">GraphicsParam</span></a></code></pre></div></div><div class="decl" id="v:background"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:background">#</a><span>background</span> </h3><div class="decl__body"><pre class="decl__signature"><code><a href="Ansi.Output.html#v:background" title="Ansi.Output.background"><span class="ident">background</span></a> <span class="syntax">::</span> <a href="Ansi.Codes.html#t:Color" title="Ansi.Codes.Color"><span class="ctor">Color</span></a> <span class="syntax">-></span> <a href="Data.List.Types.html#t:NonEmptyList" title="Data.List.Types.NonEmptyList"><span class="ctor">NonEmptyList</span></a> <a href="Ansi.Codes.html#t:GraphicsParam" title="Ansi.Codes.GraphicsParam"><span class="ctor">GraphicsParam</span></a></code></pre></div></div></div><div class="col col--aside"><h3>Modules</h3><ul><li><a href="Ansi.Codes.html">Ansi.Codes</a></li><li><a href="Ansi.Output.html">Ansi.Output</a></li><li><a href="Bolson.Control.html">Bolson.Control</a></li><li><a href="Bolson.Core.html">Bolson.Core</a></li><li><a href="Control.Alt.html">Control.Alt</a></li><li><a href="Control.Alternative.html">Control.Alternative</a></li><li><a href="Control.Applicative.html">Control.Applicative</a></li><li><a href="Control.Apply.html">Control.Apply</a></li><li><a href="Control.Biapplicative.html">Control.Biapplicative</a></li><li><a href="Control.Biapply.html">Control.Biapply</a></li><li><a href="Control.Bind.html">Control.Bind</a></li><li><a href="Control.Category.html">Control.Category</a></li><li><a href="Control.Comonad.html">Control.Comonad</a></li><li><a href="Control.Comonad.Cofree.html">Control.Comonad.Cofree</a></li><li><a href="Control.Comonad.Cofree.Class.html">Control.Comonad.Cofree.Class</a></li><li><a href="Control.Comonad.Env.html">Control.Comonad.Env</a></li><li><a href="Control.Comonad.Env.Class.html">Control.Comonad.Env.Class</a></li><li><a href="Control.Comonad.Env.Trans.html">Control.Comonad.Env.Trans</a></li><li><a href="Control.Comonad.Store.html">Control.Comonad.Store</a></li><li><a href="Control.Comonad.Store.Class.html">Control.Comonad.Store.Class</a></li><li><a href="Control.Comonad.Store.Trans.html">Control.Comonad.Store.Trans</a></li><li><a href="Control.Comonad.Traced.html">Control.Comonad.Traced</a></li><li><a href="Control.Comonad.Traced.Class.html">Control.Comonad.Traced.Class</a></li><li><a href="Control.Comonad.Traced.Trans.html">Control.Comonad.Traced.Trans</a></li><li><a href="Control.Comonad.Trans.Class.html">Control.Comonad.Trans.Class</a></li><li><a href="Control.Extend.html">Control.Extend</a></li><li><a href="Control.Lazy.html">Control.Lazy</a></li><li><a href="Control.Monad.html">Control.Monad</a></li><li><a href="Control.Monad.Cont.html">Control.Monad.Cont</a></li><li><a href="Control.Monad.Cont.Class.html">Control.Monad.Cont.Class</a></li><li><a href="Control.Monad.Cont.Trans.html">Control.Monad.Cont.Trans</a></li><li><a href="Control.Monad.Error.Class.html">Control.Monad.Error.Class</a></li><li><a href="Control.Monad.Except.html">Control.Monad.Except</a></li><li><a href="Control.Monad.Except.Trans.html">Control.Monad.Except.Trans</a></li><li><a href="Control.Monad.Fork.Class.html">Control.Monad.Fork.Class</a></li><li><a href="Control.Monad.Free.html">Control.Monad.Free</a></li><li><a href="Control.Monad.Free.Class.html">Control.Monad.Free.Class</a></li><li><a href="Control.Monad.Gen.html">Control.Monad.Gen</a></li><li><a href="Control.Monad.Gen.Class.html">Control.Monad.Gen.Class</a></li><li><a href="Control.Monad.Gen.Common.html">Control.Monad.Gen.Common</a></li><li><a href="Control.Monad.Identity.Trans.html">Control.Monad.Identity.Trans</a></li><li><a href="Control.Monad.List.Trans.html">Control.Monad.List.Trans</a></li><li><a href="Control.Monad.Maybe.Trans.html">Control.Monad.Maybe.Trans</a></li><li><a href="Control.Monad.Morph.html">Control.Monad.Morph</a></li><li><a href="Control.Monad.RWS.html">Control.Monad.RWS</a></li><li><a href="Control.Monad.RWS.Trans.html">Control.Monad.RWS.Trans</a></li><li><a href="Control.Monad.Reader.html">Control.Monad.Reader</a></li><li><a href="Control.Monad.Reader.Class.html">Control.Monad.Reader.Class</a></li><li><a href="Control.Monad.Reader.Trans.html">Control.Monad.Reader.Trans</a></li><li><a href="Control.Monad.Rec.Class.html">Control.Monad.Rec.Class</a></li><li><a href="Control.Monad.ST.html">Control.Monad.ST</a></li><li><a href="Control.Monad.ST.Class.html">Control.Monad.ST.Class</a></li><li><a href="Control.Monad.ST.Global.html">Control.Monad.ST.Global</a></li><li><a href="Control.Monad.ST.Internal.html">Control.Monad.ST.Internal</a></li><li><a href="Control.Monad.ST.Ref.html">Control.Monad.ST.Ref</a></li><li><a href="Control.Monad.ST.Uncurried.html">Control.Monad.ST.Uncurried</a></li><li><a href="Control.Monad.State.html">Control.Monad.State</a></li><li><a href="Control.Monad.State.Class.html">Control.Monad.State.Class</a></li><li><a href="Control.Monad.State.Trans.html">Control.Monad.State.Trans</a></li><li><a href="Control.Monad.Trampoline.html">Control.Monad.Trampoline</a></li><li><a href="Control.Monad.Trans.Class.html">Control.Monad.Trans.Class</a></li><li><a href="Control.Monad.Writer.html">Control.Monad.Writer</a></li><li><a href="Control.Monad.Writer.Class.html">Control.Monad.Writer.Class</a></li><li><a href="Control.Monad.Writer.Trans.html">Control.Monad.Writer.Trans</a></li><li><a href="Control.MonadPlus.html">Control.MonadPlus</a></li><li><a href="Control.Parallel.html">Control.Parallel</a></li><li><a href="Control.Parallel.Class.html">Control.Parallel.Class</a></li><li><a href="Control.Plus.html">Control.Plus</a></li><li><a href="Control.Semigroupoid.html">Control.Semigroupoid</a></li><li><a href="Data.Array.html">Data.Array</a></li><li><a href="Data.Array.NonEmpty.html">Data.Array.NonEmpty</a></li><li><a href="Data.Array.NonEmpty.Internal.html">Data.Array.NonEmpty.Internal</a></li><li><a href="Data.Array.Partial.html">Data.Array.Partial</a></li><li><a href="Data.Array.ST.html">Data.Array.ST</a></li><li><a href="Data.Array.ST.Iterator.html">Data.Array.ST.Iterator</a></li><li><a href="Data.Array.ST.Partial.html">Data.Array.ST.Partial</a></li><li><a href="Data.ArrayBuffer.Types.html">Data.ArrayBuffer.Types</a></li><li><a href="Data.Bifoldable.html">Data.Bifoldable</a></li><li><a href="Data.Bifunctor.html">Data.Bifunctor</a></li><li><a href="Data.Bifunctor.Join.html">Data.Bifunctor.Join</a></li><li><a href="Data.Bitraversable.html">Data.Bitraversable</a></li><li><a href="Data.Boolean.html">Data.Boolean</a></li><li><a href="Data.BooleanAlgebra.html">Data.BooleanAlgebra</a></li><li><a href="Data.Bounded.html">Data.Bounded</a></li><li><a href="Data.Bounded.Generic.html">Data.Bounded.Generic</a></li><li><a href="Data.CatList.html">Data.CatList</a></li><li><a href="Data.CatQueue.html">Data.CatQueue</a></li><li><a href="Data.Char.html">Data.Char</a></li><li><a href="Data.Char.Gen.html">Data.Char.Gen</a></li><li><a href="Data.CommutativeRing.html">Data.CommutativeRing</a></li><li><a href="Data.Compactable.html">Data.Compactable</a></li><li><a href="Data.Comparison.html">Data.Comparison</a></li><li><a href="Data.Const.html">Data.Const</a></li><li><a href="Data.Coyoneda.html">Data.Coyoneda</a></li><li><a href="Data.Date.html">Data.Date</a></li><li><a href="Data.Date.Component.html">Data.Date.Component</a></li><li><a href="Data.Date.Component.Gen.html">Data.Date.Component.Gen</a></li><li><a href="Data.Date.Gen.html">Data.Date.Gen</a></li><li><a href="Data.DateTime.html">Data.DateTime</a></li><li><a href="Data.DateTime.Gen.html">Data.DateTime.Gen</a></li><li><a href="Data.DateTime.Instant.html">Data.DateTime.Instant</a></li><li><a href="Data.Decidable.html">Data.Decidable</a></li><li><a href="Data.Decide.html">Data.Decide</a></li><li><a href="Data.Distributive.html">Data.Distributive</a></li><li><a href="Data.Divide.html">Data.Divide</a></li><li><a href="Data.Divisible.html">Data.Divisible</a></li><li><a href="Data.DivisionRing.html">Data.DivisionRing</a></li><li><a href="Data.Either.html">Data.Either</a></li><li><a href="Data.Either.Inject.html">Data.Either.Inject</a></li><li><a href="Data.Either.Nested.html">Data.Either.Nested</a></li><li><a href="Data.Enum.html">Data.Enum</a></li><li><a href="Data.Enum.Gen.html">Data.Enum.Gen</a></li><li><a href="Data.Enum.Generic.html">Data.Enum.Generic</a></li><li><a href="Data.Eq.html">Data.Eq</a></li><li><a href="Data.Eq.Generic.html">Data.Eq.Generic</a></li><li><a href="Data.Equivalence.html">Data.Equivalence</a></li><li><a href="Data.EuclideanRing.html">Data.EuclideanRing</a></li><li><a href="Data.Exists.html">Data.Exists</a></li><li><a href="Data.FastVect.Common.html">Data.FastVect.Common</a></li><li><a href="Data.FastVect.Common.Matrix.html">Data.FastVect.Common.Matrix</a></li><li><a href="Data.FastVect.FastVect.html">Data.FastVect.FastVect</a></li><li><a href="Data.FastVect.FastVect.Matrix.html">Data.FastVect.FastVect.Matrix</a></li><li><a href="Data.FastVect.MinLenVect.html">Data.FastVect.MinLenVect</a></li><li><a href="Data.FastVect.Sparse.Read.html">Data.FastVect.Sparse.Read</a></li><li><a href="Data.FastVect.Sparse.Write.html">Data.FastVect.Sparse.Write</a></li><li><a href="Data.Field.html">Data.Field</a></li><li><a href="Data.Filterable.html">Data.Filterable</a></li><li><a href="Data.Foldable.html">Data.Foldable</a></li><li><a href="Data.FoldableWithIndex.html">Data.FoldableWithIndex</a></li><li><a href="Data.Function.html">Data.Function</a></li><li><a href="Data.Function.Uncurried.html">Data.Function.Uncurried</a></li><li><a href="Data.Functor.html">Data.Functor</a></li><li><a href="Data.Functor.App.html">Data.Functor.App</a></li><li><a href="Data.Functor.Clown.html">Data.Functor.Clown</a></li><li><a href="Data.Functor.Compose.html">Data.Functor.Compose</a></li><li><a href="Data.Functor.Contravariant.html">Data.Functor.Contravariant</a></li><li><a href="Data.Functor.Coproduct.html">Data.Functor.Coproduct</a></li><li><a href="Data.Functor.Coproduct.Inject.html">Data.Functor.Coproduct.Inject</a></li><li><a href="Data.Functor.Coproduct.Nested.html">Data.Functor.Coproduct.Nested</a></li><li><a href="Data.Functor.Costar.html">Data.Functor.Costar</a></li><li><a href="Data.Functor.Flip.html">Data.Functor.Flip</a></li><li><a href="Data.Functor.Invariant.html">Data.Functor.Invariant</a></li><li><a href="Data.Functor.Joker.html">Data.Functor.Joker</a></li><li><a href="Data.Functor.Product.html">Data.Functor.Product</a></li><li><a href="Data.Functor.Product.Nested.html">Data.Functor.Product.Nested</a></li><li><a href="Data.Functor.Product2.html">Data.Functor.Product2</a></li><li><a href="Data.Functor.Variant.html">Data.Functor.Variant</a></li><li><a href="Data.FunctorWithIndex.html">Data.FunctorWithIndex</a></li><li><a href="Data.Generic.Rep.html">Data.Generic.Rep</a></li><li><a href="Data.HeytingAlgebra.html">Data.HeytingAlgebra</a></li><li><a href="Data.HeytingAlgebra.Generic.html">Data.HeytingAlgebra.Generic</a></li><li><a href="Data.Identity.html">Data.Identity</a></li><li><a href="Data.Int.html">Data.Int</a></li><li><a href="Data.Int.Bits.html">Data.Int.Bits</a></li><li><a href="Data.Interval.html">Data.Interval</a></li><li><a href="Data.Interval.Duration.html">Data.Interval.Duration</a></li><li><a href="Data.Interval.Duration.Iso.html">Data.Interval.Duration.Iso</a></li><li><a href="Data.JSDate.html">Data.JSDate</a></li><li><a href="Data.Lazy.html">Data.Lazy</a></li><li><a href="Data.List.html">Data.List</a></li><li><a href="Data.List.Internal.html">Data.List.Internal</a></li><li><a href="Data.List.Lazy.html">Data.List.Lazy</a></li><li><a href="Data.List.Lazy.NonEmpty.html">Data.List.Lazy.NonEmpty</a></li><li><a href="Data.List.Lazy.Types.html">Data.List.Lazy.Types</a></li><li><a href="Data.List.NonEmpty.html">Data.List.NonEmpty</a></li><li><a href="Data.List.Partial.html">Data.List.Partial</a></li><li><a href="Data.List.Types.html">Data.List.Types</a></li><li><a href="Data.List.ZipList.html">Data.List.ZipList</a></li><li><a href="Data.Map.html">Data.Map</a></li><li><a href="Data.Map.Gen.html">Data.Map.Gen</a></li><li><a href="Data.Map.Internal.html">Data.Map.Internal</a></li><li><a href="Data.Maybe.html">Data.Maybe</a></li><li><a href="Data.Maybe.First.html">Data.Maybe.First</a></li><li><a href="Data.Maybe.Last.html">Data.Maybe.Last</a></li><li><a href="Data.MediaType.html">Data.MediaType</a></li><li><a href="Data.MediaType.Common.html">Data.MediaType.Common</a></li><li><a href="Data.Monoid.html">Data.Monoid</a></li><li><a href="Data.Monoid.Additive.html">Data.Monoid.Additive</a></li><li><a href="Data.Monoid.Alternate.html">Data.Monoid.Alternate</a></li><li><a href="Data.Monoid.Conj.html">Data.Monoid.Conj</a></li><li><a href="Data.Monoid.Disj.html">Data.Monoid.Disj</a></li><li><a href="Data.Monoid.Dual.html">Data.Monoid.Dual</a></li><li><a href="Data.Monoid.Endo.html">Data.Monoid.Endo</a></li><li><a href="Data.Monoid.Generic.html">Data.Monoid.Generic</a></li><li><a href="Data.Monoid.Multiplicative.html">Data.Monoid.Multiplicative</a></li><li><a href="Data.NaturalTransformation.html">Data.NaturalTransformation</a></li><li><a href="Data.Newtype.html">Data.Newtype</a></li><li><a href="Data.NonEmpty.html">Data.NonEmpty</a></li><li><a href="Data.Nullable.html">Data.Nullable</a></li><li><a href="Data.Number.html">Data.Number</a></li><li><a href="Data.Number.Approximate.html">Data.Number.Approximate</a></li><li><a href="Data.Number.Format.html">Data.Number.Format</a></li><li><a href="Data.Op.html">Data.Op</a></li><li><a href="Data.Ord.html">Data.Ord</a></li><li><a href="Data.Ord.Down.html">Data.Ord.Down</a></li><li><a href="Data.Ord.Generic.html">Data.Ord.Generic</a></li><li><a href="Data.Ord.Max.html">Data.Ord.Max</a></li><li><a href="Data.Ord.Min.html">Data.Ord.Min</a></li><li><a href="Data.Ordering.html">Data.Ordering</a></li><li><a href="Data.Posix.html">Data.Posix</a></li><li><a href="Data.Posix.Signal.html">Data.Posix.Signal</a></li><li><a href="Data.Predicate.html">Data.Predicate</a></li><li><a href="Data.Profunctor.html">Data.Profunctor</a></li><li><a href="Data.Profunctor.Choice.html">Data.Profunctor.Choice</a></li><li><a href="Data.Profunctor.Closed.html">Data.Profunctor.Closed</a></li><li><a href="Data.Profunctor.Cochoice.html">Data.Profunctor.Cochoice</a></li><li><a href="Data.Profunctor.Costrong.html">Data.Profunctor.Costrong</a></li><li><a href="Data.Profunctor.Join.html">Data.Profunctor.Join</a></li><li><a href="Data.Profunctor.Split.html">Data.Profunctor.Split</a></li><li><a href="Data.Profunctor.Star.html">Data.Profunctor.Star</a></li><li><a href="Data.Profunctor.Strong.html">Data.Profunctor.Strong</a></li><li><a href="Data.Reflectable.html">Data.Reflectable</a></li><li><a href="Data.Ring.html">Data.Ring</a></li><li><a href="Data.Ring.Generic.html">Data.Ring.Generic</a></li><li><a href="Data.Semigroup.html">Data.Semigroup</a></li><li><a href="Data.Semigroup.First.html">Data.Semigroup.First</a></li><li><a href="Data.Semigroup.Foldable.html">Data.Semigroup.Foldable</a></li><li><a href="Data.Semigroup.Generic.html">Data.Semigroup.Generic</a></li><li><a href="Data.Semigroup.Last.html">Data.Semigroup.Last</a></li><li><a href="Data.Semigroup.Traversable.html">Data.Semigroup.Traversable</a></li><li><a href="Data.Semiring.html">Data.Semiring</a></li><li><a href="Data.Semiring.Generic.html">Data.Semiring.Generic</a></li><li><a href="Data.Set.html">Data.Set</a></li><li><a href="Data.Set.NonEmpty.html">Data.Set.NonEmpty</a></li><li><a href="Data.Show.html">Data.Show</a></li><li><a href="Data.Show.Generic.html">Data.Show.Generic</a></li><li><a href="Data.String.html">Data.String</a></li><li><a href="Data.String.CaseInsensitive.html">Data.String.CaseInsensitive</a></li><li><a href="Data.String.CodePoints.html">Data.String.CodePoints</a></li><li><a href="Data.String.CodeUnits.html">Data.String.CodeUnits</a></li><li><a href="Data.String.Common.html">Data.String.Common</a></li><li><a href="Data.String.Gen.html">Data.String.Gen</a></li><li><a href="Data.String.NonEmpty.html">Data.String.NonEmpty</a></li><li><a href="Data.String.NonEmpty.CaseInsensitive.html">Data.String.NonEmpty.CaseInsensitive</a></li><li><a href="Data.String.NonEmpty.CodePoints.html">Data.String.NonEmpty.CodePoints</a></li><li><a href="Data.String.NonEmpty.CodeUnits.html">Data.String.NonEmpty.CodeUnits</a></li><li><a href="Data.String.NonEmpty.Internal.html">Data.String.NonEmpty.Internal</a></li><li><a href="Data.String.Pattern.html">Data.String.Pattern</a></li><li><a href="Data.String.Regex.html">Data.String.Regex</a></li><li><a href="Data.String.Regex.Flags.html">Data.String.Regex.Flags</a></li><li><a href="Data.String.Regex.Unsafe.html">Data.String.Regex.Unsafe</a></li><li><a href="Data.String.Unsafe.html">Data.String.Unsafe</a></li><li><a href="Data.Symbol.html">Data.Symbol</a></li><li><a href="Data.Time.html">Data.Time</a></li><li><a href="Data.Time.Component.html">Data.Time.Component</a></li><li><a href="Data.Time.Component.Gen.html">Data.Time.Component.Gen</a></li><li><a href="Data.Time.Duration.html">Data.Time.Duration</a></li><li><a href="Data.Time.Duration.Gen.html">Data.Time.Duration.Gen</a></li><li><a href="Data.Time.Gen.html">Data.Time.Gen</a></li><li><a href="Data.Traversable.html">Data.Traversable</a></li><li><a href="Data.Traversable.Accum.html">Data.Traversable.Accum</a></li><li><a href="Data.Traversable.Accum.Internal.html">Data.Traversable.Accum.Internal</a></li><li><a href="Data.TraversableWithIndex.html">Data.TraversableWithIndex</a></li><li><a href="Data.Tuple.html">Data.Tuple</a></li><li><a href="Data.Tuple.Nested.html">Data.Tuple.Nested</a></li><li><a href="Data.Unfoldable.html">Data.Unfoldable</a></li><li><a href="Data.Unfoldable1.html">Data.Unfoldable1</a></li><li><a href="Data.Unit.html">Data.Unit</a></li><li><a href="Data.Variant.html">Data.Variant</a></li><li><a href="Data.Variant.Internal.html">Data.Variant.Internal</a></li><li><a href="Data.Void.html">Data.Void</a></li><li><a href="Data.Witherable.html">Data.Witherable</a></li><li><a href="Data.Yoneda.html">Data.Yoneda</a></li><li><a href="Effect.html">Effect</a></li><li><a href="Effect.AVar.html">Effect.AVar</a></li><li><a href="Effect.Aff.html">Effect.Aff</a></li><li><a href="Effect.Aff.AVar.html">Effect.Aff.AVar</a></li><li><a href="Effect.Aff.Class.html">Effect.Aff.Class</a></li><li><a href="Effect.Aff.Compat.html">Effect.Aff.Compat</a></li><li><a href="Effect.Class.html">Effect.Class</a></li><li><a href="Effect.Class.Console.html">Effect.Class.Console</a></li><li><a href="Effect.Console.html">Effect.Console</a></li><li><a href="Effect.Exception.html">Effect.Exception</a></li><li><a href="Effect.Exception.Unsafe.html">Effect.Exception.Unsafe</a></li><li><a href="Effect.Now.html">Effect.Now</a></li><li><a href="Effect.Ref.html">Effect.Ref</a></li><li><a href="Effect.Timer.html">Effect.Timer</a></li><li><a href="Effect.Uncurried.html">Effect.Uncurried</a></li><li><a href="Effect.Unsafe.html">Effect.Unsafe</a></li><li><a href="FRP.Behavior.html">FRP.Behavior</a></li><li><a href="FRP.Behavior.Keyboard.html">FRP.Behavior.Keyboard</a></li><li><a href="FRP.Behavior.Mouse.html">FRP.Behavior.Mouse</a></li><li><a href="FRP.Behavior.Time.html">FRP.Behavior.Time</a></li><li><a href="FRP.Event.html">FRP.Event</a></li><li><a href="FRP.Event.AnimationFrame.html">FRP.Event.AnimationFrame</a></li><li><a href="FRP.Event.Class.html">FRP.Event.Class</a></li><li><a href="FRP.Event.Keyboard.html">FRP.Event.Keyboard</a></li><li><a href="FRP.Event.Mouse.html">FRP.Event.Mouse</a></li><li><a href="FRP.Event.Time.html">FRP.Event.Time</a></li><li><a href="FRP.Event.VBus.html">FRP.Event.VBus</a></li><li><a href="Foreign.html">Foreign</a></li><li><a href="Foreign.Index.html">Foreign.Index</a></li><li><a href="Foreign.Keys.html">Foreign.Keys</a></li><li><a href="Foreign.Object.html">Foreign.Object</a></li><li><a href="Foreign.Object.Gen.html">Foreign.Object.Gen</a></li><li><a href="Foreign.Object.ST.html">Foreign.Object.ST</a></li><li><a href="Foreign.Object.ST.Unsafe.html">Foreign.Object.ST.Unsafe</a></li><li><a href="Foreign.Object.Unsafe.html">Foreign.Object.Unsafe</a></li><li><a href="Heterogeneous.Folding.html">Heterogeneous.Folding</a></li><li><a href="Heterogeneous.Mapping.html">Heterogeneous.Mapping</a></li><li><a href="Node.Buffer.html">Node.Buffer</a></li><li><a href="Node.Buffer.Class.html">Node.Buffer.Class</a></li><li><a href="Node.Buffer.Constants.html">Node.Buffer.Constants</a></li><li><a href="Node.Buffer.Immutable.html">Node.Buffer.Immutable</a></li><li><a href="Node.Buffer.ST.html">Node.Buffer.ST</a></li><li><a href="Node.Buffer.Types.html">Node.Buffer.Types</a></li><li><a href="Node.Encoding.html">Node.Encoding</a></li><li><a href="Node.EventEmitter.html">Node.EventEmitter</a></li><li><a href="Node.EventEmitter.UtilTypes.html">Node.EventEmitter.UtilTypes</a></li><li><a href="Node.FS.html">Node.FS</a></li><li><a href="Node.FS.Aff.html">Node.FS.Aff</a></li><li><a href="Node.FS.Async.html">Node.FS.Async</a></li><li><a href="Node.FS.Constants.html">Node.FS.Constants</a></li><li><a href="Node.FS.Perms.html">Node.FS.Perms</a></li><li><a href="Node.FS.Stats.html">Node.FS.Stats</a></li><li><a href="Node.FS.Stream.html">Node.FS.Stream</a></li><li><a href="Node.FS.Sync.html">Node.FS.Sync</a></li><li><a href="Node.Path.html">Node.Path</a></li><li><a href="Node.Platform.html">Node.Platform</a></li><li><a href="Node.Process.html">Node.Process</a></li><li><a href="Node.Stream.html">Node.Stream</a></li><li><a href="Node.Stream.Aff.html">Node.Stream.Aff</a></li><li><a href="Node.Symbol.html">Node.Symbol</a></li><li><a href="Partial.html">Partial</a></li><li><a href="Partial.Unsafe.html">Partial.Unsafe</a></li><li><a href="Performance.Minibench.html">Performance.Minibench</a></li><li><a href="Pipes.html">Pipes</a></li><li><a href="Pipes.Core.html">Pipes.Core</a></li><li><a href="Pipes.Internal.html">Pipes.Internal</a></li><li><a href="Pipes.ListT.html">Pipes.ListT</a></li><li><a href="Pipes.Prelude.html">Pipes.Prelude</a></li><li><a href="Prelude.html">Prelude</a></li><li><a href="Prim.html">Prim</a></li><li><a href="Prim.Boolean.html">Prim.Boolean</a></li><li><a href="Prim.Coerce.html">Prim.Coerce</a></li><li><a href="Prim.Int.html">Prim.Int</a></li><li><a href="Prim.Ordering.html">Prim.Ordering</a></li><li><a href="Prim.Row.html">Prim.Row</a></li><li><a href="Prim.RowList.html">Prim.RowList</a></li><li><a href="Prim.Symbol.html">Prim.Symbol</a></li><li><a href="Prim.TypeError.html">Prim.TypeError</a></li><li><a href="Record.html">Record</a></li><li><a href="Record.Builder.html">Record.Builder</a></li><li><a href="Record.Studio.html">Record.Studio</a></li><li><a href="Record.Studio.Keys.html">Record.Studio.Keys</a></li><li><a href="Record.Studio.Map.html">Record.Studio.Map</a></li><li><a href="Record.Studio.MapKind.html">Record.Studio.MapKind</a></li><li><a href="Record.Studio.MapUniform.html">Record.Studio.MapUniform</a></li><li><a href="Record.Studio.Merge.html">Record.Studio.Merge</a></li><li><a href="Record.Studio.SameKeys.html">Record.Studio.SameKeys</a></li><li><a href="Record.Studio.Sequence.html">Record.Studio.Sequence</a></li><li><a href="Record.Studio.Shrink.html">Record.Studio.Shrink</a></li><li><a href="Record.Studio.SingletonRecord.html">Record.Studio.SingletonRecord</a></li><li><a href="Record.Unsafe.html">Record.Unsafe</a></li><li><a href="Record.Unsafe.Union.html">Record.Unsafe.Union</a></li><li><a href="Safe.Coerce.html">Safe.Coerce</a></li><li><a href="Spago.Generated.BuildInfo.html">Spago.Generated.BuildInfo</a></li><li><a href="Test.Spec.html">Test.Spec</a></li><li><a href="Test.Spec.Assertions.html">Test.Spec.Assertions</a></li><li><a href="Test.Spec.Assertions.String.html">Test.Spec.Assertions.String</a></li><li><a href="Test.Spec.Config.html">Test.Spec.Config</a></li><li><a href="Test.Spec.Console.html">Test.Spec.Console</a></li><li><a href="Test.Spec.Reporter.html">Test.Spec.Reporter</a></li><li><a href="Test.Spec.Reporter.Base.html">Test.Spec.Reporter.Base</a></li><li><a href="Test.Spec.Reporter.Console.html">Test.Spec.Reporter.Console</a></li><li><a href="Test.Spec.Reporter.Dot.html">Test.Spec.Reporter.Dot</a></li><li><a href="Test.Spec.Reporter.Spec.html">Test.Spec.Reporter.Spec</a></li><li><a href="Test.Spec.Reporter.Tap.html">Test.Spec.Reporter.Tap</a></li><li><a href="Test.Spec.Reporter.TeamCity.html">Test.Spec.Reporter.TeamCity</a></li><li><a href="Test.Spec.Result.html">Test.Spec.Result</a></li><li><a href="Test.Spec.Runner.html">Test.Spec.Runner</a></li><li><a href="Test.Spec.Runner.Event.html">Test.Spec.Runner.Event</a></li><li><a href="Test.Spec.Speed.html">Test.Spec.Speed</a></li><li><a href="Test.Spec.Style.html">Test.Spec.Style</a></li><li><a href="Test.Spec.Summary.html">Test.Spec.Summary</a></li><li><a href="Test.Spec.Tree.html">Test.Spec.Tree</a></li><li><a href="Type.Data.Boolean.html">Type.Data.Boolean</a></li><li><a href="Type.Data.Ordering.html">Type.Data.Ordering</a></li><li><a href="Type.Data.Symbol.html">Type.Data.Symbol</a></li><li><a href="Type.Equality.html">Type.Equality</a></li><li><a href="Type.Function.html">Type.Function</a></li><li><a href="Type.Prelude.html">Type.Prelude</a></li><li><a href="Type.Proxy.html">Type.Proxy</a></li><li><a href="Type.Row.html">Type.Row</a></li><li><a href="Type.Row.Homogeneous.html">Type.Row.Homogeneous</a></li><li><a href="Type.RowList.html">Type.RowList</a></li><li><a href="Uncurried.RWSE.html">Uncurried.RWSE</a></li><li><a href="Uncurried.RWSET.html">Uncurried.RWSET</a></li><li><a href="Uncurried.Reader.html">Uncurried.Reader</a></li><li><a href="Uncurried.ReaderT.html">Uncurried.ReaderT</a></li><li><a href="Uncurried.State.html">Uncurried.State</a></li><li><a href="Uncurried.StateT.html">Uncurried.StateT</a></li><li><a href="Uncurried.Writer.html">Uncurried.Writer</a></li><li><a href="Uncurried.WriterT.html">Uncurried.WriterT</a></li><li><a href="Unsafe.Coerce.html">Unsafe.Coerce</a></li><li><a href="Unsafe.Reference.html">Unsafe.Reference</a></li><li><a href="Web.DOM.html">Web.DOM</a></li><li><a href="Web.DOM.CharacterData.html">Web.DOM.CharacterData</a></li><li><a href="Web.DOM.ChildNode.html">Web.DOM.ChildNode</a></li><li><a href="Web.DOM.Comment.html">Web.DOM.Comment</a></li><li><a href="Web.DOM.DOMTokenList.html">Web.DOM.DOMTokenList</a></li><li><a href="Web.DOM.Document.html">Web.DOM.Document</a></li><li><a href="Web.DOM.DocumentFragment.html">Web.DOM.DocumentFragment</a></li><li><a href="Web.DOM.DocumentType.html">Web.DOM.DocumentType</a></li><li><a href="Web.DOM.Element.html">Web.DOM.Element</a></li><li><a href="Web.DOM.HTMLCollection.html">Web.DOM.HTMLCollection</a></li><li><a href="Web.DOM.Internal.Types.html">Web.DOM.Internal.Types</a></li><li><a href="Web.DOM.MutationObserver.html">Web.DOM.MutationObserver</a></li><li><a href="Web.DOM.MutationRecord.html">Web.DOM.MutationRecord</a></li><li><a href="Web.DOM.Node.html">Web.DOM.Node</a></li><li><a href="Web.DOM.NodeList.html">Web.DOM.NodeList</a></li><li><a href="Web.DOM.NodeType.html">Web.DOM.NodeType</a></li><li><a href="Web.DOM.NonDocumentTypeChildNode.html">Web.DOM.NonDocumentTypeChildNode</a></li><li><a href="Web.DOM.NonElementParentNode.html">Web.DOM.NonElementParentNode</a></li><li><a href="Web.DOM.ParentNode.html">Web.DOM.ParentNode</a></li><li><a href="Web.DOM.ProcessingInstruction.html">Web.DOM.ProcessingInstruction</a></li><li><a href="Web.DOM.ShadowRoot.html">Web.DOM.ShadowRoot</a></li><li><a href="Web.DOM.Text.html">Web.DOM.Text</a></li><li><a href="Web.Event.CustomEvent.html">Web.Event.CustomEvent</a></li><li><a href="Web.Event.Event.html">Web.Event.Event</a></li><li><a href="Web.Event.EventPhase.html">Web.Event.EventPhase</a></li><li><a href="Web.Event.EventTarget.html">Web.Event.EventTarget</a></li><li><a href="Web.Event.Internal.Types.html">Web.Event.Internal.Types</a></li><li><a href="Web.File.Blob.html">Web.File.Blob</a></li><li><a href="Web.File.File.html">Web.File.File</a></li><li><a href="Web.File.FileList.html">Web.File.FileList</a></li><li><a href="Web.File.FileReader.html">Web.File.FileReader</a></li><li><a href="Web.File.FileReader.ReadyState.html">Web.File.FileReader.ReadyState</a></li><li><a href="Web.File.Url.html">Web.File.Url</a></li><li><a href="Web.HTML.html">Web.HTML</a></li><li><a href="Web.HTML.Common.html">Web.HTML.Common</a></li><li><a href="Web.HTML.Event.BeforeUnloadEvent.html">Web.HTML.Event.BeforeUnloadEvent</a></li><li><a href="Web.HTML.Event.BeforeUnloadEvent.EventTypes.html">Web.HTML.Event.BeforeUnloadEvent.EventTypes</a></li><li><a href="Web.HTML.Event.DataTransfer.html">Web.HTML.Event.DataTransfer</a></li><li><a href="Web.HTML.Event.DataTransfer.DataTransferItem.html">Web.HTML.Event.DataTransfer.DataTransferItem</a></li><li><a href="Web.HTML.Event.DragEvent.html">Web.HTML.Event.DragEvent</a></li><li><a href="Web.HTML.Event.DragEvent.EventTypes.html">Web.HTML.Event.DragEvent.EventTypes</a></li><li><a href="Web.HTML.Event.ErrorEvent.html">Web.HTML.Event.ErrorEvent</a></li><li><a href="Web.HTML.Event.EventTypes.html">Web.HTML.Event.EventTypes</a></li><li><a href="Web.HTML.Event.HashChangeEvent.html">Web.HTML.Event.HashChangeEvent</a></li><li><a href="Web.HTML.Event.HashChangeEvent.EventTypes.html">Web.HTML.Event.HashChangeEvent.EventTypes</a></li><li><a href="Web.HTML.Event.PageTransitionEvent.html">Web.HTML.Event.PageTransitionEvent</a></li><li><a href="Web.HTML.Event.PageTransitionEvent.EventTypes.html">Web.HTML.Event.PageTransitionEvent.EventTypes</a></li><li><a href="Web.HTML.Event.PopStateEvent.html">Web.HTML.Event.PopStateEvent</a></li><li><a href="Web.HTML.Event.PopStateEvent.EventTypes.html">Web.HTML.Event.PopStateEvent.EventTypes</a></li><li><a href="Web.HTML.Event.TrackEvent.html">Web.HTML.Event.TrackEvent</a></li><li><a href="Web.HTML.Event.TrackEvent.EventTypes.html">Web.HTML.Event.TrackEvent.EventTypes</a></li><li><a href="Web.HTML.HTMLAnchorElement.html">Web.HTML.HTMLAnchorElement</a></li><li><a href="Web.HTML.HTMLAreaElement.html">Web.HTML.HTMLAreaElement</a></li><li><a href="Web.HTML.HTMLAudioElement.html">Web.HTML.HTMLAudioElement</a></li><li><a href="Web.HTML.HTMLBRElement.html">Web.HTML.HTMLBRElement</a></li><li><a href="Web.HTML.HTMLBaseElement.html">Web.HTML.HTMLBaseElement</a></li><li><a href="Web.HTML.HTMLBodyElement.html">Web.HTML.HTMLBodyElement</a></li><li><a href="Web.HTML.HTMLButtonElement.html">Web.HTML.HTMLButtonElement</a></li><li><a href="Web.HTML.HTMLCanvasElement.html">Web.HTML.HTMLCanvasElement</a></li><li><a href="Web.HTML.HTMLDListElement.html">Web.HTML.HTMLDListElement</a></li><li><a href="Web.HTML.HTMLDataElement.html">Web.HTML.HTMLDataElement</a></li><li><a href="Web.HTML.HTMLDataListElement.html">Web.HTML.HTMLDataListElement</a></li><li><a href="Web.HTML.HTMLDivElement.html">Web.HTML.HTMLDivElement</a></li><li><a href="Web.HTML.HTMLDocument.html">Web.HTML.HTMLDocument</a></li><li><a href="Web.HTML.HTMLDocument.ReadyState.html">Web.HTML.HTMLDocument.ReadyState</a></li><li><a href="Web.HTML.HTMLDocument.VisibilityState.html">Web.HTML.HTMLDocument.VisibilityState</a></li><li><a href="Web.HTML.HTMLElement.html">Web.HTML.HTMLElement</a></li><li><a href="Web.HTML.HTMLEmbedElement.html">Web.HTML.HTMLEmbedElement</a></li><li><a href="Web.HTML.HTMLFieldSetElement.html">Web.HTML.HTMLFieldSetElement</a></li><li><a href="Web.HTML.HTMLFormElement.html">Web.HTML.HTMLFormElement</a></li><li><a href="Web.HTML.HTMLHRElement.html">Web.HTML.HTMLHRElement</a></li><li><a href="Web.HTML.HTMLHeadElement.html">Web.HTML.HTMLHeadElement</a></li><li><a href="Web.HTML.HTMLHeadingElement.html">Web.HTML.HTMLHeadingElement</a></li><li><a href="Web.HTML.HTMLHtmlElement.html">Web.HTML.HTMLHtmlElement</a></li><li><a href="Web.HTML.HTMLHyperlinkElementUtils.html">Web.HTML.HTMLHyperlinkElementUtils</a></li><li><a href="Web.HTML.HTMLIFrameElement.html">Web.HTML.HTMLIFrameElement</a></li><li><a href="Web.HTML.HTMLImageElement.html">Web.HTML.HTMLImageElement</a></li><li><a href="Web.HTML.HTMLImageElement.CORSMode.html">Web.HTML.HTMLImageElement.CORSMode</a></li><li><a href="Web.HTML.HTMLImageElement.DecodingHint.html">Web.HTML.HTMLImageElement.DecodingHint</a></li><li><a href="Web.HTML.HTMLImageElement.Laziness.html">Web.HTML.HTMLImageElement.Laziness</a></li><li><a href="Web.HTML.HTMLInputElement.html">Web.HTML.HTMLInputElement</a></li><li><a href="Web.HTML.HTMLKeygenElement.html">Web.HTML.HTMLKeygenElement</a></li><li><a href="Web.HTML.HTMLLIElement.html">Web.HTML.HTMLLIElement</a></li><li><a href="Web.HTML.HTMLLabelElement.html">Web.HTML.HTMLLabelElement</a></li><li><a href="Web.HTML.HTMLLegendElement.html">Web.HTML.HTMLLegendElement</a></li><li><a href="Web.HTML.HTMLLinkElement.html">Web.HTML.HTMLLinkElement</a></li><li><a href="Web.HTML.HTMLMapElement.html">Web.HTML.HTMLMapElement</a></li><li><a href="Web.HTML.HTMLMediaElement.html">Web.HTML.HTMLMediaElement</a></li><li><a href="Web.HTML.HTMLMediaElement.CanPlayType.html">Web.HTML.HTMLMediaElement.CanPlayType</a></li><li><a href="Web.HTML.HTMLMediaElement.NetworkState.html">Web.HTML.HTMLMediaElement.NetworkState</a></li><li><a href="Web.HTML.HTMLMediaElement.ReadyState.html">Web.HTML.HTMLMediaElement.ReadyState</a></li><li><a href="Web.HTML.HTMLMetaElement.html">Web.HTML.HTMLMetaElement</a></li><li><a href="Web.HTML.HTMLMeterElement.html">Web.HTML.HTMLMeterElement</a></li><li><a href="Web.HTML.HTMLModElement.html">Web.HTML.HTMLModElement</a></li><li><a href="Web.HTML.HTMLOListElement.html">Web.HTML.HTMLOListElement</a></li><li><a href="Web.HTML.HTMLObjectElement.html">Web.HTML.HTMLObjectElement</a></li><li><a href="Web.HTML.HTMLOptGroupElement.html">Web.HTML.HTMLOptGroupElement</a></li><li><a href="Web.HTML.HTMLOptionElement.html">Web.HTML.HTMLOptionElement</a></li><li><a href="Web.HTML.HTMLOutputElement.html">Web.HTML.HTMLOutputElement</a></li><li><a href="Web.HTML.HTMLParagraphElement.html">Web.HTML.HTMLParagraphElement</a></li><li><a href="Web.HTML.HTMLParamElement.html">Web.HTML.HTMLParamElement</a></li><li><a href="Web.HTML.HTMLPreElement.html">Web.HTML.HTMLPreElement</a></li><li><a href="Web.HTML.HTMLProgressElement.html">Web.HTML.HTMLProgressElement</a></li><li><a href="Web.HTML.HTMLQuoteElement.html">Web.HTML.HTMLQuoteElement</a></li><li><a href="Web.HTML.HTMLScriptElement.html">Web.HTML.HTMLScriptElement</a></li><li><a href="Web.HTML.HTMLSelectElement.html">Web.HTML.HTMLSelectElement</a></li><li><a href="Web.HTML.HTMLSourceElement.html">Web.HTML.HTMLSourceElement</a></li><li><a href="Web.HTML.HTMLSpanElement.html">Web.HTML.HTMLSpanElement</a></li><li><a href="Web.HTML.HTMLStyleElement.html">Web.HTML.HTMLStyleElement</a></li><li><a href="Web.HTML.HTMLTableCaptionElement.html">Web.HTML.HTMLTableCaptionElement</a></li><li><a href="Web.HTML.HTMLTableCellElement.html">Web.HTML.HTMLTableCellElement</a></li><li><a href="Web.HTML.HTMLTableColElement.html">Web.HTML.HTMLTableColElement</a></li><li><a href="Web.HTML.HTMLTableDataCellElement.html">Web.HTML.HTMLTableDataCellElement</a></li><li><a href="Web.HTML.HTMLTableElement.html">Web.HTML.HTMLTableElement</a></li><li><a href="Web.HTML.HTMLTableHeaderCellElement.html">Web.HTML.HTMLTableHeaderCellElement</a></li><li><a href="Web.HTML.HTMLTableRowElement.html">Web.HTML.HTMLTableRowElement</a></li><li><a href="Web.HTML.HTMLTableSectionElement.html">Web.HTML.HTMLTableSectionElement</a></li><li><a href="Web.HTML.HTMLTemplateElement.html">Web.HTML.HTMLTemplateElement</a></li><li><a href="Web.HTML.HTMLTextAreaElement.html">Web.HTML.HTMLTextAreaElement</a></li><li><a href="Web.HTML.HTMLTimeElement.html">Web.HTML.HTMLTimeElement</a></li><li><a href="Web.HTML.HTMLTitleElement.html">Web.HTML.HTMLTitleElement</a></li><li><a href="Web.HTML.HTMLTrackElement.html">Web.HTML.HTMLTrackElement</a></li><li><a href="Web.HTML.HTMLTrackElement.ReadyState.html">Web.HTML.HTMLTrackElement.ReadyState</a></li><li><a href="Web.HTML.HTMLUListElement.html">Web.HTML.HTMLUListElement</a></li><li><a href="Web.HTML.HTMLVideoElement.html">Web.HTML.HTMLVideoElement</a></li><li><a href="Web.HTML.History.html">Web.HTML.History</a></li><li><a href="Web.HTML.Location.html">Web.HTML.Location</a></li><li><a href="Web.HTML.Navigator.html">Web.HTML.Navigator</a></li><li><a href="Web.HTML.SelectionMode.html">Web.HTML.SelectionMode</a></li><li><a href="Web.HTML.ValidityState.html">Web.HTML.ValidityState</a></li><li><a href="Web.HTML.Window.html">Web.HTML.Window</a></li><li><a href="Web.Internal.FFI.html">Web.Internal.FFI</a></li><li><a href="Web.Storage.Event.StorageEvent.html">Web.Storage.Event.StorageEvent</a></li><li><a href="Web.Storage.Storage.html">Web.Storage.Storage</a></li><li><a href="Web.UIEvent.CompositionEvent.html">Web.UIEvent.CompositionEvent</a></li><li><a href="Web.UIEvent.CompositionEvent.EventTypes.html">Web.UIEvent.CompositionEvent.EventTypes</a></li><li><a href="Web.UIEvent.EventTypes.html">Web.UIEvent.EventTypes</a></li><li><a href="Web.UIEvent.FocusEvent.html">Web.UIEvent.FocusEvent</a></li><li><a href="Web.UIEvent.FocusEvent.EventTypes.html">Web.UIEvent.FocusEvent.EventTypes</a></li><li><a href="Web.UIEvent.InputEvent.html">Web.UIEvent.InputEvent</a></li><li><a href="Web.UIEvent.InputEvent.EventTypes.html">Web.UIEvent.InputEvent.EventTypes</a></li><li><a href="Web.UIEvent.InputEvent.InputType.html">Web.UIEvent.InputEvent.InputType</a></li><li><a href="Web.UIEvent.KeyboardEvent.html">Web.UIEvent.KeyboardEvent</a></li><li><a href="Web.UIEvent.KeyboardEvent.EventTypes.html">Web.UIEvent.KeyboardEvent.EventTypes</a></li><li><a href="Web.UIEvent.MouseEvent.html">Web.UIEvent.MouseEvent</a></li><li><a href="Web.UIEvent.MouseEvent.EventTypes.html">Web.UIEvent.MouseEvent.EventTypes</a></li><li><a href="Web.UIEvent.UIEvent.html">Web.UIEvent.UIEvent</a></li><li><a href="Web.UIEvent.WheelEvent.html">Web.UIEvent.WheelEvent</a></li><li><a href="Web.UIEvent.WheelEvent.EventTypes.html">Web.UIEvent.WheelEvent.EventTypes</a></li></ul></div></main></div><div class="footer clearfix"><p>Generated by purs 0.15.15 [development build; commit: UNKNOWN]</p></div><!-- Docs search index. --><script type="text/javascript" src="./docs-search-app.js"></script><script type="text/javascript">window.DocsSearchTypeIndex = {};window.DocsSearchIndex = {};</script></body></html>
generated-docs/html/Bolson.Control.htmldeletedโ1356
@@ -1,1356 +0,0 @@
1โ<!DOCTYPE HTML>
2โ<html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1"><title>PureScript: Bolson.Control</title><link href="https://fonts.googleapis.com/css?family=Roboto+Mono|Roboto:300,400,400i,700,700i" type="text/css" rel="stylesheet"><style type="text/css">/*! normalize.css v3.0.2 | MIT License | git.io/normalize */
3โ
4โ/**
5โ * 1. Set default font family to sans-serif.
6โ * 2. Prevent iOS text size adjust after orientation change, without disabling
7โ * user zoom.
8โ */
9โ
10โhtml {
11โ font-family: sans-serif; /* 1 */
12โ -ms-text-size-adjust: 100%; /* 2 */
13โ -webkit-text-size-adjust: 100%; /* 2 */
14โ}
15โ
16โ/**
17โ * Remove default margin.
18โ */
19โ
20โbody {
21โ margin: 0;
22โ}
23โ
24โ/* HTML5 display definitions
25โ ========================================================================== */
26โ
27โ/**
28โ * Correct `block` display not defined for any HTML5 element in IE 8/9.
29โ * Correct `block` display not defined for `details` or `summary` in IE 10/11
30โ * and Firefox.
31โ * Correct `block` display not defined for `main` in IE 11.
32โ */
33โ
34โarticle,
35โaside,
36โdetails,
37โfigcaption,
38โfigure,
39โfooter,
40โheader,
41โhgroup,
42โmain,
43โmenu,
44โnav,
45โsection,
46โsummary {
47โ display: block;
48โ}
49โ
50โ/**
51โ * 1. Correct `inline-block` display not defined in IE 8/9.
52โ * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
53โ */
54โ
55โaudio,
56โcanvas,
57โprogress,
58โvideo {
59โ display: inline-block; /* 1 */
60โ vertical-align: baseline; /* 2 */
61โ}
62โ
63โ/**
64โ * Prevent modern browsers from displaying `audio` without controls.
65โ * Remove excess height in iOS 5 devices.
66โ */
67โ
68โaudio:not([controls]) {
69โ display: none;
70โ height: 0;
71โ}
72โ
73โ/**
74โ * Address `[hidden]` styling not present in IE 8/9/10.
75โ * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22.
76โ */
77โ
78โ[hidden],
79โtemplate {
80โ display: none;
81โ}
82โ
83โ/* Links
84โ ========================================================================== */
85โ
86โ/**
87โ * Remove the gray background color from active links in IE 10.
88โ */
89โ
90โa {
91โ background-color: transparent;
92โ}
93โ
94โ/**
95โ * Improve readability when focused and also mouse hovered in all browsers.
96โ */
97โ
98โa:active,
99โa:hover {
100โ outline: 0;
101โ}
102โ
103โ/* Text-level semantics
104โ ========================================================================== */
105โ
106โ/**
107โ * Address styling not present in IE 8/9/10/11, Safari, and Chrome.
108โ */
109โ
110โabbr[title] {
111โ border-bottom: 1px dotted;
112โ}
113โ
114โ/**
115โ * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
116โ */
117โ
118โb,
119โstrong {
120โ font-weight: bold;
121โ}
122โ
123โ/**
124โ * Address styling not present in Safari and Chrome.
125โ */
126โ
127โdfn {
128โ font-style: italic;
129โ}
130โ
131โ/**
132โ * Address variable `h1` font-size and margin within `section` and `article`
133โ * contexts in Firefox 4+, Safari, and Chrome.
134โ */
135โ
136โh1 {
137โ font-size: 2em;
138โ margin: 0.67em 0;
139โ}
140โ
141โ/**
142โ * Address styling not present in IE 8/9.
143โ */
144โ
145โmark {
146โ background: #ff0;
147โ color: #000;
148โ}
149โ
150โ/**
151โ * Address inconsistent and variable font size in all browsers.
152โ */
153โ
154โsmall {
155โ font-size: 80%;
156โ}
157โ
158โ/**
159โ * Prevent `sub` and `sup` affecting `line-height` in all browsers.
160โ */
161โ
162โsub,
163โsup {
164โ font-size: 75%;
165โ line-height: 0;
166โ position: relative;
167โ vertical-align: baseline;
168โ}
169โ
170โsup {
171โ top: -0.5em;
172โ}
173โ
174โsub {
175โ bottom: -0.25em;
176โ}
177โ
178โ/* Embedded content
179โ ========================================================================== */
180โ
181โ/**
182โ * Remove border when inside `a` element in IE 8/9/10.
183โ */
184โ
185โimg {
186โ border: 0;
187โ}
188โ
189โ/**
190โ * Correct overflow not hidden in IE 9/10/11.
191โ */
192โ
193โsvg:not(:root) {
194โ overflow: hidden;
195โ}
196โ
197โ/* Grouping content
198โ ========================================================================== */
199โ
200โ/**
201โ * Address margin not present in IE 8/9 and Safari.
202โ */
203โ
204โfigure {
205โ margin: 1em 40px;
206โ}
207โ
208โ/**
209โ * Address differences between Firefox and other browsers.
210โ */
211โ
212โhr {
213โ -moz-box-sizing: content-box;
214โ box-sizing: content-box;
215โ height: 0;
216โ}
217โ
218โ/**
219โ * Contain overflow in all browsers.
220โ */
221โ
222โpre {
223โ overflow: auto;
224โ}
225โ
226โ/**
227โ * Address odd `em`-unit font size rendering in all browsers.
228โ */
229โ
230โcode,
231โkbd,
232โpre,
233โsamp {
234โ font-family: monospace, monospace;
235โ font-size: 1em;
236โ}
237โ
238โ/* Forms
239โ ========================================================================== */
240โ
241โ/**
242โ * Known limitation: by default, Chrome and Safari on OS X allow very limited
243โ * styling of `select`, unless a `border` property is set.
244โ */
245โ
246โ/**
247โ * 1. Correct color not being inherited.
248โ * Known issue: affects color of disabled elements.
249โ * 2. Correct font properties not being inherited.
250โ * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
251โ */
252โ
253โbutton,
254โinput,
255โoptgroup,
256โselect,
257โtextarea {
258โ color: inherit; /* 1 */
259โ font: inherit; /* 2 */
260โ margin: 0; /* 3 */
261โ}
262โ
263โ/**
264โ * Address `overflow` set to `hidden` in IE 8/9/10/11.
265โ */
266โ
267โbutton {
268โ overflow: visible;
269โ}
270โ
271โ/**
272โ * Address inconsistent `text-transform` inheritance for `button` and `select`.
273โ * All other form control elements do not inherit `text-transform` values.
274โ * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
275โ * Correct `select` style inheritance in Firefox.
276โ */
277โ
278โbutton,
279โselect {
280โ text-transform: none;
281โ}
282โ
283โ/**
284โ * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
285โ * and `video` controls.
286โ * 2. Correct inability to style clickable `input` types in iOS.
287โ * 3. Improve usability and consistency of cursor style between image-type
288โ * `input` and others.
289โ */
290โ
291โbutton,
292โhtml input[type="button"], /* 1 */
293โinput[type="reset"],
294โinput[type="submit"] {
295โ -webkit-appearance: button; /* 2 */
296โ cursor: pointer; /* 3 */
297โ}
298โ
299โ/**
300โ * Re-set default cursor for disabled elements.
301โ */
302โ
303โbutton[disabled],
304โhtml input[disabled] {
305โ cursor: default;
306โ}
307โ
308โ/**
309โ * Remove inner padding and border in Firefox 4+.
310โ */
311โ
312โbutton::-moz-focus-inner,
313โinput::-moz-focus-inner {
314โ border: 0;
315โ padding: 0;
316โ}
317โ
318โ/**
319โ * Address Firefox 4+ setting `line-height` on `input` using `!important` in
320โ * the UA stylesheet.
321โ */
322โ
323โinput {
324โ line-height: normal;
325โ}
326โ
327โ/**
328โ * It's recommended that you don't attempt to style these elements.
329โ * Firefox's implementation doesn't respect box-sizing, padding, or width.
330โ *
331โ * 1. Address box sizing set to `content-box` in IE 8/9/10.
332โ * 2. Remove excess padding in IE 8/9/10.
333โ */
334โ
335โinput[type="checkbox"],
336โinput[type="radio"] {
337โ box-sizing: border-box; /* 1 */
338โ padding: 0; /* 2 */
339โ}
340โ
341โ/**
342โ * Fix the cursor style for Chrome's increment/decrement buttons. For certain
343โ * `font-size` values of the `input`, it causes the cursor style of the
344โ * decrement button to change from `default` to `text`.
345โ */
346โ
347โinput[type="number"]::-webkit-inner-spin-button,
348โinput[type="number"]::-webkit-outer-spin-button {
349โ height: auto;
350โ}
351โ
352โ/**
353โ * 1. Address `appearance` set to `searchfield` in Safari and Chrome.
354โ * 2. Address `box-sizing` set to `border-box` in Safari and Chrome
355โ * (include `-moz` to future-proof).
356โ */
357โ
358โinput[type="search"] {
359โ -webkit-appearance: textfield; /* 1 */
360โ -moz-box-sizing: content-box;
361โ -webkit-box-sizing: content-box; /* 2 */
362โ box-sizing: content-box;
363โ}
364โ
365โ/**
366โ * Remove inner padding and search cancel button in Safari and Chrome on OS X.
367โ * Safari (but not Chrome) clips the cancel button when the search input has
368โ * padding (and `textfield` appearance).
369โ */
370โ
371โinput[type="search"]::-webkit-search-cancel-button,
372โinput[type="search"]::-webkit-search-decoration {
373โ -webkit-appearance: none;
374โ}
375โ
376โ/**
377โ * Define consistent border, margin, and padding.
378โ */
379โ
380โfieldset {
381โ border: 1px solid #c0c0c0;
382โ margin: 0 2px;
383โ padding: 0.35em 0.625em 0.75em;
384โ}
385โ
386โ/**
387โ * 1. Correct `color` not being inherited in IE 8/9/10/11.
388โ * 2. Remove padding so people aren't caught out if they zero out fieldsets.
389โ */
390โ
391โlegend {
392โ border: 0; /* 1 */
393โ padding: 0; /* 2 */
394โ}
395โ
396โ/**
397โ * Remove default vertical scrollbar in IE 8/9/10/11.
398โ */
399โ
400โtextarea {
401โ overflow: auto;
402โ}
403โ
404โ/**
405โ * Don't inherit the `font-weight` (applied by a rule above).
406โ * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
407โ */
408โ
409โoptgroup {
410โ font-weight: bold;
411โ}
412โ
413โ/* Tables
414โ ========================================================================== */
415โ
416โ/**
417โ * Remove most spacing between table cells.
418โ */
419โ
420โtable {
421โ border-collapse: collapse;
422โ border-spacing: 0;
423โ}
424โ
425โtd,
426โth {
427โ padding: 0;
428โ}
429โ</style><style type="text/css">/** ************************************************************************* *
430โ ** CSS for HTML docs (e.g. Pursuit)
431โ **
432โ ** STRUCTURE
433โ **
434โ ** This CSS file is structured into several sections, from general to
435โ ** specific, and (mostly) alphabetically within the sections.
436โ **
437โ ** Several global element styles are used. This is not encouraged and should
438โ ** be kept to a minimum. If you want to add new styles you'll most likely
439โ ** want to add a new CSS component. See the Components section for examples.
440โ **
441โ ** CSS components use three simple naming ideas from the BEM system:
442โ ** - Block: `.my-component`
443โ ** - Element: `.my-component__item`
444โ ** - Modifier: `.my-component.my-component--highlighted`
445โ **
446โ ** Example:
447โ ** <div .my-component>
448โ ** <div .my-component__item>
449โ ** <div .my-component__item>
450โ ** ...
451โ ** <div .my-component.my-component--highlighted>
452โ ** <div .my-component__item>
453โ ** <div .my-component__item>
454โ **
455โ ** Components can be nested.
456โ **
457โ **
458โ ** TYPOGRAPHY
459โ **
460โ ** Typographic choices for sizes, line-heights and margins are based on a
461โ ** musical major third scale (4:5). This gives us a way to find numbers
462โ ** and relationships between them that are perceived as harmonic.
463โ **
464โ ** To make use of this modular scale, use a ratio of the form
465โ ** (5/4)^n
466โ ** where n โ โค, -6 โค n โค 8.
467โ **
468โ ** LESS
469โ **
470โ ** This CSS is generated by less. To compile it:
471โ **
472โ ** npm install [-g] less
473โ ** lessc app/static/pursuit.less > app/static/pursuit.css
474โ **
475โ ** ************************************************************************* */
476โ/* Section: Variables
477โ * ========================================================================== */
478โ/* Section: Document Styles
479โ * ========================================================================== */
480โ:root {
481โ color-scheme: light dark;
482โ}
483โhtml {
484โ box-sizing: border-box;
485โ /* This overflow rule prevents everything from shifting slightly to the side
486โ when moving from a page which isn't large enough to generate a scrollbar
487โ to one that is. */
488โ overflow-y: scroll;
489โ}
490โ*,
491โ*::before,
492โ*::after {
493โ box-sizing: inherit;
494โ}
495โbody {
496โ background-color: #ffffff;
497โ color: #000000;
498โ font-family: "Roboto", sans-serif;
499โ font-size: 87.5%;
500โ line-height: 1.563;
501โ}
502โ@media (prefers-color-scheme: dark) {
503โ body {
504โ background-color: #141417;
505โ color: #dedede;
506โ }
507โ}
508โ@media (min-width: 38em) {
509โ body {
510โ font-size: 100%;
511โ }
512โ}
513โ/* Section: Utility Classes
514โ * ========================================================================== */
515โ.clear-floats {
516โ clear: both;
517โ}
518โ.clearfix::before,
519โ.clearfix::after {
520โ content: " ";
521โ display: table;
522โ}
523โ.clearfix::after {
524โ clear: both;
525โ}
526โ/* Content hidden like this will still be read by a screen reader */
527โ.hide-visually {
528โ position: absolute;
529โ left: -10000px;
530โ top: auto;
531โ width: 1px;
532โ height: 1px;
533โ overflow: hidden;
534โ}
535โ/* Section: Layout
536โ * ========================================================================== */
537โ.container {
538โ display: block;
539โ max-width: 66em;
540โ margin-left: auto;
541โ margin-right: auto;
542โ padding-left: 20px;
543โ padding-right: 20px;
544โ}
545โ.col {
546โ display: block;
547โ position: relative;
548โ width: 100%;
549โ}
550โ.col.col--main {
551โ margin-bottom: 3.08em;
552โ}
553โ.col.col--aside {
554โ margin-bottom: 2.44em;
555โ}
556โ@media (min-width: 52em) {
557โ .container {
558โ padding-left: 30px;
559โ padding-right: 30px;
560โ }
561โ .col.col--main {
562โ float: left;
563โ width: 63.655%;
564โ /* 66.6โฆ% - 30px */
565โ }
566โ .col.col--aside {
567โ float: right;
568โ font-size: 87.5%;
569โ width: 33.333333%;
570โ }
571โ}
572โ@media (min-width: 66em) {
573โ .col.col--aside {
574โ font-size: inherit;
575โ }
576โ}
577โ/* Footer
578โ * Based on http://www.lwis.net/journal/2008/02/08/pure-css-sticky-footer/
579โ * Except we don't support IE6
580โ * -------------------------------------------------------------------------- */
581โhtml,
582โbody {
583โ height: 100%;
584โ}
585โ.everything-except-footer {
586โ min-height: 100%;
587โ padding-bottom: 3em;
588โ}
589โ.footer {
590โ position: relative;
591โ height: 3em;
592โ margin-top: -3em;
593โ width: 100%;
594โ text-align: center;
595โ background-color: #1d222d;
596โ color: #f0f0f0;
597โ}
598โ@media (prefers-color-scheme: dark) {
599โ .footer {
600โ background-color: #1d222d;
601โ color: #f0f0f0;
602โ }
603โ}
604โ.footer * {
605โ margin-bottom: 0;
606โ}
607โ/* Section: Element Styles
608โ *
609โ * Have as few of these as possible and keep them general, because they will
610โ * influence every component hereafter.
611โ * ========================================================================== */
612โ:target {
613โ background-color: #f1f5f9;
614โ}
615โ@media (prefers-color-scheme: dark) {
616โ :target {
617โ background-color: #232327;
618โ }
619โ}
620โa,
621โa:visited {
622โ color: #c4953a;
623โ text-decoration: none;
624โ font-weight: bold;
625โ}
626โ@media (prefers-color-scheme: dark) {
627โ a,
628โ a:visited {
629โ color: #d8ac55;
630โ }
631โ}
632โa:hover {
633โ color: #7b5904;
634โ text-decoration: none;
635โ}
636โ@media (prefers-color-scheme: dark) {
637โ a:hover {
638โ color: #f0dcab;
639โ }
640โ}
641โcode,
642โpre {
643โ background-color: #f1f5f9;
644โ border-radius: 3px;
645โ color: #194a5b;
646โ font-family: "Roboto Mono", monospace;
647โ font-size: 87.5%;
648โ}
649โ@media (prefers-color-scheme: dark) {
650โ code,
651โ pre {
652โ background-color: #232327;
653โ color: #c1d3da;
654โ }
655โ}
656โ:target code,
657โ:target pre {
658โ background-color: #dfe8f1;
659โ}
660โ@media (prefers-color-scheme: dark) {
661โ :target code,
662โ :target pre {
663โ background-color: #2f2f34;
664โ }
665โ}
666โcode {
667โ padding: 0.2em 0;
668โ margin: 0;
669โ white-space: pre-wrap;
670โ word-wrap: break-word;
671โ}
672โcode::before,
673โcode::after {
674โ letter-spacing: -0.2em;
675โ content: "\00a0";
676โ}
677โa > code {
678โ font-weight: normal;
679โ}
680โa > code::before {
681โ content: "๐ก";
682โ letter-spacing: 0.33em;
683โ}
684โa:hover > code {
685โ color: #c4953a;
686โ}
687โ@media (prefers-color-scheme: dark) {
688โ a:hover > code {
689โ color: #d8ac55;
690โ }
691โ}
692โpre {
693โ margin-top: 0;
694โ margin-bottom: 0;
695โ padding: 1em 1.25rem;
696โ /* Using rem here to align with lists etc. */
697โ overflow: auto;
698โ white-space: pre;
699โ word-wrap: normal;
700โ}
701โpre code {
702โ background-color: transparent;
703โ border: 0;
704โ font-size: 100%;
705โ max-width: auto;
706โ padding: 0;
707โ margin: 0;
708โ overflow: visible;
709โ line-height: inherit;
710โ white-space: pre;
711โ word-break: normal;
712โ word-wrap: normal;
713โ}
714โpre code::before,
715โpre code::after {
716โ content: normal;
717โ}
718โh1 {
719โ font-size: 3.052em;
720โ font-weight: 300;
721โ letter-spacing: -0.5px;
722โ line-height: 1.125;
723โ margin-top: 1.563rem;
724โ margin-bottom: 1.25rem;
725โ}
726โ@media (min-width: 52em) {
727โ h1 {
728โ font-size: 3.814em;
729โ margin-top: 5.96rem;
730โ }
731โ}
732โh2 {
733โ font-size: 1.953em;
734โ font-weight: normal;
735โ line-height: 1.25;
736โ margin-top: 3.052rem;
737โ margin-bottom: 1rem;
738โ}
739โh3 {
740โ font-size: 1.563em;
741โ font-weight: normal;
742โ line-height: 1.25;
743โ margin-top: 2.441rem;
744โ margin-bottom: 1rem;
745โ}
746โh4 {
747โ font-size: 1.25em;
748โ font-weight: normal;
749โ margin-top: 2.441rem;
750โ margin-bottom: 1rem;
751โ}
752โh1 + h2,
753โh1 + h3,
754โh1 + h4,
755โh2 + h3,
756โh2 + h4,
757โh3 + h4 {
758โ margin-top: 1rem;
759โ}
760โhr {
761โ border: none;
762โ height: 1px;
763โ background-color: #cccccc;
764โ}
765โ@media (prefers-color-scheme: dark) {
766โ hr {
767โ background-color: #43434e;
768โ }
769โ}
770โimg {
771โ border-style: none;
772โ max-width: 100%;
773โ}
774โp {
775โ font-size: 1em;
776โ margin-top: 1rem;
777โ margin-bottom: 1rem;
778โ}
779โtable {
780โ border-bottom: 1px solid #cccccc;
781โ border-collapse: collapse;
782โ border-spacing: 0;
783โ margin-top: 1rem;
784โ margin-bottom: 1rem;
785โ width: 100%;
786โ}
787โ@media (prefers-color-scheme: dark) {
788โ table {
789โ border-bottom-color: #43434e;
790โ }
791โ}
792โtd,
793โth {
794โ text-align: left;
795โ padding: 0.41em 0.51em;
796โ}
797โtd {
798โ border-top: 1px solid #cccccc;
799โ}
800โ@media (prefers-color-scheme: dark) {
801โ td {
802โ border-top-color: #43434e;
803โ }
804โ}
805โtd:first-child,
806โth:first-child {
807โ padding-left: 0;
808โ}
809โtd:last-child,
810โth:last-child {
811โ padding-right: 0;
812โ}
813โul {
814โ list-style-type: none;
815โ margin-top: 1rem;
816โ margin-bottom: 1rem;
817โ padding-left: 0;
818โ}
819โul li {
820โ position: relative;
821โ padding-left: 1.25em;
822โ}
823โul li::before {
824โ position: absolute;
825โ color: #a0a0a0;
826โ content: "โ";
827โ display: inline-block;
828โ margin-left: -1.25em;
829โ width: 1.25em;
830โ}
831โ@media (prefers-color-scheme: dark) {
832โ ul li::before {
833โ color: #a0a0a0;
834โ }
835โ}
836โ/* Tying this tightly to ul at the moment because it's a slight variation thereof */
837โul.ul--search li::before {
838โ content: "โฒ";
839โ top: -0.2em;
840โ transform: rotate(-45deg);
841โ}
842โol {
843โ margin-top: 1rem;
844โ margin-bottom: 1rem;
845โ padding-left: 1.25em;
846โ}
847โol li {
848โ position: relative;
849โ padding-left: 0;
850โ}
851โ/* Section: Components
852โ * ========================================================================== */
853โ/* Component: Badge
854โ * -------------------------------------------------------------------------- */
855โ.badge {
856โ position: relative;
857โ top: -0.1em;
858โ display: inline-block;
859โ background-color: #000000;
860โ border-radius: 1.3em;
861โ color: #ffffff;
862โ font-size: 77%;
863โ font-weight: bold;
864โ line-height: 1.563;
865โ text-align: center;
866โ height: 1.5em;
867โ width: 1.5em;
868โ}
869โ@media (prefers-color-scheme: dark) {
870โ .badge {
871โ background-color: #dedede;
872โ color: #141417;
873โ }
874โ}
875โ.badge.badge--package {
876โ background-color: #c4953a;
877โ letter-spacing: -0.1em;
878โ}
879โ@media (prefers-color-scheme: dark) {
880โ .badge.badge--package {
881โ background-color: #d8ac55;
882โ }
883โ}
884โ.badge.badge--module {
885โ background-color: #75B134;
886โ}
887โ/* Component: Declarations
888โ * -------------------------------------------------------------------------- */
889โ.decl__title {
890โ position: relative;
891โ padding-bottom: 0.328em;
892โ margin-bottom: 0.262em;
893โ}
894โ.decl__source {
895โ display: block;
896โ float: right;
897โ font-size: 64%;
898โ position: relative;
899โ top: 0.57em;
900โ}
901โ.decl__anchor,
902โ.decl__anchor:visited {
903โ position: absolute;
904โ left: -0.8em;
905โ color: #bababa;
906โ}
907โ@media (prefers-color-scheme: dark) {
908โ .decl__anchor,
909โ .decl__anchor:visited {
910โ color: #878787;
911โ }
912โ}
913โ.decl__anchor:hover {
914โ color: #c4953a;
915โ}
916โ@media (prefers-color-scheme: dark) {
917โ .decl__anchor:hover {
918โ color: #d8ac55;
919โ }
920โ}
921โ.decl__signature {
922โ background-color: transparent;
923โ border-radius: 0;
924โ border-top: 1px solid #cccccc;
925โ border-bottom: 1px solid #cccccc;
926โ padding: 0;
927โ}
928โ@media (prefers-color-scheme: dark) {
929โ .decl__signature {
930โ border-top-color: #43434e;
931โ border-bottom-color: #43434e;
932โ }
933โ}
934โ.decl__signature code {
935โ display: block;
936โ padding: 0.328em 0;
937โ padding-left: 2.441em;
938โ text-indent: -2.441em;
939โ white-space: normal;
940โ}
941โ.decl__role {
942โ font-family: "Roboto", sans-serif;
943โ font-style: italic;
944โ font-weight: normal;
945โ}
946โ/* See https://stackoverflow.com/a/32162038
947โ Content licensed under CC BY-SA 3.0
948โ*/
949โ.decl__role_hover[title] {
950โ /* Remove line that appears under abbr element */
951โ border-bottom: none;
952โ text-decoration: none;
953โ /* Ensure cursor doesn't change to question mark */
954โ cursor: inherit;
955โ}
956โ.decl__role_nominal::after {
957โ content: "nominal";
958โ}
959โ.decl__role_phantom::after {
960โ content: "phantom";
961โ}
962โ.decl__kind {
963โ border-bottom: 1px solid #cccccc;
964โ}
965โ@media (prefers-color-scheme: dark) {
966โ .decl__kind {
967โ border-bottom-color: #43434e;
968โ }
969โ}
970โ:target .decl__signature,
971โ:target .decl__signature code {
972โ /* We want the background to be transparent, even when the parent is a target */
973โ background-color: transparent;
974โ}
975โ.decl__body .keyword,
976โ.decl__body .syntax {
977โ color: #0b71b4;
978โ}
979โ@media (prefers-color-scheme: dark) {
980โ .decl__body .keyword,
981โ .decl__body .syntax {
982โ color: #3796d5;
983โ }
984โ}
985โ.decl__child_comments {
986โ margin-top: 1rem;
987โ margin-bottom: 1rem;
988โ}
989โ/* Component: Dependency Link
990โ * -------------------------------------------------------------------------- */
991โ.deplink {
992โ /* Currently no root styles, but keep the class as a namespace */
993โ}
994โ.deplink__link {
995โ display: inline-block;
996โ margin-right: 0.41em;
997โ}
998โ.deplink__version {
999โ color: #666666;
1000โ display: inline-block;
1001โ font-size: 0.8em;
1002โ line-height: 1;
1003โ}
1004โ@media (prefers-color-scheme: dark) {
1005โ .deplink__version {
1006โ color: #a0a0a0;
1007โ }
1008โ}
1009โ/* Component: Grouped List
1010โ * -------------------------------------------------------------------------- */
1011โ.grouped-list {
1012โ border-top: 1px solid #cccccc;
1013โ margin: 0 0 2.44em 0;
1014โ}
1015โ@media (prefers-color-scheme: dark) {
1016โ .grouped-list {
1017โ border-top-color: #43434e;
1018โ }
1019โ}
1020โ.grouped-list__title {
1021โ color: #666666;
1022โ font-size: 0.8em;
1023โ font-weight: 300;
1024โ letter-spacing: 1px;
1025โ margin: 0.8em 0 -0.1em 0;
1026โ text-transform: uppercase;
1027โ}
1028โ@media (prefers-color-scheme: dark) {
1029โ .grouped-list__title {
1030โ border-top-color: #a0a0a0;
1031โ }
1032โ}
1033โ.grouped-list__item {
1034โ margin: 0;
1035โ}
1036โ/* Component: Message
1037โ * -------------------------------------------------------------------------- */
1038โ.message {
1039โ border: 5px solid;
1040โ border-radius: 5px;
1041โ padding: 1em !important;
1042โ}
1043โ.message.message--error {
1044โ background-color: #fff0f0;
1045โ border-color: #c85050;
1046โ}
1047โ@media (prefers-color-scheme: dark) {
1048โ .message.message--error {
1049โ background-color: #6b0e0e;
1050โ border-color: #c85050;
1051โ }
1052โ}
1053โ.message.message--not-available {
1054โ background-color: #f0f096;
1055โ border-color: #e3e33d;
1056โ}
1057โ@media (prefers-color-scheme: dark) {
1058โ .message.message--not-available {
1059โ background-color: #56560b;
1060โ border-color: #b0b017;
1061โ }
1062โ}
1063โ/* Component: Multi Col
1064โ * Multiple columns side by side
1065โ * -------------------------------------------------------------------------- */
1066โ.multi-col {
1067โ margin-bottom: 2.44em;
1068โ}
1069โ.multi-col__col {
1070โ display: block;
1071โ padding-right: 1em;
1072โ position: relative;
1073โ width: 100%;
1074โ}
1075โ@media (min-width: 38em) and (max-width: 51.999999em) {
1076โ .multi-col__col {
1077โ float: left;
1078โ width: 50%;
1079โ }
1080โ .multi-col__col:nth-child(2n+3) {
1081โ clear: both;
1082โ }
1083โ}
1084โ@media (min-width: 52em) {
1085โ .multi-col__col {
1086โ float: left;
1087โ width: 33.333333%;
1088โ }
1089โ .multi-col__col:nth-child(3n+4) {
1090โ clear: both;
1091โ }
1092โ}
1093โ/* Component: Page Title
1094โ * -------------------------------------------------------------------------- */
1095โ.page-title {
1096โ margin: 4.77em 0 1.56em;
1097โ padding-bottom: 1.25em;
1098โ position: relative;
1099โ}
1100โ.page-title__title {
1101โ margin: 0 0 0 -0.05em;
1102โ /* Visually align on left edge */
1103โ}
1104โ.page-title__label {
1105โ position: relative;
1106โ color: #666666;
1107โ font-size: 0.8rem;
1108โ font-weight: 300;
1109โ letter-spacing: 1px;
1110โ margin-bottom: -0.8em;
1111โ text-transform: uppercase;
1112โ z-index: 1;
1113โ}
1114โ@media (prefers-color-scheme: dark) {
1115โ .page-title__label {
1116โ color: #a0a0a0;
1117โ }
1118โ}
1119โ/* Component: Top Banner
1120โ * -------------------------------------------------------------------------- */
1121โ.top-banner {
1122โ background-color: #1d222d;
1123โ color: #f0f0f0;
1124โ font-weight: normal;
1125โ}
1126โ@media (prefers-color-scheme: dark) {
1127โ .top-banner {
1128โ background-color: #1d222d;
1129โ color: #f0f0f0;
1130โ }
1131โ}
1132โ.top-banner__logo,
1133โ.top-banner__logo:visited {
1134โ float: left;
1135โ color: #f0f0f0;
1136โ font-size: 2.44em;
1137โ font-weight: 300;
1138โ line-height: 90px;
1139โ margin: 0;
1140โ}
1141โ@media (prefers-color-scheme: dark) {
1142โ .top-banner__logo,
1143โ .top-banner__logo:visited {
1144โ color: #f0f0f0;
1145โ }
1146โ}
1147โ.top-banner__logo:hover {
1148โ color: #c4953a;
1149โ text-decoration: none;
1150โ}
1151โ.top-banner__form {
1152โ margin-bottom: 1.25em;
1153โ}
1154โ.top-banner__form input {
1155โ border: 1px solid #1d222d;
1156โ border-radius: 3px;
1157โ background-color: #ffffff;
1158โ color: #1d222d;
1159โ font-weight: 300;
1160โ line-height: 2;
1161โ padding: 0.21em 0.512em;
1162โ width: 100%;
1163โ}
1164โ@media (prefers-color-scheme: dark) {
1165โ .top-banner__form input {
1166โ border-color: #1d222d;
1167โ background-color: #141417;
1168โ color: #dedede;
1169โ }
1170โ}
1171โ.top-banner__actions {
1172โ float: right;
1173โ text-align: right;
1174โ}
1175โ.top-banner__actions__item {
1176โ display: inline-block;
1177โ line-height: 90px;
1178โ margin: 0;
1179โ padding-left: 1.25em;
1180โ}
1181โ.top-banner__actions__item:first-child {
1182โ padding-left: 0;
1183โ}
1184โ.top-banner__actions__item a,
1185โ.top-banner__actions__item a:visited {
1186โ color: #f0f0f0;
1187โ}
1188โ@media (prefers-color-scheme: dark) {
1189โ .top-banner__actions__item a,
1190โ .top-banner__actions__item a:visited {
1191โ color: #f0f0f0;
1192โ }
1193โ}
1194โ.top-banner__actions__item a:hover {
1195โ color: #c4953a;
1196โ}
1197โ@media (prefers-color-scheme: dark) {
1198โ .top-banner__actions__item a:hover {
1199โ color: #d8ac55;
1200โ }
1201โ}
1202โ@media (min-width: 38em) {
1203โ .top-banner__logo {
1204โ float: left;
1205โ width: 25%;
1206โ }
1207โ .top-banner__form {
1208โ float: left;
1209โ line-height: 90px;
1210โ margin-bottom: 0;
1211โ width: 50%;
1212โ }
1213โ .top-banner__actions {
1214โ float: right;
1215โ width: 25%;
1216โ }
1217โ}
1218โ/* Component: Search Results
1219โ * -------------------------------------------------------------------------- */
1220โ.result.result--empty {
1221โ font-size: 1.25em;
1222โ}
1223โ.result__title {
1224โ font-size: 1.25em;
1225โ margin-bottom: 0.2rem;
1226โ}
1227โ.result__badge {
1228โ margin-left: -0.1em;
1229โ}
1230โ.result__body > *:first-child {
1231โ margin-top: 0!important;
1232โ}
1233โ.result__body > *:last-child {
1234โ margin-bottom: 0!important;
1235โ}
1236โ.result__signature {
1237โ background-color: transparent;
1238โ border-radius: 0;
1239โ border-top: 1px solid #cccccc;
1240โ border-bottom: 1px solid #cccccc;
1241โ padding: 0.328em 0;
1242โ}
1243โ@media (prefers-color-scheme: dark) {
1244โ .result__signature {
1245โ border-top-color: #43434e;
1246โ border-bottom-color: #43434e;
1247โ }
1248โ}
1249โ.result__signature code {
1250โ display: block;
1251โ padding-left: 2.441em;
1252โ text-indent: -2.441em;
1253โ white-space: normal;
1254โ}
1255โ.result__actions {
1256โ margin-top: 0.2rem;
1257โ}
1258โ.result__actions__item {
1259โ font-size: 80%;
1260โ}
1261โ.result__actions__item + .result__actions__item {
1262โ margin-left: 0.65em;
1263โ}
1264โ/* Component: Version Selector
1265โ * -------------------------------------------------------------------------- */
1266โ.version-selector {
1267โ margin-bottom: 0.8em;
1268โ}
1269โ@media (min-width: 38em) {
1270โ .version-selector {
1271โ position: absolute;
1272โ top: 0.8em;
1273โ right: 0;
1274โ margin-bottom: 0;
1275โ }
1276โ}
1277โ/* Section: FIXME
1278โ * These styles should be cleaned up
1279โ * ========================================================================== */
1280โ/* Help paragraphs */
1281โ.help {
1282โ padding: 5px 0;
1283โ}
1284โ.help h3 {
1285โ /* FIXME: target with class */
1286โ margin-top: 16px;
1287โ}
1288โ/* Section: Markdown
1289โ * Github rendered README
1290โ * ========================================================================== */
1291โ.markdown-body {
1292โ /*
1293โ Useful for narrow screens, such as mobiles. Documentation often contains URLs
1294โ which would otherwise force the page to become wider, and force creation of
1295โ horizontal scrollbars. Yuck.
1296โ */
1297โ word-wrap: break-word;
1298โ}
1299โ.markdown-body > *:first-child {
1300โ margin-top: 0 !important;
1301โ}
1302โ.markdown-body > *:last-child {
1303โ margin-bottom: 0 !important;
1304โ}
1305โ.markdown-body a:not([href]) {
1306โ color: inherit;
1307โ text-decoration: none;
1308โ}
1309โ.markdown-body blockquote {
1310โ margin: 0;
1311โ padding: 0 1em;
1312โ color: #777;
1313โ border-left: 0.25em solid #ddd;
1314โ}
1315โ@media (prefers-color-scheme: dark) {
1316โ .markdown-body blockquote {
1317โ border-left-color: #444;
1318โ }
1319โ}
1320โ.markdown-body blockquote > :first-child {
1321โ margin-top: 0;
1322โ}
1323โ.markdown-body blockquote > :last-child {
1324โ margin-bottom: 0;
1325โ}
1326โ.markdown-body .anchor {
1327โ /* We hide the anchor because the link doesn't point to a valid location */
1328โ display: none;
1329โ}
1330โ.markdown-body .pl-k {
1331โ /* Keyword */
1332โ color: #a0a0a0;
1333โ}
1334โ@media (prefers-color-scheme: dark) {
1335โ .markdown-body .pl-k {
1336โ color: #676767;
1337โ }
1338โ}
1339โ.markdown-body .pl-c1,
1340โ.markdown-body .pl-en {
1341โ /* Not really sure what this is */
1342โ color: #39d;
1343โ}
1344โ.markdown-body .pl-s {
1345โ /* String literals */
1346โ color: #1a1;
1347โ}
1348โ.markdown-body .pl-cce {
1349โ /* String literal escape sequences */
1350โ color: #921;
1351โ}
1352โ.markdown-body .pl-smi {
1353โ /* type variables? */
1354โ color: #62b;
1355โ}
1356โ</style></head><body><div class="everything-except-footer"><div class="top-banner clearfix"><div class="container clearfix"><div style="float: left; font-size: 2.44em; font-weight: 300; line-height: 90px; margin: 0">PureScript API documentation</div><div class="top-banner__actions"><div class="top-banner__actions__item"><a href="index.html">Index</a></div></div></div></div><main class="container clearfix" role="main"><div class="page-title clearfix"><div class="page-title__label">Module</div><h1 class="page-title__title">Bolson.Control</h1></div><div class="col col--main"><div class="decl" id="v:flatten"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:flatten">#</a><span>flatten</span> </h3><div class="decl__body"><pre class="decl__signature"><code><a href="Bolson.Control.html#v:flatten" title="Bolson.Control.flatten"><span class="ident">flatten</span></a> <span class="syntax">::</span> <span class="keyword">forall</span> <span class="syntax"></span>r <span class="syntax"></span>obj <span class="syntax"></span>logic <span class="syntax"></span>interpreter <span class="syntax"></span>payload<span class="syntax">.</span> <a href="Bolson.Control.html#t:Flatten" title="Bolson.Control.Flatten"><span class="ctor">Flatten</span></a> logic interpreter obj r payload <span class="syntax">-></span> <a href="Bolson.Core.html#t:PSR" title="Bolson.Core.PSR"><span class="ctor">PSR</span></a> r <span class="syntax">-></span> interpreter <span class="syntax">-></span> <a href="Bolson.Core.html#t:Entity" title="Bolson.Core.Entity"><span class="ctor">Entity</span></a> logic <span class="syntax">(</span>obj payload<span class="syntax">)</span> <span class="syntax">-></span> <a href="FRP.Event.html#t:Event" title="FRP.Event.Event"><span class="ctor">Event</span></a> payload</code></pre></div></div><div class="decl" id="v:globalPortalComplexComplex"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:globalPortalComplexComplex">#</a><span>globalPortalComplexComplex</span> </h3><div class="decl__body"><pre class="decl__signature"><code><a href="Bolson.Control.html#v:globalPortalComplexComplex" title="Bolson.Control.globalPortalComplexComplex"><span class="ident">globalPortalComplexComplex</span></a> <span class="syntax">::</span> <span class="keyword">forall</span> <span class="syntax"></span>n <span class="syntax"></span>r <span class="syntax"></span>logic <span class="syntax"></span>obj1 <span class="syntax"></span>obj2 <span class="syntax"></span>specialization <span class="syntax"></span>interpreter <span class="syntax"></span>payload<span class="syntax">.</span> <a href="Prim.Int.html#t:Compare" title="Prim.Int.Compare"><span class="ctor">Compare</span></a> n <a href="Bolson.Control.html#t:Neg1" title="Bolson.Control.Neg1"><span class="ctor">Neg1</span></a> <a href="Prim.Ordering.html#t:GT" title="Prim.Ordering.GT"><span class="ctor">GT</span></a> <span class="syntax">=></span> <a href="Prim.Row.html#t:Lacks" title="Prim.Row.Lacks"><span class="ctor">Lacks</span></a> <span class="syntax">"id"</span> r <span class="syntax">=></span> <a href="Prim.Row.html#t:Lacks" title="Prim.Row.Lacks"><span class="ctor">Lacks</span></a> <span class="syntax">"raiseId"</span> r <span class="syntax">=></span> <a href="Bolson.Control.html#t:Flatten" title="Bolson.Control.Flatten"><span class="ctor">Flatten</span></a> logic interpreter obj2 r payload <span class="syntax">-></span> <a href="Bolson.Control.html#t:Portal" title="Bolson.Control.Portal"><span class="ctor">Portal</span></a> logic specialization interpreter obj1 obj2 r payload <span class="syntax">-></span> <a href="Data.FastVect.FastVect.html#t:Vect" title="Data.FastVect.FastVect.Vect"><span class="ctor">Vect</span></a> n <span class="syntax">(</span><a href="Bolson.Core.html#t:Entity" title="Bolson.Core.Entity"><span class="ctor">Entity</span></a> logic <span class="syntax">(</span>obj1 payload<span class="syntax">)</span><span class="syntax">)</span> <span class="syntax">-></span> <span class="syntax">(</span><a href="Data.FastVect.FastVect.html#t:Vect" title="Data.FastVect.FastVect.Vect"><span class="ctor">Vect</span></a> n <span class="syntax">(</span>specialization <span class="syntax">-></span> <a href="Bolson.Core.html#t:Entity" title="Bolson.Core.Entity"><span class="ctor">Entity</span></a> logic <span class="syntax">(</span>obj1 payload<span class="syntax">)</span><span class="syntax">)</span> <span class="syntax">-></span> <a href="Bolson.Core.html#t:Entity" title="Bolson.Core.Entity"><span class="ctor">Entity</span></a> logic <span class="syntax">(</span>obj2 payload<span class="syntax">)</span><span class="syntax">)</span> <span class="syntax">-></span> <a href="Bolson.Core.html#t:Entity" title="Bolson.Core.Entity"><span class="ctor">Entity</span></a> logic <span class="syntax">(</span>obj2 payload<span class="syntax">)</span></code></pre></div></div><div class="decl" id="v:globalPortalSimpleComplex"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:globalPortalSimpleComplex">#</a><span>globalPortalSimpleComplex</span> </h3><div class="decl__body"><pre class="decl__signature"><code><a href="Bolson.Control.html#v:globalPortalSimpleComplex" title="Bolson.Control.globalPortalSimpleComplex"><span class="ident">globalPortalSimpleComplex</span></a> <span class="syntax">::</span> <span class="keyword">forall</span> <span class="syntax"></span>n <span class="syntax"></span>r <span class="syntax"></span>logic <span class="syntax"></span>obj1 <span class="syntax"></span>obj2 <span class="syntax"></span>specialization <span class="syntax"></span>interpreter <span class="syntax"></span>payload<span class="syntax">.</span> <a href="Prim.Int.html#t:Compare" title="Prim.Int.Compare"><span class="ctor">Compare</span></a> n <a href="Bolson.Control.html#t:Neg1" title="Bolson.Control.Neg1"><span class="ctor">Neg1</span></a> <a href="Prim.Ordering.html#t:GT" title="Prim.Ordering.GT"><span class="ctor">GT</span></a> <span class="syntax">=></span> <a href="Prim.Row.html#t:Lacks" title="Prim.Row.Lacks"><span class="ctor">Lacks</span></a> <span class="syntax">"id"</span> r <span class="syntax">=></span> <a href="Prim.Row.html#t:Lacks" title="Prim.Row.Lacks"><span class="ctor">Lacks</span></a> <span class="syntax">"raiseId"</span> r <span class="syntax">=></span> <a href="Bolson.Control.html#t:Flatten" title="Bolson.Control.Flatten"><span class="ctor">Flatten</span></a> logic interpreter obj2 r payload <span class="syntax">-></span> <a href="Bolson.Control.html#t:PortalSimple" title="Bolson.Control.PortalSimple"><span class="ctor">PortalSimple</span></a> logic specialization interpreter obj1 obj2 r payload <span class="syntax">-></span> <a href="Data.FastVect.FastVect.html#t:Vect" title="Data.FastVect.FastVect.Vect"><span class="ctor">Vect</span></a> n <span class="syntax">(</span>obj1 payload<span class="syntax">)</span> <span class="syntax">-></span> <span class="syntax">(</span><a href="Data.FastVect.FastVect.html#t:Vect" title="Data.FastVect.FastVect.Vect"><span class="ctor">Vect</span></a> n <span class="syntax">(</span>specialization <span class="syntax">-></span> obj1 payload<span class="syntax">)</span> <span class="syntax">-></span> <a href="Bolson.Core.html#t:Entity" title="Bolson.Core.Entity"><span class="ctor">Entity</span></a> logic <span class="syntax">(</span>obj2 payload<span class="syntax">)</span><span class="syntax">)</span> <span class="syntax">-></span> <a href="Bolson.Core.html#t:Entity" title="Bolson.Core.Entity"><span class="ctor">Entity</span></a> logic <span class="syntax">(</span>obj2 payload<span class="syntax">)</span></code></pre></div></div><div class="decl" id="v:globalPortalComplexSimple"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:globalPortalComplexSimple">#</a><span>globalPortalComplexSimple</span> </h3><div class="decl__body"><pre class="decl__signature"><code><a href="Bolson.Control.html#v:globalPortalComplexSimple" title="Bolson.Control.globalPortalComplexSimple"><span class="ident">globalPortalComplexSimple</span></a> <span class="syntax">::</span> <span class="keyword">forall</span> <span class="syntax"></span>n <span class="syntax"></span>r <span class="syntax"></span>logic <span class="syntax"></span>obj1 <span class="syntax"></span>obj2 <span class="syntax"></span>specialization <span class="syntax"></span>interpreter <span class="syntax"></span>payload<span class="syntax">.</span> <a href="Prim.Int.html#t:Compare" title="Prim.Int.Compare"><span class="ctor">Compare</span></a> n <a href="Bolson.Control.html#t:Neg1" title="Bolson.Control.Neg1"><span class="ctor">Neg1</span></a> <a href="Prim.Ordering.html#t:GT" title="Prim.Ordering.GT"><span class="ctor">GT</span></a> <span class="syntax">=></span> <a href="Prim.Row.html#t:Lacks" title="Prim.Row.Lacks"><span class="ctor">Lacks</span></a> <span class="syntax">"id"</span> r <span class="syntax">=></span> <a href="Prim.Row.html#t:Lacks" title="Prim.Row.Lacks"><span class="ctor">Lacks</span></a> <span class="syntax">"raiseId"</span> r <span class="syntax">=></span> <a href="Bolson.Control.html#t:PortalComplex" title="Bolson.Control.PortalComplex"><span class="ctor">PortalComplex</span></a> logic specialization interpreter obj1 obj2 r payload <span class="syntax">-></span> <a href="Data.FastVect.FastVect.html#t:Vect" title="Data.FastVect.FastVect.Vect"><span class="ctor">Vect</span></a> n <span class="syntax">(</span><a href="Bolson.Core.html#t:Entity" title="Bolson.Core.Entity"><span class="ctor">Entity</span></a> logic <span class="syntax">(</span>obj1 payload<span class="syntax">)</span><span class="syntax">)</span> <span class="syntax">-></span> <span class="syntax">(</span><a href="Data.FastVect.FastVect.html#t:Vect" title="Data.FastVect.FastVect.Vect"><span class="ctor">Vect</span></a> n <span class="syntax">(</span>specialization <span class="syntax">-></span> <a href="Bolson.Core.html#t:Entity" title="Bolson.Core.Entity"><span class="ctor">Entity</span></a> logic <span class="syntax">(</span>obj1 payload<span class="syntax">)</span><span class="syntax">)</span> <span class="syntax">-></span> obj2 payload<span class="syntax">)</span> <span class="syntax">-></span> obj2 payload</code></pre></div></div><div class="decl" id="v:portalComplexComplex"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:portalComplexComplex">#</a><span>portalComplexComplex</span> </h3><div class="decl__body"><pre class="decl__signature"><code><a href="Bolson.Control.html#v:portalComplexComplex" title="Bolson.Control.portalComplexComplex"><span class="ident">portalComplexComplex</span></a> <span class="syntax">::</span> <span class="keyword">forall</span> <span class="syntax"></span>n <span class="syntax"></span>r <span class="syntax"></span>logic <span class="syntax"></span>obj1 <span class="syntax"></span>obj2 <span class="syntax"></span>specialization <span class="syntax"></span>interpreter <span class="syntax"></span>payload<span class="syntax">.</span> <a href="Prim.Int.html#t:Compare" title="Prim.Int.Compare"><span class="ctor">Compare</span></a> n <a href="Bolson.Control.html#t:Neg1" title="Bolson.Control.Neg1"><span class="ctor">Neg1</span></a> <a href="Prim.Ordering.html#t:GT" title="Prim.Ordering.GT"><span class="ctor">GT</span></a> <span class="syntax">=></span> <a href="Prim.Row.html#t:Lacks" title="Prim.Row.Lacks"><span class="ctor">Lacks</span></a> <span class="syntax">"id"</span> r <span class="syntax">=></span> <a href="Prim.Row.html#t:Lacks" title="Prim.Row.Lacks"><span class="ctor">Lacks</span></a> <span class="syntax">"raiseId"</span> r <span class="syntax">=></span> <a href="Bolson.Control.html#t:Flatten" title="Bolson.Control.Flatten"><span class="ctor">Flatten</span></a> logic interpreter obj2 r payload <span class="syntax">-></span> <a href="Bolson.Control.html#t:Portal" title="Bolson.Control.Portal"><span class="ctor">Portal</span></a> logic specialization interpreter obj1 obj2 r payload <span class="syntax">-></span> <a href="Data.FastVect.FastVect.html#t:Vect" title="Data.FastVect.FastVect.Vect"><span class="ctor">Vect</span></a> n <span class="syntax">(</span><a href="Bolson.Core.html#t:Entity" title="Bolson.Core.Entity"><span class="ctor">Entity</span></a> logic <span class="syntax">(</span>obj1 payload<span class="syntax">)</span><span class="syntax">)</span> <span class="syntax">-></span> <span class="syntax">(</span><a href="Data.FastVect.FastVect.html#t:Vect" title="Data.FastVect.FastVect.Vect"><span class="ctor">Vect</span></a> n <span class="syntax">(</span>specialization <span class="syntax">-></span> <a href="Bolson.Core.html#t:Entity" title="Bolson.Core.Entity"><span class="ctor">Entity</span></a> logic <span class="syntax">(</span>obj1 payload<span class="syntax">)</span><span class="syntax">)</span> <span class="syntax">-></span> <a href="Bolson.Core.html#t:Entity" title="Bolson.Core.Entity"><span class="ctor">Entity</span></a> logic <span class="syntax">(</span>obj2 payload<span class="syntax">)</span><span class="syntax">)</span> <span class="syntax">-></span> <a href="Bolson.Core.html#t:Entity" title="Bolson.Core.Entity"><span class="ctor">Entity</span></a> logic <span class="syntax">(</span>obj2 payload<span class="syntax">)</span></code></pre></div></div><div class="decl" id="v:portalSimpleComplex"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:portalSimpleComplex">#</a><span>portalSimpleComplex</span> </h3><div class="decl__body"><pre class="decl__signature"><code><a href="Bolson.Control.html#v:portalSimpleComplex" title="Bolson.Control.portalSimpleComplex"><span class="ident">portalSimpleComplex</span></a> <span class="syntax">::</span> <span class="keyword">forall</span> <span class="syntax"></span>n <span class="syntax"></span>r <span class="syntax"></span>logic <span class="syntax"></span>obj1 <span class="syntax"></span>obj2 <span class="syntax"></span>specialization <span class="syntax"></span>interpreter <span class="syntax"></span>payload<span class="syntax">.</span> <a href="Prim.Int.html#t:Compare" title="Prim.Int.Compare"><span class="ctor">Compare</span></a> n <a href="Bolson.Control.html#t:Neg1" title="Bolson.Control.Neg1"><span class="ctor">Neg1</span></a> <a href="Prim.Ordering.html#t:GT" title="Prim.Ordering.GT"><span class="ctor">GT</span></a> <span class="syntax">=></span> <a href="Prim.Row.html#t:Lacks" title="Prim.Row.Lacks"><span class="ctor">Lacks</span></a> <span class="syntax">"id"</span> r <span class="syntax">=></span> <a href="Prim.Row.html#t:Lacks" title="Prim.Row.Lacks"><span class="ctor">Lacks</span></a> <span class="syntax">"raiseId"</span> r <span class="syntax">=></span> <a href="Bolson.Control.html#t:Flatten" title="Bolson.Control.Flatten"><span class="ctor">Flatten</span></a> logic interpreter obj2 r payload <span class="syntax">-></span> <a href="Bolson.Control.html#t:PortalSimple" title="Bolson.Control.PortalSimple"><span class="ctor">PortalSimple</span></a> logic specialization interpreter obj1 obj2 r payload <span class="syntax">-></span> <a href="Data.FastVect.FastVect.html#t:Vect" title="Data.FastVect.FastVect.Vect"><span class="ctor">Vect</span></a> n <span class="syntax">(</span>obj1 payload<span class="syntax">)</span> <span class="syntax">-></span> <span class="syntax">(</span><a href="Data.FastVect.FastVect.html#t:Vect" title="Data.FastVect.FastVect.Vect"><span class="ctor">Vect</span></a> n <span class="syntax">(</span>specialization <span class="syntax">-></span> obj1 payload<span class="syntax">)</span> <span class="syntax">-></span> <a href="Bolson.Core.html#t:Entity" title="Bolson.Core.Entity"><span class="ctor">Entity</span></a> logic <span class="syntax">(</span>obj2 payload<span class="syntax">)</span><span class="syntax">)</span> <span class="syntax">-></span> <a href="Bolson.Core.html#t:Entity" title="Bolson.Core.Entity"><span class="ctor">Entity</span></a> logic <span class="syntax">(</span>obj2 payload<span class="syntax">)</span></code></pre></div></div><div class="decl" id="v:portalComplexSimple"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:portalComplexSimple">#</a><span>portalComplexSimple</span> </h3><div class="decl__body"><pre class="decl__signature"><code><a href="Bolson.Control.html#v:portalComplexSimple" title="Bolson.Control.portalComplexSimple"><span class="ident">portalComplexSimple</span></a> <span class="syntax">::</span> <span class="keyword">forall</span> <span class="syntax"></span>n <span class="syntax"></span>r <span class="syntax"></span>logic <span class="syntax"></span>obj1 <span class="syntax"></span>obj2 <span class="syntax"></span>specialization <span class="syntax"></span>interpreter <span class="syntax"></span>payload<span class="syntax">.</span> <a href="Prim.Int.html#t:Compare" title="Prim.Int.Compare"><span class="ctor">Compare</span></a> n <a href="Bolson.Control.html#t:Neg1" title="Bolson.Control.Neg1"><span class="ctor">Neg1</span></a> <a href="Prim.Ordering.html#t:GT" title="Prim.Ordering.GT"><span class="ctor">GT</span></a> <span class="syntax">=></span> <a href="Prim.Row.html#t:Lacks" title="Prim.Row.Lacks"><span class="ctor">Lacks</span></a> <span class="syntax">"id"</span> r <span class="syntax">=></span> <a href="Prim.Row.html#t:Lacks" title="Prim.Row.Lacks"><span class="ctor">Lacks</span></a> <span class="syntax">"raiseId"</span> r <span class="syntax">=></span> <a href="Bolson.Control.html#t:PortalComplex" title="Bolson.Control.PortalComplex"><span class="ctor">PortalComplex</span></a> logic specialization interpreter obj1 obj2 r payload <span class="syntax">-></span> <a href="Data.FastVect.FastVect.html#t:Vect" title="Data.FastVect.FastVect.Vect"><span class="ctor">Vect</span></a> n <span class="syntax">(</span><a href="Bolson.Core.html#t:Entity" title="Bolson.Core.Entity"><span class="ctor">Entity</span></a> logic <span class="syntax">(</span>obj1 payload<span class="syntax">)</span><span class="syntax">)</span> <span class="syntax">-></span> <span class="syntax">(</span><a href="Data.FastVect.FastVect.html#t:Vect" title="Data.FastVect.FastVect.Vect"><span class="ctor">Vect</span></a> n <span class="syntax">(</span>specialization <span class="syntax">-></span> <a href="Bolson.Core.html#t:Entity" title="Bolson.Core.Entity"><span class="ctor">Entity</span></a> logic <span class="syntax">(</span>obj1 payload<span class="syntax">)</span><span class="syntax">)</span> <span class="syntax">-></span> obj2 payload<span class="syntax">)</span> <span class="syntax">-></span> obj2 payload</code></pre></div></div><div class="decl" id="v:fixComplexComplex"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:fixComplexComplex">#</a><span>fixComplexComplex</span> </h3><div class="decl__body"><pre class="decl__signature"><code><a href="Bolson.Control.html#v:fixComplexComplex" title="Bolson.Control.fixComplexComplex"><span class="ident">fixComplexComplex</span></a> <span class="syntax">::</span> <span class="keyword">forall</span> <span class="syntax"></span>r <span class="syntax"></span>obj <span class="syntax"></span>logic <span class="syntax"></span>interpreter <span class="syntax"></span>payload<span class="syntax">.</span> <a href="Bolson.Control.html#t:Flatten" title="Bolson.Control.Flatten"><span class="ctor">Flatten</span></a> logic interpreter obj r payload <span class="syntax">-></span> <a href="Bolson.Control.html#t:Fix" title="Bolson.Control.Fix"><span class="ctor">Fix</span></a> interpreter obj r payload <span class="syntax">-></span> <span class="syntax">(</span><a href="Bolson.Core.html#t:Entity" title="Bolson.Core.Entity"><span class="ctor">Entity</span></a> logic <span class="syntax">(</span>obj payload<span class="syntax">)</span> <span class="syntax">-></span> <a href="Bolson.Core.html#t:Entity" title="Bolson.Core.Entity"><span class="ctor">Entity</span></a> logic <span class="syntax">(</span>obj payload<span class="syntax">)</span><span class="syntax">)</span> <span class="syntax">-></span> <a href="Bolson.Core.html#t:Entity" title="Bolson.Core.Entity"><span class="ctor">Entity</span></a> logic <span class="syntax">(</span>obj payload<span class="syntax">)</span></code></pre></div></div><div class="decl" id="v:switcher"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:switcher">#</a><span>switcher</span> </h3><div class="decl__body"><pre class="decl__signature"><code><a href="Bolson.Control.html#v:switcher" title="Bolson.Control.switcher"><span class="ident">switcher</span></a> <span class="syntax">::</span> <span class="keyword">forall</span> <span class="syntax"></span>i <span class="syntax"></span>logic <span class="syntax"></span>obj<span class="syntax">.</span> <span class="syntax">(</span>i <span class="syntax">-></span> <a href="Bolson.Core.html#t:Entity" title="Bolson.Core.Entity"><span class="ctor">Entity</span></a> logic obj<span class="syntax">)</span> <span class="syntax">-></span> <a href="FRP.Event.html#t:Event" title="FRP.Event.Event"><span class="ctor">Event</span></a> i <span class="syntax">-></span> <a href="Bolson.Core.html#t:Entity" title="Bolson.Core.Entity"><span class="ctor">Entity</span></a> logic obj</code></pre></div></div></div><div class="col col--aside"><h3>Modules</h3><ul><li><a href="Ansi.Codes.html">Ansi.Codes</a></li><li><a href="Ansi.Output.html">Ansi.Output</a></li><li><a href="Bolson.Control.html">Bolson.Control</a></li><li><a href="Bolson.Core.html">Bolson.Core</a></li><li><a href="Control.Alt.html">Control.Alt</a></li><li><a href="Control.Alternative.html">Control.Alternative</a></li><li><a href="Control.Applicative.html">Control.Applicative</a></li><li><a href="Control.Apply.html">Control.Apply</a></li><li><a href="Control.Biapplicative.html">Control.Biapplicative</a></li><li><a href="Control.Biapply.html">Control.Biapply</a></li><li><a href="Control.Bind.html">Control.Bind</a></li><li><a href="Control.Category.html">Control.Category</a></li><li><a href="Control.Comonad.html">Control.Comonad</a></li><li><a href="Control.Comonad.Cofree.html">Control.Comonad.Cofree</a></li><li><a href="Control.Comonad.Cofree.Class.html">Control.Comonad.Cofree.Class</a></li><li><a href="Control.Comonad.Env.html">Control.Comonad.Env</a></li><li><a href="Control.Comonad.Env.Class.html">Control.Comonad.Env.Class</a></li><li><a href="Control.Comonad.Env.Trans.html">Control.Comonad.Env.Trans</a></li><li><a href="Control.Comonad.Store.html">Control.Comonad.Store</a></li><li><a href="Control.Comonad.Store.Class.html">Control.Comonad.Store.Class</a></li><li><a href="Control.Comonad.Store.Trans.html">Control.Comonad.Store.Trans</a></li><li><a href="Control.Comonad.Traced.html">Control.Comonad.Traced</a></li><li><a href="Control.Comonad.Traced.Class.html">Control.Comonad.Traced.Class</a></li><li><a href="Control.Comonad.Traced.Trans.html">Control.Comonad.Traced.Trans</a></li><li><a href="Control.Comonad.Trans.Class.html">Control.Comonad.Trans.Class</a></li><li><a href="Control.Extend.html">Control.Extend</a></li><li><a href="Control.Lazy.html">Control.Lazy</a></li><li><a href="Control.Monad.html">Control.Monad</a></li><li><a href="Control.Monad.Cont.html">Control.Monad.Cont</a></li><li><a href="Control.Monad.Cont.Class.html">Control.Monad.Cont.Class</a></li><li><a href="Control.Monad.Cont.Trans.html">Control.Monad.Cont.Trans</a></li><li><a href="Control.Monad.Error.Class.html">Control.Monad.Error.Class</a></li><li><a href="Control.Monad.Except.html">Control.Monad.Except</a></li><li><a href="Control.Monad.Except.Trans.html">Control.Monad.Except.Trans</a></li><li><a href="Control.Monad.Fork.Class.html">Control.Monad.Fork.Class</a></li><li><a href="Control.Monad.Free.html">Control.Monad.Free</a></li><li><a href="Control.Monad.Free.Class.html">Control.Monad.Free.Class</a></li><li><a href="Control.Monad.Gen.html">Control.Monad.Gen</a></li><li><a href="Control.Monad.Gen.Class.html">Control.Monad.Gen.Class</a></li><li><a href="Control.Monad.Gen.Common.html">Control.Monad.Gen.Common</a></li><li><a href="Control.Monad.Identity.Trans.html">Control.Monad.Identity.Trans</a></li><li><a href="Control.Monad.List.Trans.html">Control.Monad.List.Trans</a></li><li><a href="Control.Monad.Maybe.Trans.html">Control.Monad.Maybe.Trans</a></li><li><a href="Control.Monad.Morph.html">Control.Monad.Morph</a></li><li><a href="Control.Monad.RWS.html">Control.Monad.RWS</a></li><li><a href="Control.Monad.RWS.Trans.html">Control.Monad.RWS.Trans</a></li><li><a href="Control.Monad.Reader.html">Control.Monad.Reader</a></li><li><a href="Control.Monad.Reader.Class.html">Control.Monad.Reader.Class</a></li><li><a href="Control.Monad.Reader.Trans.html">Control.Monad.Reader.Trans</a></li><li><a href="Control.Monad.Rec.Class.html">Control.Monad.Rec.Class</a></li><li><a href="Control.Monad.ST.html">Control.Monad.ST</a></li><li><a href="Control.Monad.ST.Class.html">Control.Monad.ST.Class</a></li><li><a href="Control.Monad.ST.Global.html">Control.Monad.ST.Global</a></li><li><a href="Control.Monad.ST.Internal.html">Control.Monad.ST.Internal</a></li><li><a href="Control.Monad.ST.Ref.html">Control.Monad.ST.Ref</a></li><li><a href="Control.Monad.ST.Uncurried.html">Control.Monad.ST.Uncurried</a></li><li><a href="Control.Monad.State.html">Control.Monad.State</a></li><li><a href="Control.Monad.State.Class.html">Control.Monad.State.Class</a></li><li><a href="Control.Monad.State.Trans.html">Control.Monad.State.Trans</a></li><li><a href="Control.Monad.Trampoline.html">Control.Monad.Trampoline</a></li><li><a href="Control.Monad.Trans.Class.html">Control.Monad.Trans.Class</a></li><li><a href="Control.Monad.Writer.html">Control.Monad.Writer</a></li><li><a href="Control.Monad.Writer.Class.html">Control.Monad.Writer.Class</a></li><li><a href="Control.Monad.Writer.Trans.html">Control.Monad.Writer.Trans</a></li><li><a href="Control.MonadPlus.html">Control.MonadPlus</a></li><li><a href="Control.Parallel.html">Control.Parallel</a></li><li><a href="Control.Parallel.Class.html">Control.Parallel.Class</a></li><li><a href="Control.Plus.html">Control.Plus</a></li><li><a href="Control.Semigroupoid.html">Control.Semigroupoid</a></li><li><a href="Data.Array.html">Data.Array</a></li><li><a href="Data.Array.NonEmpty.html">Data.Array.NonEmpty</a></li><li><a href="Data.Array.NonEmpty.Internal.html">Data.Array.NonEmpty.Internal</a></li><li><a href="Data.Array.Partial.html">Data.Array.Partial</a></li><li><a href="Data.Array.ST.html">Data.Array.ST</a></li><li><a href="Data.Array.ST.Iterator.html">Data.Array.ST.Iterator</a></li><li><a href="Data.Array.ST.Partial.html">Data.Array.ST.Partial</a></li><li><a href="Data.ArrayBuffer.Types.html">Data.ArrayBuffer.Types</a></li><li><a href="Data.Bifoldable.html">Data.Bifoldable</a></li><li><a href="Data.Bifunctor.html">Data.Bifunctor</a></li><li><a href="Data.Bifunctor.Join.html">Data.Bifunctor.Join</a></li><li><a href="Data.Bitraversable.html">Data.Bitraversable</a></li><li><a href="Data.Boolean.html">Data.Boolean</a></li><li><a href="Data.BooleanAlgebra.html">Data.BooleanAlgebra</a></li><li><a href="Data.Bounded.html">Data.Bounded</a></li><li><a href="Data.Bounded.Generic.html">Data.Bounded.Generic</a></li><li><a href="Data.CatList.html">Data.CatList</a></li><li><a href="Data.CatQueue.html">Data.CatQueue</a></li><li><a href="Data.Char.html">Data.Char</a></li><li><a href="Data.Char.Gen.html">Data.Char.Gen</a></li><li><a href="Data.CommutativeRing.html">Data.CommutativeRing</a></li><li><a href="Data.Compactable.html">Data.Compactable</a></li><li><a href="Data.Comparison.html">Data.Comparison</a></li><li><a href="Data.Const.html">Data.Const</a></li><li><a href="Data.Coyoneda.html">Data.Coyoneda</a></li><li><a href="Data.Date.html">Data.Date</a></li><li><a href="Data.Date.Component.html">Data.Date.Component</a></li><li><a href="Data.Date.Component.Gen.html">Data.Date.Component.Gen</a></li><li><a href="Data.Date.Gen.html">Data.Date.Gen</a></li><li><a href="Data.DateTime.html">Data.DateTime</a></li><li><a href="Data.DateTime.Gen.html">Data.DateTime.Gen</a></li><li><a href="Data.DateTime.Instant.html">Data.DateTime.Instant</a></li><li><a href="Data.Decidable.html">Data.Decidable</a></li><li><a href="Data.Decide.html">Data.Decide</a></li><li><a href="Data.Distributive.html">Data.Distributive</a></li><li><a href="Data.Divide.html">Data.Divide</a></li><li><a href="Data.Divisible.html">Data.Divisible</a></li><li><a href="Data.DivisionRing.html">Data.DivisionRing</a></li><li><a href="Data.Either.html">Data.Either</a></li><li><a href="Data.Either.Inject.html">Data.Either.Inject</a></li><li><a href="Data.Either.Nested.html">Data.Either.Nested</a></li><li><a href="Data.Enum.html">Data.Enum</a></li><li><a href="Data.Enum.Gen.html">Data.Enum.Gen</a></li><li><a href="Data.Enum.Generic.html">Data.Enum.Generic</a></li><li><a href="Data.Eq.html">Data.Eq</a></li><li><a href="Data.Eq.Generic.html">Data.Eq.Generic</a></li><li><a href="Data.Equivalence.html">Data.Equivalence</a></li><li><a href="Data.EuclideanRing.html">Data.EuclideanRing</a></li><li><a href="Data.Exists.html">Data.Exists</a></li><li><a href="Data.FastVect.Common.html">Data.FastVect.Common</a></li><li><a href="Data.FastVect.Common.Matrix.html">Data.FastVect.Common.Matrix</a></li><li><a href="Data.FastVect.FastVect.html">Data.FastVect.FastVect</a></li><li><a href="Data.FastVect.FastVect.Matrix.html">Data.FastVect.FastVect.Matrix</a></li><li><a href="Data.FastVect.MinLenVect.html">Data.FastVect.MinLenVect</a></li><li><a href="Data.FastVect.Sparse.Read.html">Data.FastVect.Sparse.Read</a></li><li><a href="Data.FastVect.Sparse.Write.html">Data.FastVect.Sparse.Write</a></li><li><a href="Data.Field.html">Data.Field</a></li><li><a href="Data.Filterable.html">Data.Filterable</a></li><li><a href="Data.Foldable.html">Data.Foldable</a></li><li><a href="Data.FoldableWithIndex.html">Data.FoldableWithIndex</a></li><li><a href="Data.Function.html">Data.Function</a></li><li><a href="Data.Function.Uncurried.html">Data.Function.Uncurried</a></li><li><a href="Data.Functor.html">Data.Functor</a></li><li><a href="Data.Functor.App.html">Data.Functor.App</a></li><li><a href="Data.Functor.Clown.html">Data.Functor.Clown</a></li><li><a href="Data.Functor.Compose.html">Data.Functor.Compose</a></li><li><a href="Data.Functor.Contravariant.html">Data.Functor.Contravariant</a></li><li><a href="Data.Functor.Coproduct.html">Data.Functor.Coproduct</a></li><li><a href="Data.Functor.Coproduct.Inject.html">Data.Functor.Coproduct.Inject</a></li><li><a href="Data.Functor.Coproduct.Nested.html">Data.Functor.Coproduct.Nested</a></li><li><a href="Data.Functor.Costar.html">Data.Functor.Costar</a></li><li><a href="Data.Functor.Flip.html">Data.Functor.Flip</a></li><li><a href="Data.Functor.Invariant.html">Data.Functor.Invariant</a></li><li><a href="Data.Functor.Joker.html">Data.Functor.Joker</a></li><li><a href="Data.Functor.Product.html">Data.Functor.Product</a></li><li><a href="Data.Functor.Product.Nested.html">Data.Functor.Product.Nested</a></li><li><a href="Data.Functor.Product2.html">Data.Functor.Product2</a></li><li><a href="Data.Functor.Variant.html">Data.Functor.Variant</a></li><li><a href="Data.FunctorWithIndex.html">Data.FunctorWithIndex</a></li><li><a href="Data.Generic.Rep.html">Data.Generic.Rep</a></li><li><a href="Data.HeytingAlgebra.html">Data.HeytingAlgebra</a></li><li><a href="Data.HeytingAlgebra.Generic.html">Data.HeytingAlgebra.Generic</a></li><li><a href="Data.Identity.html">Data.Identity</a></li><li><a href="Data.Int.html">Data.Int</a></li><li><a href="Data.Int.Bits.html">Data.Int.Bits</a></li><li><a href="Data.Interval.html">Data.Interval</a></li><li><a href="Data.Interval.Duration.html">Data.Interval.Duration</a></li><li><a href="Data.Interval.Duration.Iso.html">Data.Interval.Duration.Iso</a></li><li><a href="Data.JSDate.html">Data.JSDate</a></li><li><a href="Data.Lazy.html">Data.Lazy</a></li><li><a href="Data.List.html">Data.List</a></li><li><a href="Data.List.Internal.html">Data.List.Internal</a></li><li><a href="Data.List.Lazy.html">Data.List.Lazy</a></li><li><a href="Data.List.Lazy.NonEmpty.html">Data.List.Lazy.NonEmpty</a></li><li><a href="Data.List.Lazy.Types.html">Data.List.Lazy.Types</a></li><li><a href="Data.List.NonEmpty.html">Data.List.NonEmpty</a></li><li><a href="Data.List.Partial.html">Data.List.Partial</a></li><li><a href="Data.List.Types.html">Data.List.Types</a></li><li><a href="Data.List.ZipList.html">Data.List.ZipList</a></li><li><a href="Data.Map.html">Data.Map</a></li><li><a href="Data.Map.Gen.html">Data.Map.Gen</a></li><li><a href="Data.Map.Internal.html">Data.Map.Internal</a></li><li><a href="Data.Maybe.html">Data.Maybe</a></li><li><a href="Data.Maybe.First.html">Data.Maybe.First</a></li><li><a href="Data.Maybe.Last.html">Data.Maybe.Last</a></li><li><a href="Data.MediaType.html">Data.MediaType</a></li><li><a href="Data.MediaType.Common.html">Data.MediaType.Common</a></li><li><a href="Data.Monoid.html">Data.Monoid</a></li><li><a href="Data.Monoid.Additive.html">Data.Monoid.Additive</a></li><li><a href="Data.Monoid.Alternate.html">Data.Monoid.Alternate</a></li><li><a href="Data.Monoid.Conj.html">Data.Monoid.Conj</a></li><li><a href="Data.Monoid.Disj.html">Data.Monoid.Disj</a></li><li><a href="Data.Monoid.Dual.html">Data.Monoid.Dual</a></li><li><a href="Data.Monoid.Endo.html">Data.Monoid.Endo</a></li><li><a href="Data.Monoid.Generic.html">Data.Monoid.Generic</a></li><li><a href="Data.Monoid.Multiplicative.html">Data.Monoid.Multiplicative</a></li><li><a href="Data.NaturalTransformation.html">Data.NaturalTransformation</a></li><li><a href="Data.Newtype.html">Data.Newtype</a></li><li><a href="Data.NonEmpty.html">Data.NonEmpty</a></li><li><a href="Data.Nullable.html">Data.Nullable</a></li><li><a href="Data.Number.html">Data.Number</a></li><li><a href="Data.Number.Approximate.html">Data.Number.Approximate</a></li><li><a href="Data.Number.Format.html">Data.Number.Format</a></li><li><a href="Data.Op.html">Data.Op</a></li><li><a href="Data.Ord.html">Data.Ord</a></li><li><a href="Data.Ord.Down.html">Data.Ord.Down</a></li><li><a href="Data.Ord.Generic.html">Data.Ord.Generic</a></li><li><a href="Data.Ord.Max.html">Data.Ord.Max</a></li><li><a href="Data.Ord.Min.html">Data.Ord.Min</a></li><li><a href="Data.Ordering.html">Data.Ordering</a></li><li><a href="Data.Posix.html">Data.Posix</a></li><li><a href="Data.Posix.Signal.html">Data.Posix.Signal</a></li><li><a href="Data.Predicate.html">Data.Predicate</a></li><li><a href="Data.Profunctor.html">Data.Profunctor</a></li><li><a href="Data.Profunctor.Choice.html">Data.Profunctor.Choice</a></li><li><a href="Data.Profunctor.Closed.html">Data.Profunctor.Closed</a></li><li><a href="Data.Profunctor.Cochoice.html">Data.Profunctor.Cochoice</a></li><li><a href="Data.Profunctor.Costrong.html">Data.Profunctor.Costrong</a></li><li><a href="Data.Profunctor.Join.html">Data.Profunctor.Join</a></li><li><a href="Data.Profunctor.Split.html">Data.Profunctor.Split</a></li><li><a href="Data.Profunctor.Star.html">Data.Profunctor.Star</a></li><li><a href="Data.Profunctor.Strong.html">Data.Profunctor.Strong</a></li><li><a href="Data.Reflectable.html">Data.Reflectable</a></li><li><a href="Data.Ring.html">Data.Ring</a></li><li><a href="Data.Ring.Generic.html">Data.Ring.Generic</a></li><li><a href="Data.Semigroup.html">Data.Semigroup</a></li><li><a href="Data.Semigroup.First.html">Data.Semigroup.First</a></li><li><a href="Data.Semigroup.Foldable.html">Data.Semigroup.Foldable</a></li><li><a href="Data.Semigroup.Generic.html">Data.Semigroup.Generic</a></li><li><a href="Data.Semigroup.Last.html">Data.Semigroup.Last</a></li><li><a href="Data.Semigroup.Traversable.html">Data.Semigroup.Traversable</a></li><li><a href="Data.Semiring.html">Data.Semiring</a></li><li><a href="Data.Semiring.Generic.html">Data.Semiring.Generic</a></li><li><a href="Data.Set.html">Data.Set</a></li><li><a href="Data.Set.NonEmpty.html">Data.Set.NonEmpty</a></li><li><a href="Data.Show.html">Data.Show</a></li><li><a href="Data.Show.Generic.html">Data.Show.Generic</a></li><li><a href="Data.String.html">Data.String</a></li><li><a href="Data.String.CaseInsensitive.html">Data.String.CaseInsensitive</a></li><li><a href="Data.String.CodePoints.html">Data.String.CodePoints</a></li><li><a href="Data.String.CodeUnits.html">Data.String.CodeUnits</a></li><li><a href="Data.String.Common.html">Data.String.Common</a></li><li><a href="Data.String.Gen.html">Data.String.Gen</a></li><li><a href="Data.String.NonEmpty.html">Data.String.NonEmpty</a></li><li><a href="Data.String.NonEmpty.CaseInsensitive.html">Data.String.NonEmpty.CaseInsensitive</a></li><li><a href="Data.String.NonEmpty.CodePoints.html">Data.String.NonEmpty.CodePoints</a></li><li><a href="Data.String.NonEmpty.CodeUnits.html">Data.String.NonEmpty.CodeUnits</a></li><li><a href="Data.String.NonEmpty.Internal.html">Data.String.NonEmpty.Internal</a></li><li><a href="Data.String.Pattern.html">Data.String.Pattern</a></li><li><a href="Data.String.Regex.html">Data.String.Regex</a></li><li><a href="Data.String.Regex.Flags.html">Data.String.Regex.Flags</a></li><li><a href="Data.String.Regex.Unsafe.html">Data.String.Regex.Unsafe</a></li><li><a href="Data.String.Unsafe.html">Data.String.Unsafe</a></li><li><a href="Data.Symbol.html">Data.Symbol</a></li><li><a href="Data.Time.html">Data.Time</a></li><li><a href="Data.Time.Component.html">Data.Time.Component</a></li><li><a href="Data.Time.Component.Gen.html">Data.Time.Component.Gen</a></li><li><a href="Data.Time.Duration.html">Data.Time.Duration</a></li><li><a href="Data.Time.Duration.Gen.html">Data.Time.Duration.Gen</a></li><li><a href="Data.Time.Gen.html">Data.Time.Gen</a></li><li><a href="Data.Traversable.html">Data.Traversable</a></li><li><a href="Data.Traversable.Accum.html">Data.Traversable.Accum</a></li><li><a href="Data.Traversable.Accum.Internal.html">Data.Traversable.Accum.Internal</a></li><li><a href="Data.TraversableWithIndex.html">Data.TraversableWithIndex</a></li><li><a href="Data.Tuple.html">Data.Tuple</a></li><li><a href="Data.Tuple.Nested.html">Data.Tuple.Nested</a></li><li><a href="Data.Unfoldable.html">Data.Unfoldable</a></li><li><a href="Data.Unfoldable1.html">Data.Unfoldable1</a></li><li><a href="Data.Unit.html">Data.Unit</a></li><li><a href="Data.Variant.html">Data.Variant</a></li><li><a href="Data.Variant.Internal.html">Data.Variant.Internal</a></li><li><a href="Data.Void.html">Data.Void</a></li><li><a href="Data.Witherable.html">Data.Witherable</a></li><li><a href="Data.Yoneda.html">Data.Yoneda</a></li><li><a href="Effect.html">Effect</a></li><li><a href="Effect.AVar.html">Effect.AVar</a></li><li><a href="Effect.Aff.html">Effect.Aff</a></li><li><a href="Effect.Aff.AVar.html">Effect.Aff.AVar</a></li><li><a href="Effect.Aff.Class.html">Effect.Aff.Class</a></li><li><a href="Effect.Aff.Compat.html">Effect.Aff.Compat</a></li><li><a href="Effect.Class.html">Effect.Class</a></li><li><a href="Effect.Class.Console.html">Effect.Class.Console</a></li><li><a href="Effect.Console.html">Effect.Console</a></li><li><a href="Effect.Exception.html">Effect.Exception</a></li><li><a href="Effect.Exception.Unsafe.html">Effect.Exception.Unsafe</a></li><li><a href="Effect.Now.html">Effect.Now</a></li><li><a href="Effect.Ref.html">Effect.Ref</a></li><li><a href="Effect.Timer.html">Effect.Timer</a></li><li><a href="Effect.Uncurried.html">Effect.Uncurried</a></li><li><a href="Effect.Unsafe.html">Effect.Unsafe</a></li><li><a href="FRP.Behavior.html">FRP.Behavior</a></li><li><a href="FRP.Behavior.Keyboard.html">FRP.Behavior.Keyboard</a></li><li><a href="FRP.Behavior.Mouse.html">FRP.Behavior.Mouse</a></li><li><a href="FRP.Behavior.Time.html">FRP.Behavior.Time</a></li><li><a href="FRP.Event.html">FRP.Event</a></li><li><a href="FRP.Event.AnimationFrame.html">FRP.Event.AnimationFrame</a></li><li><a href="FRP.Event.Class.html">FRP.Event.Class</a></li><li><a href="FRP.Event.Keyboard.html">FRP.Event.Keyboard</a></li><li><a href="FRP.Event.Mouse.html">FRP.Event.Mouse</a></li><li><a href="FRP.Event.Time.html">FRP.Event.Time</a></li><li><a href="FRP.Event.VBus.html">FRP.Event.VBus</a></li><li><a href="Foreign.html">Foreign</a></li><li><a href="Foreign.Index.html">Foreign.Index</a></li><li><a href="Foreign.Keys.html">Foreign.Keys</a></li><li><a href="Foreign.Object.html">Foreign.Object</a></li><li><a href="Foreign.Object.Gen.html">Foreign.Object.Gen</a></li><li><a href="Foreign.Object.ST.html">Foreign.Object.ST</a></li><li><a href="Foreign.Object.ST.Unsafe.html">Foreign.Object.ST.Unsafe</a></li><li><a href="Foreign.Object.Unsafe.html">Foreign.Object.Unsafe</a></li><li><a href="Heterogeneous.Folding.html">Heterogeneous.Folding</a></li><li><a href="Heterogeneous.Mapping.html">Heterogeneous.Mapping</a></li><li><a href="Node.Buffer.html">Node.Buffer</a></li><li><a href="Node.Buffer.Class.html">Node.Buffer.Class</a></li><li><a href="Node.Buffer.Constants.html">Node.Buffer.Constants</a></li><li><a href="Node.Buffer.Immutable.html">Node.Buffer.Immutable</a></li><li><a href="Node.Buffer.ST.html">Node.Buffer.ST</a></li><li><a href="Node.Buffer.Types.html">Node.Buffer.Types</a></li><li><a href="Node.Encoding.html">Node.Encoding</a></li><li><a href="Node.EventEmitter.html">Node.EventEmitter</a></li><li><a href="Node.EventEmitter.UtilTypes.html">Node.EventEmitter.UtilTypes</a></li><li><a href="Node.FS.html">Node.FS</a></li><li><a href="Node.FS.Aff.html">Node.FS.Aff</a></li><li><a href="Node.FS.Async.html">Node.FS.Async</a></li><li><a href="Node.FS.Constants.html">Node.FS.Constants</a></li><li><a href="Node.FS.Perms.html">Node.FS.Perms</a></li><li><a href="Node.FS.Stats.html">Node.FS.Stats</a></li><li><a href="Node.FS.Stream.html">Node.FS.Stream</a></li><li><a href="Node.FS.Sync.html">Node.FS.Sync</a></li><li><a href="Node.Path.html">Node.Path</a></li><li><a href="Node.Platform.html">Node.Platform</a></li><li><a href="Node.Process.html">Node.Process</a></li><li><a href="Node.Stream.html">Node.Stream</a></li><li><a href="Node.Stream.Aff.html">Node.Stream.Aff</a></li><li><a href="Node.Symbol.html">Node.Symbol</a></li><li><a href="Partial.html">Partial</a></li><li><a href="Partial.Unsafe.html">Partial.Unsafe</a></li><li><a href="Performance.Minibench.html">Performance.Minibench</a></li><li><a href="Pipes.html">Pipes</a></li><li><a href="Pipes.Core.html">Pipes.Core</a></li><li><a href="Pipes.Internal.html">Pipes.Internal</a></li><li><a href="Pipes.ListT.html">Pipes.ListT</a></li><li><a href="Pipes.Prelude.html">Pipes.Prelude</a></li><li><a href="Prelude.html">Prelude</a></li><li><a href="Prim.html">Prim</a></li><li><a href="Prim.Boolean.html">Prim.Boolean</a></li><li><a href="Prim.Coerce.html">Prim.Coerce</a></li><li><a href="Prim.Int.html">Prim.Int</a></li><li><a href="Prim.Ordering.html">Prim.Ordering</a></li><li><a href="Prim.Row.html">Prim.Row</a></li><li><a href="Prim.RowList.html">Prim.RowList</a></li><li><a href="Prim.Symbol.html">Prim.Symbol</a></li><li><a href="Prim.TypeError.html">Prim.TypeError</a></li><li><a href="Record.html">Record</a></li><li><a href="Record.Builder.html">Record.Builder</a></li><li><a href="Record.Studio.html">Record.Studio</a></li><li><a href="Record.Studio.Keys.html">Record.Studio.Keys</a></li><li><a href="Record.Studio.Map.html">Record.Studio.Map</a></li><li><a href="Record.Studio.MapKind.html">Record.Studio.MapKind</a></li><li><a href="Record.Studio.MapUniform.html">Record.Studio.MapUniform</a></li><li><a href="Record.Studio.Merge.html">Record.Studio.Merge</a></li><li><a href="Record.Studio.SameKeys.html">Record.Studio.SameKeys</a></li><li><a href="Record.Studio.Sequence.html">Record.Studio.Sequence</a></li><li><a href="Record.Studio.Shrink.html">Record.Studio.Shrink</a></li><li><a href="Record.Studio.SingletonRecord.html">Record.Studio.SingletonRecord</a></li><li><a href="Record.Unsafe.html">Record.Unsafe</a></li><li><a href="Record.Unsafe.Union.html">Record.Unsafe.Union</a></li><li><a href="Safe.Coerce.html">Safe.Coerce</a></li><li><a href="Spago.Generated.BuildInfo.html">Spago.Generated.BuildInfo</a></li><li><a href="Test.Spec.html">Test.Spec</a></li><li><a href="Test.Spec.Assertions.html">Test.Spec.Assertions</a></li><li><a href="Test.Spec.Assertions.String.html">Test.Spec.Assertions.String</a></li><li><a href="Test.Spec.Config.html">Test.Spec.Config</a></li><li><a href="Test.Spec.Console.html">Test.Spec.Console</a></li><li><a href="Test.Spec.Reporter.html">Test.Spec.Reporter</a></li><li><a href="Test.Spec.Reporter.Base.html">Test.Spec.Reporter.Base</a></li><li><a href="Test.Spec.Reporter.Console.html">Test.Spec.Reporter.Console</a></li><li><a href="Test.Spec.Reporter.Dot.html">Test.Spec.Reporter.Dot</a></li><li><a href="Test.Spec.Reporter.Spec.html">Test.Spec.Reporter.Spec</a></li><li><a href="Test.Spec.Reporter.Tap.html">Test.Spec.Reporter.Tap</a></li><li><a href="Test.Spec.Reporter.TeamCity.html">Test.Spec.Reporter.TeamCity</a></li><li><a href="Test.Spec.Result.html">Test.Spec.Result</a></li><li><a href="Test.Spec.Runner.html">Test.Spec.Runner</a></li><li><a href="Test.Spec.Runner.Event.html">Test.Spec.Runner.Event</a></li><li><a href="Test.Spec.Speed.html">Test.Spec.Speed</a></li><li><a href="Test.Spec.Style.html">Test.Spec.Style</a></li><li><a href="Test.Spec.Summary.html">Test.Spec.Summary</a></li><li><a href="Test.Spec.Tree.html">Test.Spec.Tree</a></li><li><a href="Type.Data.Boolean.html">Type.Data.Boolean</a></li><li><a href="Type.Data.Ordering.html">Type.Data.Ordering</a></li><li><a href="Type.Data.Symbol.html">Type.Data.Symbol</a></li><li><a href="Type.Equality.html">Type.Equality</a></li><li><a href="Type.Function.html">Type.Function</a></li><li><a href="Type.Prelude.html">Type.Prelude</a></li><li><a href="Type.Proxy.html">Type.Proxy</a></li><li><a href="Type.Row.html">Type.Row</a></li><li><a href="Type.Row.Homogeneous.html">Type.Row.Homogeneous</a></li><li><a href="Type.RowList.html">Type.RowList</a></li><li><a href="Uncurried.RWSE.html">Uncurried.RWSE</a></li><li><a href="Uncurried.RWSET.html">Uncurried.RWSET</a></li><li><a href="Uncurried.Reader.html">Uncurried.Reader</a></li><li><a href="Uncurried.ReaderT.html">Uncurried.ReaderT</a></li><li><a href="Uncurried.State.html">Uncurried.State</a></li><li><a href="Uncurried.StateT.html">Uncurried.StateT</a></li><li><a href="Uncurried.Writer.html">Uncurried.Writer</a></li><li><a href="Uncurried.WriterT.html">Uncurried.WriterT</a></li><li><a href="Unsafe.Coerce.html">Unsafe.Coerce</a></li><li><a href="Unsafe.Reference.html">Unsafe.Reference</a></li><li><a href="Web.DOM.html">Web.DOM</a></li><li><a href="Web.DOM.CharacterData.html">Web.DOM.CharacterData</a></li><li><a href="Web.DOM.ChildNode.html">Web.DOM.ChildNode</a></li><li><a href="Web.DOM.Comment.html">Web.DOM.Comment</a></li><li><a href="Web.DOM.DOMTokenList.html">Web.DOM.DOMTokenList</a></li><li><a href="Web.DOM.Document.html">Web.DOM.Document</a></li><li><a href="Web.DOM.DocumentFragment.html">Web.DOM.DocumentFragment</a></li><li><a href="Web.DOM.DocumentType.html">Web.DOM.DocumentType</a></li><li><a href="Web.DOM.Element.html">Web.DOM.Element</a></li><li><a href="Web.DOM.HTMLCollection.html">Web.DOM.HTMLCollection</a></li><li><a href="Web.DOM.Internal.Types.html">Web.DOM.Internal.Types</a></li><li><a href="Web.DOM.MutationObserver.html">Web.DOM.MutationObserver</a></li><li><a href="Web.DOM.MutationRecord.html">Web.DOM.MutationRecord</a></li><li><a href="Web.DOM.Node.html">Web.DOM.Node</a></li><li><a href="Web.DOM.NodeList.html">Web.DOM.NodeList</a></li><li><a href="Web.DOM.NodeType.html">Web.DOM.NodeType</a></li><li><a href="Web.DOM.NonDocumentTypeChildNode.html">Web.DOM.NonDocumentTypeChildNode</a></li><li><a href="Web.DOM.NonElementParentNode.html">Web.DOM.NonElementParentNode</a></li><li><a href="Web.DOM.ParentNode.html">Web.DOM.ParentNode</a></li><li><a href="Web.DOM.ProcessingInstruction.html">Web.DOM.ProcessingInstruction</a></li><li><a href="Web.DOM.ShadowRoot.html">Web.DOM.ShadowRoot</a></li><li><a href="Web.DOM.Text.html">Web.DOM.Text</a></li><li><a href="Web.Event.CustomEvent.html">Web.Event.CustomEvent</a></li><li><a href="Web.Event.Event.html">Web.Event.Event</a></li><li><a href="Web.Event.EventPhase.html">Web.Event.EventPhase</a></li><li><a href="Web.Event.EventTarget.html">Web.Event.EventTarget</a></li><li><a href="Web.Event.Internal.Types.html">Web.Event.Internal.Types</a></li><li><a href="Web.File.Blob.html">Web.File.Blob</a></li><li><a href="Web.File.File.html">Web.File.File</a></li><li><a href="Web.File.FileList.html">Web.File.FileList</a></li><li><a href="Web.File.FileReader.html">Web.File.FileReader</a></li><li><a href="Web.File.FileReader.ReadyState.html">Web.File.FileReader.ReadyState</a></li><li><a href="Web.File.Url.html">Web.File.Url</a></li><li><a href="Web.HTML.html">Web.HTML</a></li><li><a href="Web.HTML.Common.html">Web.HTML.Common</a></li><li><a href="Web.HTML.Event.BeforeUnloadEvent.html">Web.HTML.Event.BeforeUnloadEvent</a></li><li><a href="Web.HTML.Event.BeforeUnloadEvent.EventTypes.html">Web.HTML.Event.BeforeUnloadEvent.EventTypes</a></li><li><a href="Web.HTML.Event.DataTransfer.html">Web.HTML.Event.DataTransfer</a></li><li><a href="Web.HTML.Event.DataTransfer.DataTransferItem.html">Web.HTML.Event.DataTransfer.DataTransferItem</a></li><li><a href="Web.HTML.Event.DragEvent.html">Web.HTML.Event.DragEvent</a></li><li><a href="Web.HTML.Event.DragEvent.EventTypes.html">Web.HTML.Event.DragEvent.EventTypes</a></li><li><a href="Web.HTML.Event.ErrorEvent.html">Web.HTML.Event.ErrorEvent</a></li><li><a href="Web.HTML.Event.EventTypes.html">Web.HTML.Event.EventTypes</a></li><li><a href="Web.HTML.Event.HashChangeEvent.html">Web.HTML.Event.HashChangeEvent</a></li><li><a href="Web.HTML.Event.HashChangeEvent.EventTypes.html">Web.HTML.Event.HashChangeEvent.EventTypes</a></li><li><a href="Web.HTML.Event.PageTransitionEvent.html">Web.HTML.Event.PageTransitionEvent</a></li><li><a href="Web.HTML.Event.PageTransitionEvent.EventTypes.html">Web.HTML.Event.PageTransitionEvent.EventTypes</a></li><li><a href="Web.HTML.Event.PopStateEvent.html">Web.HTML.Event.PopStateEvent</a></li><li><a href="Web.HTML.Event.PopStateEvent.EventTypes.html">Web.HTML.Event.PopStateEvent.EventTypes</a></li><li><a href="Web.HTML.Event.TrackEvent.html">Web.HTML.Event.TrackEvent</a></li><li><a href="Web.HTML.Event.TrackEvent.EventTypes.html">Web.HTML.Event.TrackEvent.EventTypes</a></li><li><a href="Web.HTML.HTMLAnchorElement.html">Web.HTML.HTMLAnchorElement</a></li><li><a href="Web.HTML.HTMLAreaElement.html">Web.HTML.HTMLAreaElement</a></li><li><a href="Web.HTML.HTMLAudioElement.html">Web.HTML.HTMLAudioElement</a></li><li><a href="Web.HTML.HTMLBRElement.html">Web.HTML.HTMLBRElement</a></li><li><a href="Web.HTML.HTMLBaseElement.html">Web.HTML.HTMLBaseElement</a></li><li><a href="Web.HTML.HTMLBodyElement.html">Web.HTML.HTMLBodyElement</a></li><li><a href="Web.HTML.HTMLButtonElement.html">Web.HTML.HTMLButtonElement</a></li><li><a href="Web.HTML.HTMLCanvasElement.html">Web.HTML.HTMLCanvasElement</a></li><li><a href="Web.HTML.HTMLDListElement.html">Web.HTML.HTMLDListElement</a></li><li><a href="Web.HTML.HTMLDataElement.html">Web.HTML.HTMLDataElement</a></li><li><a href="Web.HTML.HTMLDataListElement.html">Web.HTML.HTMLDataListElement</a></li><li><a href="Web.HTML.HTMLDivElement.html">Web.HTML.HTMLDivElement</a></li><li><a href="Web.HTML.HTMLDocument.html">Web.HTML.HTMLDocument</a></li><li><a href="Web.HTML.HTMLDocument.ReadyState.html">Web.HTML.HTMLDocument.ReadyState</a></li><li><a href="Web.HTML.HTMLDocument.VisibilityState.html">Web.HTML.HTMLDocument.VisibilityState</a></li><li><a href="Web.HTML.HTMLElement.html">Web.HTML.HTMLElement</a></li><li><a href="Web.HTML.HTMLEmbedElement.html">Web.HTML.HTMLEmbedElement</a></li><li><a href="Web.HTML.HTMLFieldSetElement.html">Web.HTML.HTMLFieldSetElement</a></li><li><a href="Web.HTML.HTMLFormElement.html">Web.HTML.HTMLFormElement</a></li><li><a href="Web.HTML.HTMLHRElement.html">Web.HTML.HTMLHRElement</a></li><li><a href="Web.HTML.HTMLHeadElement.html">Web.HTML.HTMLHeadElement</a></li><li><a href="Web.HTML.HTMLHeadingElement.html">Web.HTML.HTMLHeadingElement</a></li><li><a href="Web.HTML.HTMLHtmlElement.html">Web.HTML.HTMLHtmlElement</a></li><li><a href="Web.HTML.HTMLHyperlinkElementUtils.html">Web.HTML.HTMLHyperlinkElementUtils</a></li><li><a href="Web.HTML.HTMLIFrameElement.html">Web.HTML.HTMLIFrameElement</a></li><li><a href="Web.HTML.HTMLImageElement.html">Web.HTML.HTMLImageElement</a></li><li><a href="Web.HTML.HTMLImageElement.CORSMode.html">Web.HTML.HTMLImageElement.CORSMode</a></li><li><a href="Web.HTML.HTMLImageElement.DecodingHint.html">Web.HTML.HTMLImageElement.DecodingHint</a></li><li><a href="Web.HTML.HTMLImageElement.Laziness.html">Web.HTML.HTMLImageElement.Laziness</a></li><li><a href="Web.HTML.HTMLInputElement.html">Web.HTML.HTMLInputElement</a></li><li><a href="Web.HTML.HTMLKeygenElement.html">Web.HTML.HTMLKeygenElement</a></li><li><a href="Web.HTML.HTMLLIElement.html">Web.HTML.HTMLLIElement</a></li><li><a href="Web.HTML.HTMLLabelElement.html">Web.HTML.HTMLLabelElement</a></li><li><a href="Web.HTML.HTMLLegendElement.html">Web.HTML.HTMLLegendElement</a></li><li><a href="Web.HTML.HTMLLinkElement.html">Web.HTML.HTMLLinkElement</a></li><li><a href="Web.HTML.HTMLMapElement.html">Web.HTML.HTMLMapElement</a></li><li><a href="Web.HTML.HTMLMediaElement.html">Web.HTML.HTMLMediaElement</a></li><li><a href="Web.HTML.HTMLMediaElement.CanPlayType.html">Web.HTML.HTMLMediaElement.CanPlayType</a></li><li><a href="Web.HTML.HTMLMediaElement.NetworkState.html">Web.HTML.HTMLMediaElement.NetworkState</a></li><li><a href="Web.HTML.HTMLMediaElement.ReadyState.html">Web.HTML.HTMLMediaElement.ReadyState</a></li><li><a href="Web.HTML.HTMLMetaElement.html">Web.HTML.HTMLMetaElement</a></li><li><a href="Web.HTML.HTMLMeterElement.html">Web.HTML.HTMLMeterElement</a></li><li><a href="Web.HTML.HTMLModElement.html">Web.HTML.HTMLModElement</a></li><li><a href="Web.HTML.HTMLOListElement.html">Web.HTML.HTMLOListElement</a></li><li><a href="Web.HTML.HTMLObjectElement.html">Web.HTML.HTMLObjectElement</a></li><li><a href="Web.HTML.HTMLOptGroupElement.html">Web.HTML.HTMLOptGroupElement</a></li><li><a href="Web.HTML.HTMLOptionElement.html">Web.HTML.HTMLOptionElement</a></li><li><a href="Web.HTML.HTMLOutputElement.html">Web.HTML.HTMLOutputElement</a></li><li><a href="Web.HTML.HTMLParagraphElement.html">Web.HTML.HTMLParagraphElement</a></li><li><a href="Web.HTML.HTMLParamElement.html">Web.HTML.HTMLParamElement</a></li><li><a href="Web.HTML.HTMLPreElement.html">Web.HTML.HTMLPreElement</a></li><li><a href="Web.HTML.HTMLProgressElement.html">Web.HTML.HTMLProgressElement</a></li><li><a href="Web.HTML.HTMLQuoteElement.html">Web.HTML.HTMLQuoteElement</a></li><li><a href="Web.HTML.HTMLScriptElement.html">Web.HTML.HTMLScriptElement</a></li><li><a href="Web.HTML.HTMLSelectElement.html">Web.HTML.HTMLSelectElement</a></li><li><a href="Web.HTML.HTMLSourceElement.html">Web.HTML.HTMLSourceElement</a></li><li><a href="Web.HTML.HTMLSpanElement.html">Web.HTML.HTMLSpanElement</a></li><li><a href="Web.HTML.HTMLStyleElement.html">Web.HTML.HTMLStyleElement</a></li><li><a href="Web.HTML.HTMLTableCaptionElement.html">Web.HTML.HTMLTableCaptionElement</a></li><li><a href="Web.HTML.HTMLTableCellElement.html">Web.HTML.HTMLTableCellElement</a></li><li><a href="Web.HTML.HTMLTableColElement.html">Web.HTML.HTMLTableColElement</a></li><li><a href="Web.HTML.HTMLTableDataCellElement.html">Web.HTML.HTMLTableDataCellElement</a></li><li><a href="Web.HTML.HTMLTableElement.html">Web.HTML.HTMLTableElement</a></li><li><a href="Web.HTML.HTMLTableHeaderCellElement.html">Web.HTML.HTMLTableHeaderCellElement</a></li><li><a href="Web.HTML.HTMLTableRowElement.html">Web.HTML.HTMLTableRowElement</a></li><li><a href="Web.HTML.HTMLTableSectionElement.html">Web.HTML.HTMLTableSectionElement</a></li><li><a href="Web.HTML.HTMLTemplateElement.html">Web.HTML.HTMLTemplateElement</a></li><li><a href="Web.HTML.HTMLTextAreaElement.html">Web.HTML.HTMLTextAreaElement</a></li><li><a href="Web.HTML.HTMLTimeElement.html">Web.HTML.HTMLTimeElement</a></li><li><a href="Web.HTML.HTMLTitleElement.html">Web.HTML.HTMLTitleElement</a></li><li><a href="Web.HTML.HTMLTrackElement.html">Web.HTML.HTMLTrackElement</a></li><li><a href="Web.HTML.HTMLTrackElement.ReadyState.html">Web.HTML.HTMLTrackElement.ReadyState</a></li><li><a href="Web.HTML.HTMLUListElement.html">Web.HTML.HTMLUListElement</a></li><li><a href="Web.HTML.HTMLVideoElement.html">Web.HTML.HTMLVideoElement</a></li><li><a href="Web.HTML.History.html">Web.HTML.History</a></li><li><a href="Web.HTML.Location.html">Web.HTML.Location</a></li><li><a href="Web.HTML.Navigator.html">Web.HTML.Navigator</a></li><li><a href="Web.HTML.SelectionMode.html">Web.HTML.SelectionMode</a></li><li><a href="Web.HTML.ValidityState.html">Web.HTML.ValidityState</a></li><li><a href="Web.HTML.Window.html">Web.HTML.Window</a></li><li><a href="Web.Internal.FFI.html">Web.Internal.FFI</a></li><li><a href="Web.Storage.Event.StorageEvent.html">Web.Storage.Event.StorageEvent</a></li><li><a href="Web.Storage.Storage.html">Web.Storage.Storage</a></li><li><a href="Web.UIEvent.CompositionEvent.html">Web.UIEvent.CompositionEvent</a></li><li><a href="Web.UIEvent.CompositionEvent.EventTypes.html">Web.UIEvent.CompositionEvent.EventTypes</a></li><li><a href="Web.UIEvent.EventTypes.html">Web.UIEvent.EventTypes</a></li><li><a href="Web.UIEvent.FocusEvent.html">Web.UIEvent.FocusEvent</a></li><li><a href="Web.UIEvent.FocusEvent.EventTypes.html">Web.UIEvent.FocusEvent.EventTypes</a></li><li><a href="Web.UIEvent.InputEvent.html">Web.UIEvent.InputEvent</a></li><li><a href="Web.UIEvent.InputEvent.EventTypes.html">Web.UIEvent.InputEvent.EventTypes</a></li><li><a href="Web.UIEvent.InputEvent.InputType.html">Web.UIEvent.InputEvent.InputType</a></li><li><a href="Web.UIEvent.KeyboardEvent.html">Web.UIEvent.KeyboardEvent</a></li><li><a href="Web.UIEvent.KeyboardEvent.EventTypes.html">Web.UIEvent.KeyboardEvent.EventTypes</a></li><li><a href="Web.UIEvent.MouseEvent.html">Web.UIEvent.MouseEvent</a></li><li><a href="Web.UIEvent.MouseEvent.EventTypes.html">Web.UIEvent.MouseEvent.EventTypes</a></li><li><a href="Web.UIEvent.UIEvent.html">Web.UIEvent.UIEvent</a></li><li><a href="Web.UIEvent.WheelEvent.html">Web.UIEvent.WheelEvent</a></li><li><a href="Web.UIEvent.WheelEvent.EventTypes.html">Web.UIEvent.WheelEvent.EventTypes</a></li></ul></div></main></div><div class="footer clearfix"><p>Generated by purs 0.15.15 [development build; commit: UNKNOWN]</p></div><!-- Docs search index. --><script type="text/javascript" src="./docs-search-app.js"></script><script type="text/javascript">window.DocsSearchTypeIndex = {};window.DocsSearchIndex = {};</script></body></html>
generated-docs/html/Bolson.Core.htmldeletedโ1356
@@ -1,1356 +0,0 @@
1โ<!DOCTYPE HTML>
2โ<html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1"><title>PureScript: Bolson.Core</title><link href="https://fonts.googleapis.com/css?family=Roboto+Mono|Roboto:300,400,400i,700,700i" type="text/css" rel="stylesheet"><style type="text/css">/*! normalize.css v3.0.2 | MIT License | git.io/normalize */
3โ
4โ/**
5โ * 1. Set default font family to sans-serif.
6โ * 2. Prevent iOS text size adjust after orientation change, without disabling
7โ * user zoom.
8โ */
9โ
10โhtml {
11โ font-family: sans-serif; /* 1 */
12โ -ms-text-size-adjust: 100%; /* 2 */
13โ -webkit-text-size-adjust: 100%; /* 2 */
14โ}
15โ
16โ/**
17โ * Remove default margin.
18โ */
19โ
20โbody {
21โ margin: 0;
22โ}
23โ
24โ/* HTML5 display definitions
25โ ========================================================================== */
26โ
27โ/**
28โ * Correct `block` display not defined for any HTML5 element in IE 8/9.
29โ * Correct `block` display not defined for `details` or `summary` in IE 10/11
30โ * and Firefox.
31โ * Correct `block` display not defined for `main` in IE 11.
32โ */
33โ
34โarticle,
35โaside,
36โdetails,
37โfigcaption,
38โfigure,
39โfooter,
40โheader,
41โhgroup,
42โmain,
43โmenu,
44โnav,
45โsection,
46โsummary {
47โ display: block;
48โ}
49โ
50โ/**
51โ * 1. Correct `inline-block` display not defined in IE 8/9.
52โ * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
53โ */
54โ
55โaudio,
56โcanvas,
57โprogress,
58โvideo {
59โ display: inline-block; /* 1 */
60โ vertical-align: baseline; /* 2 */
61โ}
62โ
63โ/**
64โ * Prevent modern browsers from displaying `audio` without controls.
65โ * Remove excess height in iOS 5 devices.
66โ */
67โ
68โaudio:not([controls]) {
69โ display: none;
70โ height: 0;
71โ}
72โ
73โ/**
74โ * Address `[hidden]` styling not present in IE 8/9/10.
75โ * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22.
76โ */
77โ
78โ[hidden],
79โtemplate {
80โ display: none;
81โ}
82โ
83โ/* Links
84โ ========================================================================== */
85โ
86โ/**
87โ * Remove the gray background color from active links in IE 10.
88โ */
89โ
90โa {
91โ background-color: transparent;
92โ}
93โ
94โ/**
95โ * Improve readability when focused and also mouse hovered in all browsers.
96โ */
97โ
98โa:active,
99โa:hover {
100โ outline: 0;
101โ}
102โ
103โ/* Text-level semantics
104โ ========================================================================== */
105โ
106โ/**
107โ * Address styling not present in IE 8/9/10/11, Safari, and Chrome.
108โ */
109โ
110โabbr[title] {
111โ border-bottom: 1px dotted;
112โ}
113โ
114โ/**
115โ * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
116โ */
117โ
118โb,
119โstrong {
120โ font-weight: bold;
121โ}
122โ
123โ/**
124โ * Address styling not present in Safari and Chrome.
125โ */
126โ
127โdfn {
128โ font-style: italic;
129โ}
130โ
131โ/**
132โ * Address variable `h1` font-size and margin within `section` and `article`
133โ * contexts in Firefox 4+, Safari, and Chrome.
134โ */
135โ
136โh1 {
137โ font-size: 2em;
138โ margin: 0.67em 0;
139โ}
140โ
141โ/**
142โ * Address styling not present in IE 8/9.
143โ */
144โ
145โmark {
146โ background: #ff0;
147โ color: #000;
148โ}
149โ
150โ/**
151โ * Address inconsistent and variable font size in all browsers.
152โ */
153โ
154โsmall {
155โ font-size: 80%;
156โ}
157โ
158โ/**
159โ * Prevent `sub` and `sup` affecting `line-height` in all browsers.
160โ */
161โ
162โsub,
163โsup {
164โ font-size: 75%;
165โ line-height: 0;
166โ position: relative;
167โ vertical-align: baseline;
168โ}
169โ
170โsup {
171โ top: -0.5em;
172โ}
173โ
174โsub {
175โ bottom: -0.25em;
176โ}
177โ
178โ/* Embedded content
179โ ========================================================================== */
180โ
181โ/**
182โ * Remove border when inside `a` element in IE 8/9/10.
183โ */
184โ
185โimg {
186โ border: 0;
187โ}
188โ
189โ/**
190โ * Correct overflow not hidden in IE 9/10/11.
191โ */
192โ
193โsvg:not(:root) {
194โ overflow: hidden;
195โ}
196โ
197โ/* Grouping content
198โ ========================================================================== */
199โ
200โ/**
201โ * Address margin not present in IE 8/9 and Safari.
202โ */
203โ
204โfigure {
205โ margin: 1em 40px;
206โ}
207โ
208โ/**
209โ * Address differences between Firefox and other browsers.
210โ */
211โ
212โhr {
213โ -moz-box-sizing: content-box;
214โ box-sizing: content-box;
215โ height: 0;
216โ}
217โ
218โ/**
219โ * Contain overflow in all browsers.
220โ */
221โ
222โpre {
223โ overflow: auto;
224โ}
225โ
226โ/**
227โ * Address odd `em`-unit font size rendering in all browsers.
228โ */
229โ
230โcode,
231โkbd,
232โpre,
233โsamp {
234โ font-family: monospace, monospace;
235โ font-size: 1em;
236โ}
237โ
238โ/* Forms
239โ ========================================================================== */
240โ
241โ/**
242โ * Known limitation: by default, Chrome and Safari on OS X allow very limited
243โ * styling of `select`, unless a `border` property is set.
244โ */
245โ
246โ/**
247โ * 1. Correct color not being inherited.
248โ * Known issue: affects color of disabled elements.
249โ * 2. Correct font properties not being inherited.
250โ * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
251โ */
252โ
253โbutton,
254โinput,
255โoptgroup,
256โselect,
257โtextarea {
258โ color: inherit; /* 1 */
259โ font: inherit; /* 2 */
260โ margin: 0; /* 3 */
261โ}
262โ
263โ/**
264โ * Address `overflow` set to `hidden` in IE 8/9/10/11.
265โ */
266โ
267โbutton {
268โ overflow: visible;
269โ}
270โ
271โ/**
272โ * Address inconsistent `text-transform` inheritance for `button` and `select`.
273โ * All other form control elements do not inherit `text-transform` values.
274โ * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
275โ * Correct `select` style inheritance in Firefox.
276โ */
277โ
278โbutton,
279โselect {
280โ text-transform: none;
281โ}
282โ
283โ/**
284โ * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
285โ * and `video` controls.
286โ * 2. Correct inability to style clickable `input` types in iOS.
287โ * 3. Improve usability and consistency of cursor style between image-type
288โ * `input` and others.
289โ */
290โ
291โbutton,
292โhtml input[type="button"], /* 1 */
293โinput[type="reset"],
294โinput[type="submit"] {
295โ -webkit-appearance: button; /* 2 */
296โ cursor: pointer; /* 3 */
297โ}
298โ
299โ/**
300โ * Re-set default cursor for disabled elements.
301โ */
302โ
303โbutton[disabled],
304โhtml input[disabled] {
305โ cursor: default;
306โ}
307โ
308โ/**
309โ * Remove inner padding and border in Firefox 4+.
310โ */
311โ
312โbutton::-moz-focus-inner,
313โinput::-moz-focus-inner {
314โ border: 0;
315โ padding: 0;
316โ}
317โ
318โ/**
319โ * Address Firefox 4+ setting `line-height` on `input` using `!important` in
320โ * the UA stylesheet.
321โ */
322โ
323โinput {
324โ line-height: normal;
325โ}
326โ
327โ/**
328โ * It's recommended that you don't attempt to style these elements.
329โ * Firefox's implementation doesn't respect box-sizing, padding, or width.
330โ *
331โ * 1. Address box sizing set to `content-box` in IE 8/9/10.
332โ * 2. Remove excess padding in IE 8/9/10.
333โ */
334โ
335โinput[type="checkbox"],
336โinput[type="radio"] {
337โ box-sizing: border-box; /* 1 */
338โ padding: 0; /* 2 */
339โ}
340โ
341โ/**
342โ * Fix the cursor style for Chrome's increment/decrement buttons. For certain
343โ * `font-size` values of the `input`, it causes the cursor style of the
344โ * decrement button to change from `default` to `text`.
345โ */
346โ
347โinput[type="number"]::-webkit-inner-spin-button,
348โinput[type="number"]::-webkit-outer-spin-button {
349โ height: auto;
350โ}
351โ
352โ/**
353โ * 1. Address `appearance` set to `searchfield` in Safari and Chrome.
354โ * 2. Address `box-sizing` set to `border-box` in Safari and Chrome
355โ * (include `-moz` to future-proof).
356โ */
357โ
358โinput[type="search"] {
359โ -webkit-appearance: textfield; /* 1 */
360โ -moz-box-sizing: content-box;
361โ -webkit-box-sizing: content-box; /* 2 */
362โ box-sizing: content-box;
363โ}
364โ
365โ/**
366โ * Remove inner padding and search cancel button in Safari and Chrome on OS X.
367โ * Safari (but not Chrome) clips the cancel button when the search input has
368โ * padding (and `textfield` appearance).
369โ */
370โ
371โinput[type="search"]::-webkit-search-cancel-button,
372โinput[type="search"]::-webkit-search-decoration {
373โ -webkit-appearance: none;
374โ}
375โ
376โ/**
377โ * Define consistent border, margin, and padding.
378โ */
379โ
380โfieldset {
381โ border: 1px solid #c0c0c0;
382โ margin: 0 2px;
383โ padding: 0.35em 0.625em 0.75em;
384โ}
385โ
386โ/**
387โ * 1. Correct `color` not being inherited in IE 8/9/10/11.
388โ * 2. Remove padding so people aren't caught out if they zero out fieldsets.
389โ */
390โ
391โlegend {
392โ border: 0; /* 1 */
393โ padding: 0; /* 2 */
394โ}
395โ
396โ/**
397โ * Remove default vertical scrollbar in IE 8/9/10/11.
398โ */
399โ
400โtextarea {
401โ overflow: auto;
402โ}
403โ
404โ/**
405โ * Don't inherit the `font-weight` (applied by a rule above).
406โ * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
407โ */
408โ
409โoptgroup {
410โ font-weight: bold;
411โ}
412โ
413โ/* Tables
414โ ========================================================================== */
415โ
416โ/**
417โ * Remove most spacing between table cells.
418โ */
419โ
420โtable {
421โ border-collapse: collapse;
422โ border-spacing: 0;
423โ}
424โ
425โtd,
426โth {
427โ padding: 0;
428โ}
429โ</style><style type="text/css">/** ************************************************************************* *
430โ ** CSS for HTML docs (e.g. Pursuit)
431โ **
432โ ** STRUCTURE
433โ **
434โ ** This CSS file is structured into several sections, from general to
435โ ** specific, and (mostly) alphabetically within the sections.
436โ **
437โ ** Several global element styles are used. This is not encouraged and should
438โ ** be kept to a minimum. If you want to add new styles you'll most likely
439โ ** want to add a new CSS component. See the Components section for examples.
440โ **
441โ ** CSS components use three simple naming ideas from the BEM system:
442โ ** - Block: `.my-component`
443โ ** - Element: `.my-component__item`
444โ ** - Modifier: `.my-component.my-component--highlighted`
445โ **
446โ ** Example:
447โ ** <div .my-component>
448โ ** <div .my-component__item>
449โ ** <div .my-component__item>
450โ ** ...
451โ ** <div .my-component.my-component--highlighted>
452โ ** <div .my-component__item>
453โ ** <div .my-component__item>
454โ **
455โ ** Components can be nested.
456โ **
457โ **
458โ ** TYPOGRAPHY
459โ **
460โ ** Typographic choices for sizes, line-heights and margins are based on a
461โ ** musical major third scale (4:5). This gives us a way to find numbers
462โ ** and relationships between them that are perceived as harmonic.
463โ **
464โ ** To make use of this modular scale, use a ratio of the form
465โ ** (5/4)^n
466โ ** where n โ โค, -6 โค n โค 8.
467โ **
468โ ** LESS
469โ **
470โ ** This CSS is generated by less. To compile it:
471โ **
472โ ** npm install [-g] less
473โ ** lessc app/static/pursuit.less > app/static/pursuit.css
474โ **
475โ ** ************************************************************************* */
476โ/* Section: Variables
477โ * ========================================================================== */
478โ/* Section: Document Styles
479โ * ========================================================================== */
480โ:root {
481โ color-scheme: light dark;
482โ}
483โhtml {
484โ box-sizing: border-box;
485โ /* This overflow rule prevents everything from shifting slightly to the side
486โ when moving from a page which isn't large enough to generate a scrollbar
487โ to one that is. */
488โ overflow-y: scroll;
489โ}
490โ*,
491โ*::before,
492โ*::after {
493โ box-sizing: inherit;
494โ}
495โbody {
496โ background-color: #ffffff;
497โ color: #000000;
498โ font-family: "Roboto", sans-serif;
499โ font-size: 87.5%;
500โ line-height: 1.563;
501โ}
502โ@media (prefers-color-scheme: dark) {
503โ body {
504โ background-color: #141417;
505โ color: #dedede;
506โ }
507โ}
508โ@media (min-width: 38em) {
509โ body {
510โ font-size: 100%;
511โ }
512โ}
513โ/* Section: Utility Classes
514โ * ========================================================================== */
515โ.clear-floats {
516โ clear: both;
517โ}
518โ.clearfix::before,
519โ.clearfix::after {
520โ content: " ";
521โ display: table;
522โ}
523โ.clearfix::after {
524โ clear: both;
525โ}
526โ/* Content hidden like this will still be read by a screen reader */
527โ.hide-visually {
528โ position: absolute;
529โ left: -10000px;
530โ top: auto;
531โ width: 1px;
532โ height: 1px;
533โ overflow: hidden;
534โ}
535โ/* Section: Layout
536โ * ========================================================================== */
537โ.container {
538โ display: block;
539โ max-width: 66em;
540โ margin-left: auto;
541โ margin-right: auto;
542โ padding-left: 20px;
543โ padding-right: 20px;
544โ}
545โ.col {
546โ display: block;
547โ position: relative;
548โ width: 100%;
549โ}
550โ.col.col--main {
551โ margin-bottom: 3.08em;
552โ}
553โ.col.col--aside {
554โ margin-bottom: 2.44em;
555โ}
556โ@media (min-width: 52em) {
557โ .container {
558โ padding-left: 30px;
559โ padding-right: 30px;
560โ }
561โ .col.col--main {
562โ float: left;
563โ width: 63.655%;
564โ /* 66.6โฆ% - 30px */
565โ }
566โ .col.col--aside {
567โ float: right;
568โ font-size: 87.5%;
569โ width: 33.333333%;
570โ }
571โ}
572โ@media (min-width: 66em) {
573โ .col.col--aside {
574โ font-size: inherit;
575โ }
576โ}
577โ/* Footer
578โ * Based on http://www.lwis.net/journal/2008/02/08/pure-css-sticky-footer/
579โ * Except we don't support IE6
580โ * -------------------------------------------------------------------------- */
581โhtml,
582โbody {
583โ height: 100%;
584โ}
585โ.everything-except-footer {
586โ min-height: 100%;
587โ padding-bottom: 3em;
588โ}
589โ.footer {
590โ position: relative;
591โ height: 3em;
592โ margin-top: -3em;
593โ width: 100%;
594โ text-align: center;
595โ background-color: #1d222d;
596โ color: #f0f0f0;
597โ}
598โ@media (prefers-color-scheme: dark) {
599โ .footer {
600โ background-color: #1d222d;
601โ color: #f0f0f0;
602โ }
603โ}
604โ.footer * {
605โ margin-bottom: 0;
606โ}
607โ/* Section: Element Styles
608โ *
609โ * Have as few of these as possible and keep them general, because they will
610โ * influence every component hereafter.
611โ * ========================================================================== */
612โ:target {
613โ background-color: #f1f5f9;
614โ}
615โ@media (prefers-color-scheme: dark) {
616โ :target {
617โ background-color: #232327;
618โ }
619โ}
620โa,
621โa:visited {
622โ color: #c4953a;
623โ text-decoration: none;
624โ font-weight: bold;
625โ}
626โ@media (prefers-color-scheme: dark) {
627โ a,
628โ a:visited {
629โ color: #d8ac55;
630โ }
631โ}
632โa:hover {
633โ color: #7b5904;
634โ text-decoration: none;
635โ}
636โ@media (prefers-color-scheme: dark) {
637โ a:hover {
638โ color: #f0dcab;
639โ }
640โ}
641โcode,
642โpre {
643โ background-color: #f1f5f9;
644โ border-radius: 3px;
645โ color: #194a5b;
646โ font-family: "Roboto Mono", monospace;
647โ font-size: 87.5%;
648โ}
649โ@media (prefers-color-scheme: dark) {
650โ code,
651โ pre {
652โ background-color: #232327;
653โ color: #c1d3da;
654โ }
655โ}
656โ:target code,
657โ:target pre {
658โ background-color: #dfe8f1;
659โ}
660โ@media (prefers-color-scheme: dark) {
661โ :target code,
662โ :target pre {
663โ background-color: #2f2f34;
664โ }
665โ}
666โcode {
667โ padding: 0.2em 0;
668โ margin: 0;
669โ white-space: pre-wrap;
670โ word-wrap: break-word;
671โ}
672โcode::before,
673โcode::after {
674โ letter-spacing: -0.2em;
675โ content: "\00a0";
676โ}
677โa > code {
678โ font-weight: normal;
679โ}
680โa > code::before {
681โ content: "๐ก";
682โ letter-spacing: 0.33em;
683โ}
684โa:hover > code {
685โ color: #c4953a;
686โ}
687โ@media (prefers-color-scheme: dark) {
688โ a:hover > code {
689โ color: #d8ac55;
690โ }
691โ}
692โpre {
693โ margin-top: 0;
694โ margin-bottom: 0;
695โ padding: 1em 1.25rem;
696โ /* Using rem here to align with lists etc. */
697โ overflow: auto;
698โ white-space: pre;
699โ word-wrap: normal;
700โ}
701โpre code {
702โ background-color: transparent;
703โ border: 0;
704โ font-size: 100%;
705โ max-width: auto;
706โ padding: 0;
707โ margin: 0;
708โ overflow: visible;
709โ line-height: inherit;
710โ white-space: pre;
711โ word-break: normal;
712โ word-wrap: normal;
713โ}
714โpre code::before,
715โpre code::after {
716โ content: normal;
717โ}
718โh1 {
719โ font-size: 3.052em;
720โ font-weight: 300;
721โ letter-spacing: -0.5px;
722โ line-height: 1.125;
723โ margin-top: 1.563rem;
724โ margin-bottom: 1.25rem;
725โ}
726โ@media (min-width: 52em) {
727โ h1 {
728โ font-size: 3.814em;
729โ margin-top: 5.96rem;
730โ }
731โ}
732โh2 {
733โ font-size: 1.953em;
734โ font-weight: normal;
735โ line-height: 1.25;
736โ margin-top: 3.052rem;
737โ margin-bottom: 1rem;
738โ}
739โh3 {
740โ font-size: 1.563em;
741โ font-weight: normal;
742โ line-height: 1.25;
743โ margin-top: 2.441rem;
744โ margin-bottom: 1rem;
745โ}
746โh4 {
747โ font-size: 1.25em;
748โ font-weight: normal;
749โ margin-top: 2.441rem;
750โ margin-bottom: 1rem;
751โ}
752โh1 + h2,
753โh1 + h3,
754โh1 + h4,
755โh2 + h3,
756โh2 + h4,
757โh3 + h4 {
758โ margin-top: 1rem;
759โ}
760โhr {
761โ border: none;
762โ height: 1px;
763โ background-color: #cccccc;
764โ}
765โ@media (prefers-color-scheme: dark) {
766โ hr {
767โ background-color: #43434e;
768โ }
769โ}
770โimg {
771โ border-style: none;
772โ max-width: 100%;
773โ}
774โp {
775โ font-size: 1em;
776โ margin-top: 1rem;
777โ margin-bottom: 1rem;
778โ}
779โtable {
780โ border-bottom: 1px solid #cccccc;
781โ border-collapse: collapse;
782โ border-spacing: 0;
783โ margin-top: 1rem;
784โ margin-bottom: 1rem;
785โ width: 100%;
786โ}
787โ@media (prefers-color-scheme: dark) {
788โ table {
789โ border-bottom-color: #43434e;
790โ }
791โ}
792โtd,
793โth {
794โ text-align: left;
795โ padding: 0.41em 0.51em;
796โ}
797โtd {
798โ border-top: 1px solid #cccccc;
799โ}
800โ@media (prefers-color-scheme: dark) {
801โ td {
802โ border-top-color: #43434e;
803โ }
804โ}
805โtd:first-child,
806โth:first-child {
807โ padding-left: 0;
808โ}
809โtd:last-child,
810โth:last-child {
811โ padding-right: 0;
812โ}
813โul {
814โ list-style-type: none;
815โ margin-top: 1rem;
816โ margin-bottom: 1rem;
817โ padding-left: 0;
818โ}
819โul li {
820โ position: relative;
821โ padding-left: 1.25em;
822โ}
823โul li::before {
824โ position: absolute;
825โ color: #a0a0a0;
826โ content: "โ";
827โ display: inline-block;
828โ margin-left: -1.25em;
829โ width: 1.25em;
830โ}
831โ@media (prefers-color-scheme: dark) {
832โ ul li::before {
833โ color: #a0a0a0;
834โ }
835โ}
836โ/* Tying this tightly to ul at the moment because it's a slight variation thereof */
837โul.ul--search li::before {
838โ content: "โฒ";
839โ top: -0.2em;
840โ transform: rotate(-45deg);
841โ}
842โol {
843โ margin-top: 1rem;
844โ margin-bottom: 1rem;
845โ padding-left: 1.25em;
846โ}
847โol li {
848โ position: relative;
849โ padding-left: 0;
850โ}
851โ/* Section: Components
852โ * ========================================================================== */
853โ/* Component: Badge
854โ * -------------------------------------------------------------------------- */
855โ.badge {
856โ position: relative;
857โ top: -0.1em;
858โ display: inline-block;
859โ background-color: #000000;
860โ border-radius: 1.3em;
861โ color: #ffffff;
862โ font-size: 77%;
863โ font-weight: bold;
864โ line-height: 1.563;
865โ text-align: center;
866โ height: 1.5em;
867โ width: 1.5em;
868โ}
869โ@media (prefers-color-scheme: dark) {
870โ .badge {
871โ background-color: #dedede;
872โ color: #141417;
873โ }
874โ}
875โ.badge.badge--package {
876โ background-color: #c4953a;
877โ letter-spacing: -0.1em;
878โ}
879โ@media (prefers-color-scheme: dark) {
880โ .badge.badge--package {
881โ background-color: #d8ac55;
882โ }
883โ}
884โ.badge.badge--module {
885โ background-color: #75B134;
886โ}
887โ/* Component: Declarations
888โ * -------------------------------------------------------------------------- */
889โ.decl__title {
890โ position: relative;
891โ padding-bottom: 0.328em;
892โ margin-bottom: 0.262em;
893โ}
894โ.decl__source {
895โ display: block;
896โ float: right;
897โ font-size: 64%;
898โ position: relative;
899โ top: 0.57em;
900โ}
901โ.decl__anchor,
902โ.decl__anchor:visited {
903โ position: absolute;
904โ left: -0.8em;
905โ color: #bababa;
906โ}
907โ@media (prefers-color-scheme: dark) {
908โ .decl__anchor,
909โ .decl__anchor:visited {
910โ color: #878787;
911โ }
912โ}
913โ.decl__anchor:hover {
914โ color: #c4953a;
915โ}
916โ@media (prefers-color-scheme: dark) {
917โ .decl__anchor:hover {
918โ color: #d8ac55;
919โ }
920โ}
921โ.decl__signature {
922โ background-color: transparent;
923โ border-radius: 0;
924โ border-top: 1px solid #cccccc;
925โ border-bottom: 1px solid #cccccc;
926โ padding: 0;
927โ}
928โ@media (prefers-color-scheme: dark) {
929โ .decl__signature {
930โ border-top-color: #43434e;
931โ border-bottom-color: #43434e;
932โ }
933โ}
934โ.decl__signature code {
935โ display: block;
936โ padding: 0.328em 0;
937โ padding-left: 2.441em;
938โ text-indent: -2.441em;
939โ white-space: normal;
940โ}
941โ.decl__role {
942โ font-family: "Roboto", sans-serif;
943โ font-style: italic;
944โ font-weight: normal;
945โ}
946โ/* See https://stackoverflow.com/a/32162038
947โ Content licensed under CC BY-SA 3.0
948โ*/
949โ.decl__role_hover[title] {
950โ /* Remove line that appears under abbr element */
951โ border-bottom: none;
952โ text-decoration: none;
953โ /* Ensure cursor doesn't change to question mark */
954โ cursor: inherit;
955โ}
956โ.decl__role_nominal::after {
957โ content: "nominal";
958โ}
959โ.decl__role_phantom::after {
960โ content: "phantom";
961โ}
962โ.decl__kind {
963โ border-bottom: 1px solid #cccccc;
964โ}
965โ@media (prefers-color-scheme: dark) {
966โ .decl__kind {
967โ border-bottom-color: #43434e;
968โ }
969โ}
970โ:target .decl__signature,
971โ:target .decl__signature code {
972โ /* We want the background to be transparent, even when the parent is a target */
973โ background-color: transparent;
974โ}
975โ.decl__body .keyword,
976โ.decl__body .syntax {
977โ color: #0b71b4;
978โ}
979โ@media (prefers-color-scheme: dark) {
980โ .decl__body .keyword,
981โ .decl__body .syntax {
982โ color: #3796d5;
983โ }
984โ}
985โ.decl__child_comments {
986โ margin-top: 1rem;
987โ margin-bottom: 1rem;
988โ}
989โ/* Component: Dependency Link
990โ * -------------------------------------------------------------------------- */
991โ.deplink {
992โ /* Currently no root styles, but keep the class as a namespace */
993โ}
994โ.deplink__link {
995โ display: inline-block;
996โ margin-right: 0.41em;
997โ}
998โ.deplink__version {
999โ color: #666666;
1000โ display: inline-block;
1001โ font-size: 0.8em;
1002โ line-height: 1;
1003โ}
1004โ@media (prefers-color-scheme: dark) {
1005โ .deplink__version {
1006โ color: #a0a0a0;
1007โ }
1008โ}
1009โ/* Component: Grouped List
1010โ * -------------------------------------------------------------------------- */
1011โ.grouped-list {
1012โ border-top: 1px solid #cccccc;
1013โ margin: 0 0 2.44em 0;
1014โ}
1015โ@media (prefers-color-scheme: dark) {
1016โ .grouped-list {
1017โ border-top-color: #43434e;
1018โ }
1019โ}
1020โ.grouped-list__title {
1021โ color: #666666;
1022โ font-size: 0.8em;
1023โ font-weight: 300;
1024โ letter-spacing: 1px;
1025โ margin: 0.8em 0 -0.1em 0;
1026โ text-transform: uppercase;
1027โ}
1028โ@media (prefers-color-scheme: dark) {
1029โ .grouped-list__title {
1030โ border-top-color: #a0a0a0;
1031โ }
1032โ}
1033โ.grouped-list__item {
1034โ margin: 0;
1035โ}
1036โ/* Component: Message
1037โ * -------------------------------------------------------------------------- */
1038โ.message {
1039โ border: 5px solid;
1040โ border-radius: 5px;
1041โ padding: 1em !important;
1042โ}
1043โ.message.message--error {
1044โ background-color: #fff0f0;
1045โ border-color: #c85050;
1046โ}
1047โ@media (prefers-color-scheme: dark) {
1048โ .message.message--error {
1049โ background-color: #6b0e0e;
1050โ border-color: #c85050;
1051โ }
1052โ}
1053โ.message.message--not-available {
1054โ background-color: #f0f096;
1055โ border-color: #e3e33d;
1056โ}
1057โ@media (prefers-color-scheme: dark) {
1058โ .message.message--not-available {
1059โ background-color: #56560b;
1060โ border-color: #b0b017;
1061โ }
1062โ}
1063โ/* Component: Multi Col
1064โ * Multiple columns side by side
1065โ * -------------------------------------------------------------------------- */
1066โ.multi-col {
1067โ margin-bottom: 2.44em;
1068โ}
1069โ.multi-col__col {
1070โ display: block;
1071โ padding-right: 1em;
1072โ position: relative;
1073โ width: 100%;
1074โ}
1075โ@media (min-width: 38em) and (max-width: 51.999999em) {
1076โ .multi-col__col {
1077โ float: left;
1078โ width: 50%;
1079โ }
1080โ .multi-col__col:nth-child(2n+3) {
1081โ clear: both;
1082โ }
1083โ}
1084โ@media (min-width: 52em) {
1085โ .multi-col__col {
1086โ float: left;
1087โ width: 33.333333%;
1088โ }
1089โ .multi-col__col:nth-child(3n+4) {
1090โ clear: both;
1091โ }
1092โ}
1093โ/* Component: Page Title
1094โ * -------------------------------------------------------------------------- */
1095โ.page-title {
1096โ margin: 4.77em 0 1.56em;
1097โ padding-bottom: 1.25em;
1098โ position: relative;
1099โ}
1100โ.page-title__title {
1101โ margin: 0 0 0 -0.05em;
1102โ /* Visually align on left edge */
1103โ}
1104โ.page-title__label {
1105โ position: relative;
1106โ color: #666666;
1107โ font-size: 0.8rem;
1108โ font-weight: 300;
1109โ letter-spacing: 1px;
1110โ margin-bottom: -0.8em;
1111โ text-transform: uppercase;
1112โ z-index: 1;
1113โ}
1114โ@media (prefers-color-scheme: dark) {
1115โ .page-title__label {
1116โ color: #a0a0a0;
1117โ }
1118โ}
1119โ/* Component: Top Banner
1120โ * -------------------------------------------------------------------------- */
1121โ.top-banner {
1122โ background-color: #1d222d;
1123โ color: #f0f0f0;
1124โ font-weight: normal;
1125โ}
1126โ@media (prefers-color-scheme: dark) {
1127โ .top-banner {
1128โ background-color: #1d222d;
1129โ color: #f0f0f0;
1130โ }
1131โ}
1132โ.top-banner__logo,
1133โ.top-banner__logo:visited {
1134โ float: left;
1135โ color: #f0f0f0;
1136โ font-size: 2.44em;
1137โ font-weight: 300;
1138โ line-height: 90px;
1139โ margin: 0;
1140โ}
1141โ@media (prefers-color-scheme: dark) {
1142โ .top-banner__logo,
1143โ .top-banner__logo:visited {
1144โ color: #f0f0f0;
1145โ }
1146โ}
1147โ.top-banner__logo:hover {
1148โ color: #c4953a;
1149โ text-decoration: none;
1150โ}
1151โ.top-banner__form {
1152โ margin-bottom: 1.25em;
1153โ}
1154โ.top-banner__form input {
1155โ border: 1px solid #1d222d;
1156โ border-radius: 3px;
1157โ background-color: #ffffff;
1158โ color: #1d222d;
1159โ font-weight: 300;
1160โ line-height: 2;
1161โ padding: 0.21em 0.512em;
1162โ width: 100%;
1163โ}
1164โ@media (prefers-color-scheme: dark) {
1165โ .top-banner__form input {
1166โ border-color: #1d222d;
1167โ background-color: #141417;
1168โ color: #dedede;
1169โ }
1170โ}
1171โ.top-banner__actions {
1172โ float: right;
1173โ text-align: right;
1174โ}
1175โ.top-banner__actions__item {
1176โ display: inline-block;
1177โ line-height: 90px;
1178โ margin: 0;
1179โ padding-left: 1.25em;
1180โ}
1181โ.top-banner__actions__item:first-child {
1182โ padding-left: 0;
1183โ}
1184โ.top-banner__actions__item a,
1185โ.top-banner__actions__item a:visited {
1186โ color: #f0f0f0;
1187โ}
1188โ@media (prefers-color-scheme: dark) {
1189โ .top-banner__actions__item a,
1190โ .top-banner__actions__item a:visited {
1191โ color: #f0f0f0;
1192โ }
1193โ}
1194โ.top-banner__actions__item a:hover {
1195โ color: #c4953a;
1196โ}
1197โ@media (prefers-color-scheme: dark) {
1198โ .top-banner__actions__item a:hover {
1199โ color: #d8ac55;
1200โ }
1201โ}
1202โ@media (min-width: 38em) {
1203โ .top-banner__logo {
1204โ float: left;
1205โ width: 25%;
1206โ }
1207โ .top-banner__form {
1208โ float: left;
1209โ line-height: 90px;
1210โ margin-bottom: 0;
1211โ width: 50%;
1212โ }
1213โ .top-banner__actions {
1214โ float: right;
1215โ width: 25%;
1216โ }
1217โ}
1218โ/* Component: Search Results
1219โ * -------------------------------------------------------------------------- */
1220โ.result.result--empty {
1221โ font-size: 1.25em;
1222โ}
1223โ.result__title {
1224โ font-size: 1.25em;
1225โ margin-bottom: 0.2rem;
1226โ}
1227โ.result__badge {
1228โ margin-left: -0.1em;
1229โ}
1230โ.result__body > *:first-child {
1231โ margin-top: 0!important;
1232โ}
1233โ.result__body > *:last-child {
1234โ margin-bottom: 0!important;
1235โ}
1236โ.result__signature {
1237โ background-color: transparent;
1238โ border-radius: 0;
1239โ border-top: 1px solid #cccccc;
1240โ border-bottom: 1px solid #cccccc;
1241โ padding: 0.328em 0;
1242โ}
1243โ@media (prefers-color-scheme: dark) {
1244โ .result__signature {
1245โ border-top-color: #43434e;
1246โ border-bottom-color: #43434e;
1247โ }
1248โ}
1249โ.result__signature code {
1250โ display: block;
1251โ padding-left: 2.441em;
1252โ text-indent: -2.441em;
1253โ white-space: normal;
1254โ}
1255โ.result__actions {
1256โ margin-top: 0.2rem;
1257โ}
1258โ.result__actions__item {
1259โ font-size: 80%;
1260โ}
1261โ.result__actions__item + .result__actions__item {
1262โ margin-left: 0.65em;
1263โ}
1264โ/* Component: Version Selector
1265โ * -------------------------------------------------------------------------- */
1266โ.version-selector {
1267โ margin-bottom: 0.8em;
1268โ}
1269โ@media (min-width: 38em) {
1270โ .version-selector {
1271โ position: absolute;
1272โ top: 0.8em;
1273โ right: 0;
1274โ margin-bottom: 0;
1275โ }
1276โ}
1277โ/* Section: FIXME
1278โ * These styles should be cleaned up
1279โ * ========================================================================== */
1280โ/* Help paragraphs */
1281โ.help {
1282โ padding: 5px 0;
1283โ}
1284โ.help h3 {
1285โ /* FIXME: target with class */
1286โ margin-top: 16px;
1287โ}
1288โ/* Section: Markdown
1289โ * Github rendered README
1290โ * ========================================================================== */
1291โ.markdown-body {
1292โ /*
1293โ Useful for narrow screens, such as mobiles. Documentation often contains URLs
1294โ which would otherwise force the page to become wider, and force creation of
1295โ horizontal scrollbars. Yuck.
1296โ */
1297โ word-wrap: break-word;
1298โ}
1299โ.markdown-body > *:first-child {
1300โ margin-top: 0 !important;
1301โ}
1302โ.markdown-body > *:last-child {
1303โ margin-bottom: 0 !important;
1304โ}
1305โ.markdown-body a:not([href]) {
1306โ color: inherit;
1307โ text-decoration: none;
1308โ}
1309โ.markdown-body blockquote {
1310โ margin: 0;
1311โ padding: 0 1em;
1312โ color: #777;
1313โ border-left: 0.25em solid #ddd;
1314โ}
1315โ@media (prefers-color-scheme: dark) {
1316โ .markdown-body blockquote {
1317โ border-left-color: #444;
1318โ }
1319โ}
1320โ.markdown-body blockquote > :first-child {
1321โ margin-top: 0;
1322โ}
1323โ.markdown-body blockquote > :last-child {
1324โ margin-bottom: 0;
1325โ}
1326โ.markdown-body .anchor {
1327โ /* We hide the anchor because the link doesn't point to a valid location */
1328โ display: none;
1329โ}
1330โ.markdown-body .pl-k {
1331โ /* Keyword */
1332โ color: #a0a0a0;
1333โ}
1334โ@media (prefers-color-scheme: dark) {
1335โ .markdown-body .pl-k {
1336โ color: #676767;
1337โ }
1338โ}
1339โ.markdown-body .pl-c1,
1340โ.markdown-body .pl-en {
1341โ /* Not really sure what this is */
1342โ color: #39d;
1343โ}
1344โ.markdown-body .pl-s {
1345โ /* String literals */
1346โ color: #1a1;
1347โ}
1348โ.markdown-body .pl-cce {
1349โ /* String literal escape sequences */
1350โ color: #921;
1351โ}
1352โ.markdown-body .pl-smi {
1353โ /* type variables? */
1354โ color: #62b;
1355โ}
1356โ</style></head><body><div class="everything-except-footer"><div class="top-banner clearfix"><div class="container clearfix"><div style="float: left; font-size: 2.44em; font-weight: 300; line-height: 90px; margin: 0">PureScript API documentation</div><div class="top-banner__actions"><div class="top-banner__actions__item"><a href="index.html">Index</a></div></div></div></div><main class="container clearfix" role="main"><div class="page-title clearfix"><div class="page-title__label">Module</div><h1 class="page-title__title">Bolson.Core</h1></div><div class="col col--main"><div class="decl" id="t:Element"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#t:Element">#</a><span>Element</span> </h3><div class="decl__body"><pre class="decl__signature"><code class="decl__kind"><span class="keyword">newtype</span> <a href="Bolson.Core.html#t:Element" title="Bolson.Core.Element"><span class="ctor">Element</span></a> <span class="syntax">::</span> <a href="Prim.html#t:Type" title="Prim.Type"><span class="ctor">Type</span></a> <span class="syntax">-></span> <a href="Prim.html#t:Row" title="Prim.Row"><span class="ctor">Row</span></a> <a href="Prim.html#t:Type" title="Prim.Type"><span class="ctor">Type</span></a> <span class="syntax">-></span> <a href="Prim.html#t:Type" title="Prim.Type"><span class="ctor">Type</span></a> <span class="syntax">-></span> <a href="Prim.html#t:Type" title="Prim.Type"><span class="ctor">Type</span></a></code><code><span class="keyword">newtype</span> <a href="Bolson.Core.html#t:Element" title="Bolson.Core.Element"><span class="ctor">Element</span></a> interpreter r payload</code></pre><h4>Constructors</h4><ul><li id="v:Element"><code><a href="Bolson.Core.html#v:Element" title="Bolson.Core.Element"><span class="ctor">Element</span></a> <span class="syntax">(</span><a href="Bolson.Core.html#t:PSR" title="Bolson.Core.PSR"><span class="ctor">PSR</span></a> r <span class="syntax">-></span> interpreter <span class="syntax">-></span> <a href="FRP.Event.html#t:Event" title="FRP.Event.Event"><span class="ctor">Event</span></a> payload<span class="syntax">)</span></code></li></ul></div></div><div class="decl" id="t:Child"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#t:Child">#</a><span>Child</span> </h3><div class="decl__body"><pre class="decl__signature"><code><span class="keyword">data</span> <a href="Bolson.Core.html#t:Child" title="Bolson.Core.Child"><span class="ctor">Child</span></a> <span class="syntax">(</span>logic <span class="syntax">::</span> <a href="Prim.html#t:Type" title="Prim.Type"><span class="ctor">Type</span></a><span class="syntax">)</span> <span class="syntax">(</span>obj <span class="syntax">::</span> <a href="Prim.html#t:Type" title="Prim.Type"><span class="ctor">Type</span></a><span class="syntax">)</span></code></pre><h4>Constructors</h4><ul><li id="v:Insert"><code><a href="Bolson.Core.html#v:Insert" title="Bolson.Core.Insert"><span class="ctor">Insert</span></a> <span class="syntax">(</span><a href="Bolson.Core.html#t:Entity" title="Bolson.Core.Entity"><span class="ctor">Entity</span></a> logic obj<span class="syntax">)</span></code></li><li id="v:Remove"><code><a href="Bolson.Core.html#v:Remove" title="Bolson.Core.Remove"><span class="ctor">Remove</span></a></code></li><li id="v:Logic"><code><a href="Bolson.Core.html#v:Logic" title="Bolson.Core.Logic"><span class="ctor">Logic</span></a> logic</code></li></ul></div></div><div class="decl" id="t:DynamicChildren"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#t:DynamicChildren">#</a><span>DynamicChildren</span> </h3><div class="decl__body"><pre class="decl__signature"><code><span class="keyword">newtype</span> <a href="Bolson.Core.html#t:DynamicChildren" title="Bolson.Core.DynamicChildren"><span class="ctor">DynamicChildren</span></a> logic obj</code></pre><h4>Constructors</h4><ul><li id="v:DynamicChildren"><code><a href="Bolson.Core.html#v:DynamicChildren" title="Bolson.Core.DynamicChildren"><span class="ctor">DynamicChildren</span></a> <span class="syntax">(</span><a href="FRP.Event.html#t:Event" title="FRP.Event.Event"><span class="ctor">Event</span></a> <span class="syntax">(</span><a href="FRP.Event.html#t:Event" title="FRP.Event.Event"><span class="ctor">Event</span></a> <span class="syntax">(</span><a href="Bolson.Core.html#t:Child" title="Bolson.Core.Child"><span class="ctor">Child</span></a> logic obj<span class="syntax">)</span><span class="syntax">)</span><span class="syntax">)</span></code></li></ul></div></div><div class="decl" id="t:FixedChildren"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#t:FixedChildren">#</a><span>FixedChildren</span> </h3><div class="decl__body"><pre class="decl__signature"><code><span class="keyword">newtype</span> <a href="Bolson.Core.html#t:FixedChildren" title="Bolson.Core.FixedChildren"><span class="ctor">FixedChildren</span></a> logic obj</code></pre><h4>Constructors</h4><ul><li id="v:FixedChildren"><code><a href="Bolson.Core.html#v:FixedChildren" title="Bolson.Core.FixedChildren"><span class="ctor">FixedChildren</span></a> <span class="syntax">(</span><a href="Prim.html#t:Array" title="Prim.Array"><span class="ctor">Array</span></a> <span class="syntax">(</span><a href="Bolson.Core.html#t:Entity" title="Bolson.Core.Entity"><span class="ctor">Entity</span></a> logic obj<span class="syntax">)</span><span class="syntax">)</span></code></li></ul></div></div><div class="decl" id="t:EventfulElement"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#t:EventfulElement">#</a><span>EventfulElement</span> </h3><div class="decl__body"><pre class="decl__signature"><code><span class="keyword">newtype</span> <a href="Bolson.Core.html#t:EventfulElement" title="Bolson.Core.EventfulElement"><span class="ctor">EventfulElement</span></a> logic obj</code></pre><h4>Constructors</h4><ul><li id="v:EventfulElement"><code><a href="Bolson.Core.html#v:EventfulElement" title="Bolson.Core.EventfulElement"><span class="ctor">EventfulElement</span></a> <span class="syntax">(</span><a href="FRP.Event.html#t:Event" title="FRP.Event.Event"><span class="ctor">Event</span></a> <span class="syntax">(</span><a href="Bolson.Core.html#t:Entity" title="Bolson.Core.Entity"><span class="ctor">Entity</span></a> logic obj<span class="syntax">)</span><span class="syntax">)</span></code></li></ul></div></div><div class="decl" id="t:Scope"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#t:Scope">#</a><span>Scope</span> </h3><div class="decl__body"><pre class="decl__signature"><code><span class="keyword">data</span> <a href="Bolson.Core.html#t:Scope" title="Bolson.Core.Scope"><span class="ctor">Scope</span></a></code></pre><h4>Constructors</h4><ul><li id="v:Local"><code><a href="Bolson.Core.html#v:Local" title="Bolson.Core.Local"><span class="ctor">Local</span></a> <a href="Prim.html#t:String" title="Prim.String"><span class="ctor">String</span></a></code></li><li id="v:Global"><code><a href="Bolson.Core.html#v:Global" title="Bolson.Core.Global"><span class="ctor">Global</span></a></code></li></ul><h4>Instances</h4><ul><li id="v:<anonymous>"><code><a href="Data.Eq.html#t:Eq" title="Data.Eq.Eq"><span class="ctor">Eq</span></a> <a href="Bolson.Core.html#t:Scope" title="Bolson.Core.Scope"><span class="ctor">Scope</span></a></code></li><li id="v:<anonymous>"><code><a href="Data.Ord.html#t:Ord" title="Data.Ord.Ord"><span class="ctor">Ord</span></a> <a href="Bolson.Core.html#t:Scope" title="Bolson.Core.Scope"><span class="ctor">Scope</span></a></code></li></ul></div></div><div class="decl" id="t:PSR"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#t:PSR">#</a><span>PSR</span> </h3><div class="decl__body"><pre class="decl__signature"><code class="decl__kind"><span class="keyword">type</span> <a href="Bolson.Core.html#t:PSR" title="Bolson.Core.PSR"><span class="ctor">PSR</span></a> <span class="syntax">::</span> <a href="Prim.html#t:Row" title="Prim.Row"><span class="ctor">Row</span></a> <a href="Prim.html#t:Type" title="Prim.Type"><span class="ctor">Type</span></a> <span class="syntax">-></span> <a href="Prim.html#t:Type" title="Prim.Type"><span class="ctor">Type</span></a></code><code><span class="keyword">type</span> <a href="Bolson.Core.html#t:PSR" title="Bolson.Core.PSR"><span class="ctor">PSR</span></a> r <span class="syntax">=</span> <span class="syntax">{</span> parent <span class="syntax">::</span> <a href="Data.Maybe.html#t:Maybe" title="Data.Maybe.Maybe"><span class="ctor">Maybe</span></a> <a href="Prim.html#t:String" title="Prim.String"><span class="ctor">String</span></a><span class="syntax">,</span> raiseId <span class="syntax">::</span> <a href="Prim.html#t:String" title="Prim.String"><span class="ctor">String</span></a> <span class="syntax">-></span> <a href="Control.Monad.ST.Internal.html#t:ST" title="Control.Monad.ST.Internal.ST"><span class="ctor">ST</span></a> <a href="Control.Monad.ST.Global.html#t:Global" title="Control.Monad.ST.Global.Global"><span class="ctor">Global</span></a> <a href="Data.Unit.html#t:Unit" title="Data.Unit.Unit"><span class="ctor">Unit</span></a><span class="syntax">,</span> scope <span class="syntax">::</span> <a href="Bolson.Core.html#t:Scope" title="Bolson.Core.Scope"><span class="ctor">Scope</span></a> <span class="syntax">|</span> r <span class="syntax">}</span></code></pre></div></div><div class="decl" id="t:Entity"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#t:Entity">#</a><span>Entity</span> </h3><div class="decl__body"><pre class="decl__signature"><code><span class="keyword">data</span> <a href="Bolson.Core.html#t:Entity" title="Bolson.Core.Entity"><span class="ctor">Entity</span></a> logic obj</code></pre><h4>Constructors</h4><ul><li id="v:DynamicChildren'"><code><a href="Bolson.Core.html#v:DynamicChildren'" title="Bolson.Core.DynamicChildren'"><span class="ctor">DynamicChildren'</span></a> <span class="syntax">(</span><a href="Bolson.Core.html#t:DynamicChildren" title="Bolson.Core.DynamicChildren"><span class="ctor">DynamicChildren</span></a> logic obj<span class="syntax">)</span></code></li><li id="v:FixedChildren'"><code><a href="Bolson.Core.html#v:FixedChildren'" title="Bolson.Core.FixedChildren'"><span class="ctor">FixedChildren'</span></a> <span class="syntax">(</span><a href="Bolson.Core.html#t:FixedChildren" title="Bolson.Core.FixedChildren"><span class="ctor">FixedChildren</span></a> logic obj<span class="syntax">)</span></code></li><li id="v:EventfulElement'"><code><a href="Bolson.Core.html#v:EventfulElement'" title="Bolson.Core.EventfulElement'"><span class="ctor">EventfulElement'</span></a> <span class="syntax">(</span><a href="Bolson.Core.html#t:EventfulElement" title="Bolson.Core.EventfulElement"><span class="ctor">EventfulElement</span></a> logic obj<span class="syntax">)</span></code></li><li id="v:Element'"><code><a href="Bolson.Core.html#v:Element'" title="Bolson.Core.Element'"><span class="ctor">Element'</span></a> obj</code></li></ul></div></div><div class="decl" id="v:fixed"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:fixed">#</a><span>fixed</span> </h3><div class="decl__body"><pre class="decl__signature"><code><a href="Bolson.Core.html#v:fixed" title="Bolson.Core.fixed"><span class="ident">fixed</span></a> <span class="syntax">::</span> <span class="keyword">forall</span> <span class="syntax"></span>logic <span class="syntax"></span>obj<span class="syntax">.</span> <a href="Prim.html#t:Array" title="Prim.Array"><span class="ctor">Array</span></a> <span class="syntax">(</span><a href="Bolson.Core.html#t:Entity" title="Bolson.Core.Entity"><span class="ctor">Entity</span></a> logic obj<span class="syntax">)</span> <span class="syntax">-></span> <a href="Bolson.Core.html#t:Entity" title="Bolson.Core.Entity"><span class="ctor">Entity</span></a> logic obj</code></pre></div></div><div class="decl" id="v:dyn"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:dyn">#</a><span>dyn</span> </h3><div class="decl__body"><pre class="decl__signature"><code><a href="Bolson.Core.html#v:dyn" title="Bolson.Core.dyn"><span class="ident">dyn</span></a> <span class="syntax">::</span> <span class="keyword">forall</span> <span class="syntax"></span>logic <span class="syntax"></span>obj<span class="syntax">.</span> <a href="FRP.Event.html#t:Event" title="FRP.Event.Event"><span class="ctor">Event</span></a> <span class="syntax">(</span><a href="FRP.Event.html#t:Event" title="FRP.Event.Event"><span class="ctor">Event</span></a> <span class="syntax">(</span><a href="Bolson.Core.html#t:Child" title="Bolson.Core.Child"><span class="ctor">Child</span></a> logic obj<span class="syntax">)</span><span class="syntax">)</span> <span class="syntax">-></span> <a href="Bolson.Core.html#t:Entity" title="Bolson.Core.Entity"><span class="ctor">Entity</span></a> logic obj</code></pre></div></div><div class="decl" id="v:envy"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:envy">#</a><span>envy</span> </h3><div class="decl__body"><pre class="decl__signature"><code><a href="Bolson.Core.html#v:envy" title="Bolson.Core.envy"><span class="ident">envy</span></a> <span class="syntax">::</span> <span class="keyword">forall</span> <span class="syntax"></span>logic <span class="syntax"></span>obj<span class="syntax">.</span> <a href="FRP.Event.html#t:Event" title="FRP.Event.Event"><span class="ctor">Event</span></a> <span class="syntax">(</span><a href="Bolson.Core.html#t:Entity" title="Bolson.Core.Entity"><span class="ctor">Entity</span></a> logic obj<span class="syntax">)</span> <span class="syntax">-></span> <a href="Bolson.Core.html#t:Entity" title="Bolson.Core.Entity"><span class="ctor">Entity</span></a> logic obj</code></pre></div></div><div class="decl" id="v:bussed"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:bussed">#</a><span>bussed</span> </h3><div class="decl__body"><pre class="decl__signature"><code><a href="Bolson.Core.html#v:bussed" title="Bolson.Core.bussed"><span class="ident">bussed</span></a> <span class="syntax">::</span> <span class="keyword">forall</span> <span class="syntax"></span>logic <span class="syntax"></span>obj <span class="syntax"></span>a<span class="syntax">.</span> <span class="syntax">(</span><span class="syntax">(</span>a <span class="syntax">-></span> <a href="Effect.html#t:Effect" title="Effect.Effect"><span class="ctor">Effect</span></a> <a href="Data.Unit.html#t:Unit" title="Data.Unit.Unit"><span class="ctor">Unit</span></a><span class="syntax">)</span> <span class="syntax">-></span> <a href="FRP.Event.html#t:Event" title="FRP.Event.Event"><span class="ctor">Event</span></a> a <span class="syntax">-></span> <a href="Bolson.Core.html#t:Entity" title="Bolson.Core.Entity"><span class="ctor">Entity</span></a> logic obj<span class="syntax">)</span> <span class="syntax">-></span> <a href="Bolson.Core.html#t:Entity" title="Bolson.Core.Entity"><span class="ctor">Entity</span></a> logic obj</code></pre></div></div><div class="decl" id="v:vbussed"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:vbussed">#</a><span>vbussed</span> </h3><div class="decl__body"><pre class="decl__signature"><code><a href="Bolson.Core.html#v:vbussed" title="Bolson.Core.vbussed"><span class="ident">vbussed</span></a> <span class="syntax">::</span> <span class="keyword">forall</span> <span class="syntax"></span>logic <span class="syntax"></span>obj <span class="syntax"></span>rbus <span class="syntax"></span>bus <span class="syntax"></span>push <span class="syntax"></span>event<span class="syntax">.</span> <a href="Prim.RowList.html#t:RowToList" title="Prim.RowList.RowToList"><span class="ctor">RowToList</span></a> bus rbus <span class="syntax">=></span> <a href="FRP.Event.VBus.html#t:VBus" title="FRP.Event.VBus.VBus"><span class="ctor">VBus</span></a> rbus push event <span class="syntax">=></span> <a href="Type.Proxy.html#t:Proxy" title="Type.Proxy.Proxy"><span class="ctor">Proxy</span></a> <span class="syntax">(</span><a href="FRP.Event.VBus.html#t:V" title="FRP.Event.VBus.V"><span class="ctor">V</span></a> bus<span class="syntax">)</span> <span class="syntax">-></span> <span class="syntax">(</span><a href="Prim.html#t:Record" title="Prim.Record"><span class="ctor">Record</span></a> push <span class="syntax">-></span> <a href="Prim.html#t:Record" title="Prim.Record"><span class="ctor">Record</span></a> event <span class="syntax">-></span> <a href="Bolson.Core.html#t:Entity" title="Bolson.Core.Entity"><span class="ctor">Entity</span></a> logic obj<span class="syntax">)</span> <span class="syntax">-></span> <a href="Bolson.Core.html#t:Entity" title="Bolson.Core.Entity"><span class="ctor">Entity</span></a> logic obj</code></pre></div></div></div><div class="col col--aside"><h3>Modules</h3><ul><li><a href="Ansi.Codes.html">Ansi.Codes</a></li><li><a href="Ansi.Output.html">Ansi.Output</a></li><li><a href="Bolson.Control.html">Bolson.Control</a></li><li><a href="Bolson.Core.html">Bolson.Core</a></li><li><a href="Control.Alt.html">Control.Alt</a></li><li><a href="Control.Alternative.html">Control.Alternative</a></li><li><a href="Control.Applicative.html">Control.Applicative</a></li><li><a href="Control.Apply.html">Control.Apply</a></li><li><a href="Control.Biapplicative.html">Control.Biapplicative</a></li><li><a href="Control.Biapply.html">Control.Biapply</a></li><li><a href="Control.Bind.html">Control.Bind</a></li><li><a href="Control.Category.html">Control.Category</a></li><li><a href="Control.Comonad.html">Control.Comonad</a></li><li><a href="Control.Comonad.Cofree.html">Control.Comonad.Cofree</a></li><li><a href="Control.Comonad.Cofree.Class.html">Control.Comonad.Cofree.Class</a></li><li><a href="Control.Comonad.Env.html">Control.Comonad.Env</a></li><li><a href="Control.Comonad.Env.Class.html">Control.Comonad.Env.Class</a></li><li><a href="Control.Comonad.Env.Trans.html">Control.Comonad.Env.Trans</a></li><li><a href="Control.Comonad.Store.html">Control.Comonad.Store</a></li><li><a href="Control.Comonad.Store.Class.html">Control.Comonad.Store.Class</a></li><li><a href="Control.Comonad.Store.Trans.html">Control.Comonad.Store.Trans</a></li><li><a href="Control.Comonad.Traced.html">Control.Comonad.Traced</a></li><li><a href="Control.Comonad.Traced.Class.html">Control.Comonad.Traced.Class</a></li><li><a href="Control.Comonad.Traced.Trans.html">Control.Comonad.Traced.Trans</a></li><li><a href="Control.Comonad.Trans.Class.html">Control.Comonad.Trans.Class</a></li><li><a href="Control.Extend.html">Control.Extend</a></li><li><a href="Control.Lazy.html">Control.Lazy</a></li><li><a href="Control.Monad.html">Control.Monad</a></li><li><a href="Control.Monad.Cont.html">Control.Monad.Cont</a></li><li><a href="Control.Monad.Cont.Class.html">Control.Monad.Cont.Class</a></li><li><a href="Control.Monad.Cont.Trans.html">Control.Monad.Cont.Trans</a></li><li><a href="Control.Monad.Error.Class.html">Control.Monad.Error.Class</a></li><li><a href="Control.Monad.Except.html">Control.Monad.Except</a></li><li><a href="Control.Monad.Except.Trans.html">Control.Monad.Except.Trans</a></li><li><a href="Control.Monad.Fork.Class.html">Control.Monad.Fork.Class</a></li><li><a href="Control.Monad.Free.html">Control.Monad.Free</a></li><li><a href="Control.Monad.Free.Class.html">Control.Monad.Free.Class</a></li><li><a href="Control.Monad.Gen.html">Control.Monad.Gen</a></li><li><a href="Control.Monad.Gen.Class.html">Control.Monad.Gen.Class</a></li><li><a href="Control.Monad.Gen.Common.html">Control.Monad.Gen.Common</a></li><li><a href="Control.Monad.Identity.Trans.html">Control.Monad.Identity.Trans</a></li><li><a href="Control.Monad.List.Trans.html">Control.Monad.List.Trans</a></li><li><a href="Control.Monad.Maybe.Trans.html">Control.Monad.Maybe.Trans</a></li><li><a href="Control.Monad.Morph.html">Control.Monad.Morph</a></li><li><a href="Control.Monad.RWS.html">Control.Monad.RWS</a></li><li><a href="Control.Monad.RWS.Trans.html">Control.Monad.RWS.Trans</a></li><li><a href="Control.Monad.Reader.html">Control.Monad.Reader</a></li><li><a href="Control.Monad.Reader.Class.html">Control.Monad.Reader.Class</a></li><li><a href="Control.Monad.Reader.Trans.html">Control.Monad.Reader.Trans</a></li><li><a href="Control.Monad.Rec.Class.html">Control.Monad.Rec.Class</a></li><li><a href="Control.Monad.ST.html">Control.Monad.ST</a></li><li><a href="Control.Monad.ST.Class.html">Control.Monad.ST.Class</a></li><li><a href="Control.Monad.ST.Global.html">Control.Monad.ST.Global</a></li><li><a href="Control.Monad.ST.Internal.html">Control.Monad.ST.Internal</a></li><li><a href="Control.Monad.ST.Ref.html">Control.Monad.ST.Ref</a></li><li><a href="Control.Monad.ST.Uncurried.html">Control.Monad.ST.Uncurried</a></li><li><a href="Control.Monad.State.html">Control.Monad.State</a></li><li><a href="Control.Monad.State.Class.html">Control.Monad.State.Class</a></li><li><a href="Control.Monad.State.Trans.html">Control.Monad.State.Trans</a></li><li><a href="Control.Monad.Trampoline.html">Control.Monad.Trampoline</a></li><li><a href="Control.Monad.Trans.Class.html">Control.Monad.Trans.Class</a></li><li><a href="Control.Monad.Writer.html">Control.Monad.Writer</a></li><li><a href="Control.Monad.Writer.Class.html">Control.Monad.Writer.Class</a></li><li><a href="Control.Monad.Writer.Trans.html">Control.Monad.Writer.Trans</a></li><li><a href="Control.MonadPlus.html">Control.MonadPlus</a></li><li><a href="Control.Parallel.html">Control.Parallel</a></li><li><a href="Control.Parallel.Class.html">Control.Parallel.Class</a></li><li><a href="Control.Plus.html">Control.Plus</a></li><li><a href="Control.Semigroupoid.html">Control.Semigroupoid</a></li><li><a href="Data.Array.html">Data.Array</a></li><li><a href="Data.Array.NonEmpty.html">Data.Array.NonEmpty</a></li><li><a href="Data.Array.NonEmpty.Internal.html">Data.Array.NonEmpty.Internal</a></li><li><a href="Data.Array.Partial.html">Data.Array.Partial</a></li><li><a href="Data.Array.ST.html">Data.Array.ST</a></li><li><a href="Data.Array.ST.Iterator.html">Data.Array.ST.Iterator</a></li><li><a href="Data.Array.ST.Partial.html">Data.Array.ST.Partial</a></li><li><a href="Data.ArrayBuffer.Types.html">Data.ArrayBuffer.Types</a></li><li><a href="Data.Bifoldable.html">Data.Bifoldable</a></li><li><a href="Data.Bifunctor.html">Data.Bifunctor</a></li><li><a href="Data.Bifunctor.Join.html">Data.Bifunctor.Join</a></li><li><a href="Data.Bitraversable.html">Data.Bitraversable</a></li><li><a href="Data.Boolean.html">Data.Boolean</a></li><li><a href="Data.BooleanAlgebra.html">Data.BooleanAlgebra</a></li><li><a href="Data.Bounded.html">Data.Bounded</a></li><li><a href="Data.Bounded.Generic.html">Data.Bounded.Generic</a></li><li><a href="Data.CatList.html">Data.CatList</a></li><li><a href="Data.CatQueue.html">Data.CatQueue</a></li><li><a href="Data.Char.html">Data.Char</a></li><li><a href="Data.Char.Gen.html">Data.Char.Gen</a></li><li><a href="Data.CommutativeRing.html">Data.CommutativeRing</a></li><li><a href="Data.Compactable.html">Data.Compactable</a></li><li><a href="Data.Comparison.html">Data.Comparison</a></li><li><a href="Data.Const.html">Data.Const</a></li><li><a href="Data.Coyoneda.html">Data.Coyoneda</a></li><li><a href="Data.Date.html">Data.Date</a></li><li><a href="Data.Date.Component.html">Data.Date.Component</a></li><li><a href="Data.Date.Component.Gen.html">Data.Date.Component.Gen</a></li><li><a href="Data.Date.Gen.html">Data.Date.Gen</a></li><li><a href="Data.DateTime.html">Data.DateTime</a></li><li><a href="Data.DateTime.Gen.html">Data.DateTime.Gen</a></li><li><a href="Data.DateTime.Instant.html">Data.DateTime.Instant</a></li><li><a href="Data.Decidable.html">Data.Decidable</a></li><li><a href="Data.Decide.html">Data.Decide</a></li><li><a href="Data.Distributive.html">Data.Distributive</a></li><li><a href="Data.Divide.html">Data.Divide</a></li><li><a href="Data.Divisible.html">Data.Divisible</a></li><li><a href="Data.DivisionRing.html">Data.DivisionRing</a></li><li><a href="Data.Either.html">Data.Either</a></li><li><a href="Data.Either.Inject.html">Data.Either.Inject</a></li><li><a href="Data.Either.Nested.html">Data.Either.Nested</a></li><li><a href="Data.Enum.html">Data.Enum</a></li><li><a href="Data.Enum.Gen.html">Data.Enum.Gen</a></li><li><a href="Data.Enum.Generic.html">Data.Enum.Generic</a></li><li><a href="Data.Eq.html">Data.Eq</a></li><li><a href="Data.Eq.Generic.html">Data.Eq.Generic</a></li><li><a href="Data.Equivalence.html">Data.Equivalence</a></li><li><a href="Data.EuclideanRing.html">Data.EuclideanRing</a></li><li><a href="Data.Exists.html">Data.Exists</a></li><li><a href="Data.FastVect.Common.html">Data.FastVect.Common</a></li><li><a href="Data.FastVect.Common.Matrix.html">Data.FastVect.Common.Matrix</a></li><li><a href="Data.FastVect.FastVect.html">Data.FastVect.FastVect</a></li><li><a href="Data.FastVect.FastVect.Matrix.html">Data.FastVect.FastVect.Matrix</a></li><li><a href="Data.FastVect.MinLenVect.html">Data.FastVect.MinLenVect</a></li><li><a href="Data.FastVect.Sparse.Read.html">Data.FastVect.Sparse.Read</a></li><li><a href="Data.FastVect.Sparse.Write.html">Data.FastVect.Sparse.Write</a></li><li><a href="Data.Field.html">Data.Field</a></li><li><a href="Data.Filterable.html">Data.Filterable</a></li><li><a href="Data.Foldable.html">Data.Foldable</a></li><li><a href="Data.FoldableWithIndex.html">Data.FoldableWithIndex</a></li><li><a href="Data.Function.html">Data.Function</a></li><li><a href="Data.Function.Uncurried.html">Data.Function.Uncurried</a></li><li><a href="Data.Functor.html">Data.Functor</a></li><li><a href="Data.Functor.App.html">Data.Functor.App</a></li><li><a href="Data.Functor.Clown.html">Data.Functor.Clown</a></li><li><a href="Data.Functor.Compose.html">Data.Functor.Compose</a></li><li><a href="Data.Functor.Contravariant.html">Data.Functor.Contravariant</a></li><li><a href="Data.Functor.Coproduct.html">Data.Functor.Coproduct</a></li><li><a href="Data.Functor.Coproduct.Inject.html">Data.Functor.Coproduct.Inject</a></li><li><a href="Data.Functor.Coproduct.Nested.html">Data.Functor.Coproduct.Nested</a></li><li><a href="Data.Functor.Costar.html">Data.Functor.Costar</a></li><li><a href="Data.Functor.Flip.html">Data.Functor.Flip</a></li><li><a href="Data.Functor.Invariant.html">Data.Functor.Invariant</a></li><li><a href="Data.Functor.Joker.html">Data.Functor.Joker</a></li><li><a href="Data.Functor.Product.html">Data.Functor.Product</a></li><li><a href="Data.Functor.Product.Nested.html">Data.Functor.Product.Nested</a></li><li><a href="Data.Functor.Product2.html">Data.Functor.Product2</a></li><li><a href="Data.Functor.Variant.html">Data.Functor.Variant</a></li><li><a href="Data.FunctorWithIndex.html">Data.FunctorWithIndex</a></li><li><a href="Data.Generic.Rep.html">Data.Generic.Rep</a></li><li><a href="Data.HeytingAlgebra.html">Data.HeytingAlgebra</a></li><li><a href="Data.HeytingAlgebra.Generic.html">Data.HeytingAlgebra.Generic</a></li><li><a href="Data.Identity.html">Data.Identity</a></li><li><a href="Data.Int.html">Data.Int</a></li><li><a href="Data.Int.Bits.html">Data.Int.Bits</a></li><li><a href="Data.Interval.html">Data.Interval</a></li><li><a href="Data.Interval.Duration.html">Data.Interval.Duration</a></li><li><a href="Data.Interval.Duration.Iso.html">Data.Interval.Duration.Iso</a></li><li><a href="Data.JSDate.html">Data.JSDate</a></li><li><a href="Data.Lazy.html">Data.Lazy</a></li><li><a href="Data.List.html">Data.List</a></li><li><a href="Data.List.Internal.html">Data.List.Internal</a></li><li><a href="Data.List.Lazy.html">Data.List.Lazy</a></li><li><a href="Data.List.Lazy.NonEmpty.html">Data.List.Lazy.NonEmpty</a></li><li><a href="Data.List.Lazy.Types.html">Data.List.Lazy.Types</a></li><li><a href="Data.List.NonEmpty.html">Data.List.NonEmpty</a></li><li><a href="Data.List.Partial.html">Data.List.Partial</a></li><li><a href="Data.List.Types.html">Data.List.Types</a></li><li><a href="Data.List.ZipList.html">Data.List.ZipList</a></li><li><a href="Data.Map.html">Data.Map</a></li><li><a href="Data.Map.Gen.html">Data.Map.Gen</a></li><li><a href="Data.Map.Internal.html">Data.Map.Internal</a></li><li><a href="Data.Maybe.html">Data.Maybe</a></li><li><a href="Data.Maybe.First.html">Data.Maybe.First</a></li><li><a href="Data.Maybe.Last.html">Data.Maybe.Last</a></li><li><a href="Data.MediaType.html">Data.MediaType</a></li><li><a href="Data.MediaType.Common.html">Data.MediaType.Common</a></li><li><a href="Data.Monoid.html">Data.Monoid</a></li><li><a href="Data.Monoid.Additive.html">Data.Monoid.Additive</a></li><li><a href="Data.Monoid.Alternate.html">Data.Monoid.Alternate</a></li><li><a href="Data.Monoid.Conj.html">Data.Monoid.Conj</a></li><li><a href="Data.Monoid.Disj.html">Data.Monoid.Disj</a></li><li><a href="Data.Monoid.Dual.html">Data.Monoid.Dual</a></li><li><a href="Data.Monoid.Endo.html">Data.Monoid.Endo</a></li><li><a href="Data.Monoid.Generic.html">Data.Monoid.Generic</a></li><li><a href="Data.Monoid.Multiplicative.html">Data.Monoid.Multiplicative</a></li><li><a href="Data.NaturalTransformation.html">Data.NaturalTransformation</a></li><li><a href="Data.Newtype.html">Data.Newtype</a></li><li><a href="Data.NonEmpty.html">Data.NonEmpty</a></li><li><a href="Data.Nullable.html">Data.Nullable</a></li><li><a href="Data.Number.html">Data.Number</a></li><li><a href="Data.Number.Approximate.html">Data.Number.Approximate</a></li><li><a href="Data.Number.Format.html">Data.Number.Format</a></li><li><a href="Data.Op.html">Data.Op</a></li><li><a href="Data.Ord.html">Data.Ord</a></li><li><a href="Data.Ord.Down.html">Data.Ord.Down</a></li><li><a href="Data.Ord.Generic.html">Data.Ord.Generic</a></li><li><a href="Data.Ord.Max.html">Data.Ord.Max</a></li><li><a href="Data.Ord.Min.html">Data.Ord.Min</a></li><li><a href="Data.Ordering.html">Data.Ordering</a></li><li><a href="Data.Posix.html">Data.Posix</a></li><li><a href="Data.Posix.Signal.html">Data.Posix.Signal</a></li><li><a href="Data.Predicate.html">Data.Predicate</a></li><li><a href="Data.Profunctor.html">Data.Profunctor</a></li><li><a href="Data.Profunctor.Choice.html">Data.Profunctor.Choice</a></li><li><a href="Data.Profunctor.Closed.html">Data.Profunctor.Closed</a></li><li><a href="Data.Profunctor.Cochoice.html">Data.Profunctor.Cochoice</a></li><li><a href="Data.Profunctor.Costrong.html">Data.Profunctor.Costrong</a></li><li><a href="Data.Profunctor.Join.html">Data.Profunctor.Join</a></li><li><a href="Data.Profunctor.Split.html">Data.Profunctor.Split</a></li><li><a href="Data.Profunctor.Star.html">Data.Profunctor.Star</a></li><li><a href="Data.Profunctor.Strong.html">Data.Profunctor.Strong</a></li><li><a href="Data.Reflectable.html">Data.Reflectable</a></li><li><a href="Data.Ring.html">Data.Ring</a></li><li><a href="Data.Ring.Generic.html">Data.Ring.Generic</a></li><li><a href="Data.Semigroup.html">Data.Semigroup</a></li><li><a href="Data.Semigroup.First.html">Data.Semigroup.First</a></li><li><a href="Data.Semigroup.Foldable.html">Data.Semigroup.Foldable</a></li><li><a href="Data.Semigroup.Generic.html">Data.Semigroup.Generic</a></li><li><a href="Data.Semigroup.Last.html">Data.Semigroup.Last</a></li><li><a href="Data.Semigroup.Traversable.html">Data.Semigroup.Traversable</a></li><li><a href="Data.Semiring.html">Data.Semiring</a></li><li><a href="Data.Semiring.Generic.html">Data.Semiring.Generic</a></li><li><a href="Data.Set.html">Data.Set</a></li><li><a href="Data.Set.NonEmpty.html">Data.Set.NonEmpty</a></li><li><a href="Data.Show.html">Data.Show</a></li><li><a href="Data.Show.Generic.html">Data.Show.Generic</a></li><li><a href="Data.String.html">Data.String</a></li><li><a href="Data.String.CaseInsensitive.html">Data.String.CaseInsensitive</a></li><li><a href="Data.String.CodePoints.html">Data.String.CodePoints</a></li><li><a href="Data.String.CodeUnits.html">Data.String.CodeUnits</a></li><li><a href="Data.String.Common.html">Data.String.Common</a></li><li><a href="Data.String.Gen.html">Data.String.Gen</a></li><li><a href="Data.String.NonEmpty.html">Data.String.NonEmpty</a></li><li><a href="Data.String.NonEmpty.CaseInsensitive.html">Data.String.NonEmpty.CaseInsensitive</a></li><li><a href="Data.String.NonEmpty.CodePoints.html">Data.String.NonEmpty.CodePoints</a></li><li><a href="Data.String.NonEmpty.CodeUnits.html">Data.String.NonEmpty.CodeUnits</a></li><li><a href="Data.String.NonEmpty.Internal.html">Data.String.NonEmpty.Internal</a></li><li><a href="Data.String.Pattern.html">Data.String.Pattern</a></li><li><a href="Data.String.Regex.html">Data.String.Regex</a></li><li><a href="Data.String.Regex.Flags.html">Data.String.Regex.Flags</a></li><li><a href="Data.String.Regex.Unsafe.html">Data.String.Regex.Unsafe</a></li><li><a href="Data.String.Unsafe.html">Data.String.Unsafe</a></li><li><a href="Data.Symbol.html">Data.Symbol</a></li><li><a href="Data.Time.html">Data.Time</a></li><li><a href="Data.Time.Component.html">Data.Time.Component</a></li><li><a href="Data.Time.Component.Gen.html">Data.Time.Component.Gen</a></li><li><a href="Data.Time.Duration.html">Data.Time.Duration</a></li><li><a href="Data.Time.Duration.Gen.html">Data.Time.Duration.Gen</a></li><li><a href="Data.Time.Gen.html">Data.Time.Gen</a></li><li><a href="Data.Traversable.html">Data.Traversable</a></li><li><a href="Data.Traversable.Accum.html">Data.Traversable.Accum</a></li><li><a href="Data.Traversable.Accum.Internal.html">Data.Traversable.Accum.Internal</a></li><li><a href="Data.TraversableWithIndex.html">Data.TraversableWithIndex</a></li><li><a href="Data.Tuple.html">Data.Tuple</a></li><li><a href="Data.Tuple.Nested.html">Data.Tuple.Nested</a></li><li><a href="Data.Unfoldable.html">Data.Unfoldable</a></li><li><a href="Data.Unfoldable1.html">Data.Unfoldable1</a></li><li><a href="Data.Unit.html">Data.Unit</a></li><li><a href="Data.Variant.html">Data.Variant</a></li><li><a href="Data.Variant.Internal.html">Data.Variant.Internal</a></li><li><a href="Data.Void.html">Data.Void</a></li><li><a href="Data.Witherable.html">Data.Witherable</a></li><li><a href="Data.Yoneda.html">Data.Yoneda</a></li><li><a href="Effect.html">Effect</a></li><li><a href="Effect.AVar.html">Effect.AVar</a></li><li><a href="Effect.Aff.html">Effect.Aff</a></li><li><a href="Effect.Aff.AVar.html">Effect.Aff.AVar</a></li><li><a href="Effect.Aff.Class.html">Effect.Aff.Class</a></li><li><a href="Effect.Aff.Compat.html">Effect.Aff.Compat</a></li><li><a href="Effect.Class.html">Effect.Class</a></li><li><a href="Effect.Class.Console.html">Effect.Class.Console</a></li><li><a href="Effect.Console.html">Effect.Console</a></li><li><a href="Effect.Exception.html">Effect.Exception</a></li><li><a href="Effect.Exception.Unsafe.html">Effect.Exception.Unsafe</a></li><li><a href="Effect.Now.html">Effect.Now</a></li><li><a href="Effect.Ref.html">Effect.Ref</a></li><li><a href="Effect.Timer.html">Effect.Timer</a></li><li><a href="Effect.Uncurried.html">Effect.Uncurried</a></li><li><a href="Effect.Unsafe.html">Effect.Unsafe</a></li><li><a href="FRP.Behavior.html">FRP.Behavior</a></li><li><a href="FRP.Behavior.Keyboard.html">FRP.Behavior.Keyboard</a></li><li><a href="FRP.Behavior.Mouse.html">FRP.Behavior.Mouse</a></li><li><a href="FRP.Behavior.Time.html">FRP.Behavior.Time</a></li><li><a href="FRP.Event.html">FRP.Event</a></li><li><a href="FRP.Event.AnimationFrame.html">FRP.Event.AnimationFrame</a></li><li><a href="FRP.Event.Class.html">FRP.Event.Class</a></li><li><a href="FRP.Event.Keyboard.html">FRP.Event.Keyboard</a></li><li><a href="FRP.Event.Mouse.html">FRP.Event.Mouse</a></li><li><a href="FRP.Event.Time.html">FRP.Event.Time</a></li><li><a href="FRP.Event.VBus.html">FRP.Event.VBus</a></li><li><a href="Foreign.html">Foreign</a></li><li><a href="Foreign.Index.html">Foreign.Index</a></li><li><a href="Foreign.Keys.html">Foreign.Keys</a></li><li><a href="Foreign.Object.html">Foreign.Object</a></li><li><a href="Foreign.Object.Gen.html">Foreign.Object.Gen</a></li><li><a href="Foreign.Object.ST.html">Foreign.Object.ST</a></li><li><a href="Foreign.Object.ST.Unsafe.html">Foreign.Object.ST.Unsafe</a></li><li><a href="Foreign.Object.Unsafe.html">Foreign.Object.Unsafe</a></li><li><a href="Heterogeneous.Folding.html">Heterogeneous.Folding</a></li><li><a href="Heterogeneous.Mapping.html">Heterogeneous.Mapping</a></li><li><a href="Node.Buffer.html">Node.Buffer</a></li><li><a href="Node.Buffer.Class.html">Node.Buffer.Class</a></li><li><a href="Node.Buffer.Constants.html">Node.Buffer.Constants</a></li><li><a href="Node.Buffer.Immutable.html">Node.Buffer.Immutable</a></li><li><a href="Node.Buffer.ST.html">Node.Buffer.ST</a></li><li><a href="Node.Buffer.Types.html">Node.Buffer.Types</a></li><li><a href="Node.Encoding.html">Node.Encoding</a></li><li><a href="Node.EventEmitter.html">Node.EventEmitter</a></li><li><a href="Node.EventEmitter.UtilTypes.html">Node.EventEmitter.UtilTypes</a></li><li><a href="Node.FS.html">Node.FS</a></li><li><a href="Node.FS.Aff.html">Node.FS.Aff</a></li><li><a href="Node.FS.Async.html">Node.FS.Async</a></li><li><a href="Node.FS.Constants.html">Node.FS.Constants</a></li><li><a href="Node.FS.Perms.html">Node.FS.Perms</a></li><li><a href="Node.FS.Stats.html">Node.FS.Stats</a></li><li><a href="Node.FS.Stream.html">Node.FS.Stream</a></li><li><a href="Node.FS.Sync.html">Node.FS.Sync</a></li><li><a href="Node.Path.html">Node.Path</a></li><li><a href="Node.Platform.html">Node.Platform</a></li><li><a href="Node.Process.html">Node.Process</a></li><li><a href="Node.Stream.html">Node.Stream</a></li><li><a href="Node.Stream.Aff.html">Node.Stream.Aff</a></li><li><a href="Node.Symbol.html">Node.Symbol</a></li><li><a href="Partial.html">Partial</a></li><li><a href="Partial.Unsafe.html">Partial.Unsafe</a></li><li><a href="Performance.Minibench.html">Performance.Minibench</a></li><li><a href="Pipes.html">Pipes</a></li><li><a href="Pipes.Core.html">Pipes.Core</a></li><li><a href="Pipes.Internal.html">Pipes.Internal</a></li><li><a href="Pipes.ListT.html">Pipes.ListT</a></li><li><a href="Pipes.Prelude.html">Pipes.Prelude</a></li><li><a href="Prelude.html">Prelude</a></li><li><a href="Prim.html">Prim</a></li><li><a href="Prim.Boolean.html">Prim.Boolean</a></li><li><a href="Prim.Coerce.html">Prim.Coerce</a></li><li><a href="Prim.Int.html">Prim.Int</a></li><li><a href="Prim.Ordering.html">Prim.Ordering</a></li><li><a href="Prim.Row.html">Prim.Row</a></li><li><a href="Prim.RowList.html">Prim.RowList</a></li><li><a href="Prim.Symbol.html">Prim.Symbol</a></li><li><a href="Prim.TypeError.html">Prim.TypeError</a></li><li><a href="Record.html">Record</a></li><li><a href="Record.Builder.html">Record.Builder</a></li><li><a href="Record.Studio.html">Record.Studio</a></li><li><a href="Record.Studio.Keys.html">Record.Studio.Keys</a></li><li><a href="Record.Studio.Map.html">Record.Studio.Map</a></li><li><a href="Record.Studio.MapKind.html">Record.Studio.MapKind</a></li><li><a href="Record.Studio.MapUniform.html">Record.Studio.MapUniform</a></li><li><a href="Record.Studio.Merge.html">Record.Studio.Merge</a></li><li><a href="Record.Studio.SameKeys.html">Record.Studio.SameKeys</a></li><li><a href="Record.Studio.Sequence.html">Record.Studio.Sequence</a></li><li><a href="Record.Studio.Shrink.html">Record.Studio.Shrink</a></li><li><a href="Record.Studio.SingletonRecord.html">Record.Studio.SingletonRecord</a></li><li><a href="Record.Unsafe.html">Record.Unsafe</a></li><li><a href="Record.Unsafe.Union.html">Record.Unsafe.Union</a></li><li><a href="Safe.Coerce.html">Safe.Coerce</a></li><li><a href="Spago.Generated.BuildInfo.html">Spago.Generated.BuildInfo</a></li><li><a href="Test.Spec.html">Test.Spec</a></li><li><a href="Test.Spec.Assertions.html">Test.Spec.Assertions</a></li><li><a href="Test.Spec.Assertions.String.html">Test.Spec.Assertions.String</a></li><li><a href="Test.Spec.Config.html">Test.Spec.Config</a></li><li><a href="Test.Spec.Console.html">Test.Spec.Console</a></li><li><a href="Test.Spec.Reporter.html">Test.Spec.Reporter</a></li><li><a href="Test.Spec.Reporter.Base.html">Test.Spec.Reporter.Base</a></li><li><a href="Test.Spec.Reporter.Console.html">Test.Spec.Reporter.Console</a></li><li><a href="Test.Spec.Reporter.Dot.html">Test.Spec.Reporter.Dot</a></li><li><a href="Test.Spec.Reporter.Spec.html">Test.Spec.Reporter.Spec</a></li><li><a href="Test.Spec.Reporter.Tap.html">Test.Spec.Reporter.Tap</a></li><li><a href="Test.Spec.Reporter.TeamCity.html">Test.Spec.Reporter.TeamCity</a></li><li><a href="Test.Spec.Result.html">Test.Spec.Result</a></li><li><a href="Test.Spec.Runner.html">Test.Spec.Runner</a></li><li><a href="Test.Spec.Runner.Event.html">Test.Spec.Runner.Event</a></li><li><a href="Test.Spec.Speed.html">Test.Spec.Speed</a></li><li><a href="Test.Spec.Style.html">Test.Spec.Style</a></li><li><a href="Test.Spec.Summary.html">Test.Spec.Summary</a></li><li><a href="Test.Spec.Tree.html">Test.Spec.Tree</a></li><li><a href="Type.Data.Boolean.html">Type.Data.Boolean</a></li><li><a href="Type.Data.Ordering.html">Type.Data.Ordering</a></li><li><a href="Type.Data.Symbol.html">Type.Data.Symbol</a></li><li><a href="Type.Equality.html">Type.Equality</a></li><li><a href="Type.Function.html">Type.Function</a></li><li><a href="Type.Prelude.html">Type.Prelude</a></li><li><a href="Type.Proxy.html">Type.Proxy</a></li><li><a href="Type.Row.html">Type.Row</a></li><li><a href="Type.Row.Homogeneous.html">Type.Row.Homogeneous</a></li><li><a href="Type.RowList.html">Type.RowList</a></li><li><a href="Uncurried.RWSE.html">Uncurried.RWSE</a></li><li><a href="Uncurried.RWSET.html">Uncurried.RWSET</a></li><li><a href="Uncurried.Reader.html">Uncurried.Reader</a></li><li><a href="Uncurried.ReaderT.html">Uncurried.ReaderT</a></li><li><a href="Uncurried.State.html">Uncurried.State</a></li><li><a href="Uncurried.StateT.html">Uncurried.StateT</a></li><li><a href="Uncurried.Writer.html">Uncurried.Writer</a></li><li><a href="Uncurried.WriterT.html">Uncurried.WriterT</a></li><li><a href="Unsafe.Coerce.html">Unsafe.Coerce</a></li><li><a href="Unsafe.Reference.html">Unsafe.Reference</a></li><li><a href="Web.DOM.html">Web.DOM</a></li><li><a href="Web.DOM.CharacterData.html">Web.DOM.CharacterData</a></li><li><a href="Web.DOM.ChildNode.html">Web.DOM.ChildNode</a></li><li><a href="Web.DOM.Comment.html">Web.DOM.Comment</a></li><li><a href="Web.DOM.DOMTokenList.html">Web.DOM.DOMTokenList</a></li><li><a href="Web.DOM.Document.html">Web.DOM.Document</a></li><li><a href="Web.DOM.DocumentFragment.html">Web.DOM.DocumentFragment</a></li><li><a href="Web.DOM.DocumentType.html">Web.DOM.DocumentType</a></li><li><a href="Web.DOM.Element.html">Web.DOM.Element</a></li><li><a href="Web.DOM.HTMLCollection.html">Web.DOM.HTMLCollection</a></li><li><a href="Web.DOM.Internal.Types.html">Web.DOM.Internal.Types</a></li><li><a href="Web.DOM.MutationObserver.html">Web.DOM.MutationObserver</a></li><li><a href="Web.DOM.MutationRecord.html">Web.DOM.MutationRecord</a></li><li><a href="Web.DOM.Node.html">Web.DOM.Node</a></li><li><a href="Web.DOM.NodeList.html">Web.DOM.NodeList</a></li><li><a href="Web.DOM.NodeType.html">Web.DOM.NodeType</a></li><li><a href="Web.DOM.NonDocumentTypeChildNode.html">Web.DOM.NonDocumentTypeChildNode</a></li><li><a href="Web.DOM.NonElementParentNode.html">Web.DOM.NonElementParentNode</a></li><li><a href="Web.DOM.ParentNode.html">Web.DOM.ParentNode</a></li><li><a href="Web.DOM.ProcessingInstruction.html">Web.DOM.ProcessingInstruction</a></li><li><a href="Web.DOM.ShadowRoot.html">Web.DOM.ShadowRoot</a></li><li><a href="Web.DOM.Text.html">Web.DOM.Text</a></li><li><a href="Web.Event.CustomEvent.html">Web.Event.CustomEvent</a></li><li><a href="Web.Event.Event.html">Web.Event.Event</a></li><li><a href="Web.Event.EventPhase.html">Web.Event.EventPhase</a></li><li><a href="Web.Event.EventTarget.html">Web.Event.EventTarget</a></li><li><a href="Web.Event.Internal.Types.html">Web.Event.Internal.Types</a></li><li><a href="Web.File.Blob.html">Web.File.Blob</a></li><li><a href="Web.File.File.html">Web.File.File</a></li><li><a href="Web.File.FileList.html">Web.File.FileList</a></li><li><a href="Web.File.FileReader.html">Web.File.FileReader</a></li><li><a href="Web.File.FileReader.ReadyState.html">Web.File.FileReader.ReadyState</a></li><li><a href="Web.File.Url.html">Web.File.Url</a></li><li><a href="Web.HTML.html">Web.HTML</a></li><li><a href="Web.HTML.Common.html">Web.HTML.Common</a></li><li><a href="Web.HTML.Event.BeforeUnloadEvent.html">Web.HTML.Event.BeforeUnloadEvent</a></li><li><a href="Web.HTML.Event.BeforeUnloadEvent.EventTypes.html">Web.HTML.Event.BeforeUnloadEvent.EventTypes</a></li><li><a href="Web.HTML.Event.DataTransfer.html">Web.HTML.Event.DataTransfer</a></li><li><a href="Web.HTML.Event.DataTransfer.DataTransferItem.html">Web.HTML.Event.DataTransfer.DataTransferItem</a></li><li><a href="Web.HTML.Event.DragEvent.html">Web.HTML.Event.DragEvent</a></li><li><a href="Web.HTML.Event.DragEvent.EventTypes.html">Web.HTML.Event.DragEvent.EventTypes</a></li><li><a href="Web.HTML.Event.ErrorEvent.html">Web.HTML.Event.ErrorEvent</a></li><li><a href="Web.HTML.Event.EventTypes.html">Web.HTML.Event.EventTypes</a></li><li><a href="Web.HTML.Event.HashChangeEvent.html">Web.HTML.Event.HashChangeEvent</a></li><li><a href="Web.HTML.Event.HashChangeEvent.EventTypes.html">Web.HTML.Event.HashChangeEvent.EventTypes</a></li><li><a href="Web.HTML.Event.PageTransitionEvent.html">Web.HTML.Event.PageTransitionEvent</a></li><li><a href="Web.HTML.Event.PageTransitionEvent.EventTypes.html">Web.HTML.Event.PageTransitionEvent.EventTypes</a></li><li><a href="Web.HTML.Event.PopStateEvent.html">Web.HTML.Event.PopStateEvent</a></li><li><a href="Web.HTML.Event.PopStateEvent.EventTypes.html">Web.HTML.Event.PopStateEvent.EventTypes</a></li><li><a href="Web.HTML.Event.TrackEvent.html">Web.HTML.Event.TrackEvent</a></li><li><a href="Web.HTML.Event.TrackEvent.EventTypes.html">Web.HTML.Event.TrackEvent.EventTypes</a></li><li><a href="Web.HTML.HTMLAnchorElement.html">Web.HTML.HTMLAnchorElement</a></li><li><a href="Web.HTML.HTMLAreaElement.html">Web.HTML.HTMLAreaElement</a></li><li><a href="Web.HTML.HTMLAudioElement.html">Web.HTML.HTMLAudioElement</a></li><li><a href="Web.HTML.HTMLBRElement.html">Web.HTML.HTMLBRElement</a></li><li><a href="Web.HTML.HTMLBaseElement.html">Web.HTML.HTMLBaseElement</a></li><li><a href="Web.HTML.HTMLBodyElement.html">Web.HTML.HTMLBodyElement</a></li><li><a href="Web.HTML.HTMLButtonElement.html">Web.HTML.HTMLButtonElement</a></li><li><a href="Web.HTML.HTMLCanvasElement.html">Web.HTML.HTMLCanvasElement</a></li><li><a href="Web.HTML.HTMLDListElement.html">Web.HTML.HTMLDListElement</a></li><li><a href="Web.HTML.HTMLDataElement.html">Web.HTML.HTMLDataElement</a></li><li><a href="Web.HTML.HTMLDataListElement.html">Web.HTML.HTMLDataListElement</a></li><li><a href="Web.HTML.HTMLDivElement.html">Web.HTML.HTMLDivElement</a></li><li><a href="Web.HTML.HTMLDocument.html">Web.HTML.HTMLDocument</a></li><li><a href="Web.HTML.HTMLDocument.ReadyState.html">Web.HTML.HTMLDocument.ReadyState</a></li><li><a href="Web.HTML.HTMLDocument.VisibilityState.html">Web.HTML.HTMLDocument.VisibilityState</a></li><li><a href="Web.HTML.HTMLElement.html">Web.HTML.HTMLElement</a></li><li><a href="Web.HTML.HTMLEmbedElement.html">Web.HTML.HTMLEmbedElement</a></li><li><a href="Web.HTML.HTMLFieldSetElement.html">Web.HTML.HTMLFieldSetElement</a></li><li><a href="Web.HTML.HTMLFormElement.html">Web.HTML.HTMLFormElement</a></li><li><a href="Web.HTML.HTMLHRElement.html">Web.HTML.HTMLHRElement</a></li><li><a href="Web.HTML.HTMLHeadElement.html">Web.HTML.HTMLHeadElement</a></li><li><a href="Web.HTML.HTMLHeadingElement.html">Web.HTML.HTMLHeadingElement</a></li><li><a href="Web.HTML.HTMLHtmlElement.html">Web.HTML.HTMLHtmlElement</a></li><li><a href="Web.HTML.HTMLHyperlinkElementUtils.html">Web.HTML.HTMLHyperlinkElementUtils</a></li><li><a href="Web.HTML.HTMLIFrameElement.html">Web.HTML.HTMLIFrameElement</a></li><li><a href="Web.HTML.HTMLImageElement.html">Web.HTML.HTMLImageElement</a></li><li><a href="Web.HTML.HTMLImageElement.CORSMode.html">Web.HTML.HTMLImageElement.CORSMode</a></li><li><a href="Web.HTML.HTMLImageElement.DecodingHint.html">Web.HTML.HTMLImageElement.DecodingHint</a></li><li><a href="Web.HTML.HTMLImageElement.Laziness.html">Web.HTML.HTMLImageElement.Laziness</a></li><li><a href="Web.HTML.HTMLInputElement.html">Web.HTML.HTMLInputElement</a></li><li><a href="Web.HTML.HTMLKeygenElement.html">Web.HTML.HTMLKeygenElement</a></li><li><a href="Web.HTML.HTMLLIElement.html">Web.HTML.HTMLLIElement</a></li><li><a href="Web.HTML.HTMLLabelElement.html">Web.HTML.HTMLLabelElement</a></li><li><a href="Web.HTML.HTMLLegendElement.html">Web.HTML.HTMLLegendElement</a></li><li><a href="Web.HTML.HTMLLinkElement.html">Web.HTML.HTMLLinkElement</a></li><li><a href="Web.HTML.HTMLMapElement.html">Web.HTML.HTMLMapElement</a></li><li><a href="Web.HTML.HTMLMediaElement.html">Web.HTML.HTMLMediaElement</a></li><li><a href="Web.HTML.HTMLMediaElement.CanPlayType.html">Web.HTML.HTMLMediaElement.CanPlayType</a></li><li><a href="Web.HTML.HTMLMediaElement.NetworkState.html">Web.HTML.HTMLMediaElement.NetworkState</a></li><li><a href="Web.HTML.HTMLMediaElement.ReadyState.html">Web.HTML.HTMLMediaElement.ReadyState</a></li><li><a href="Web.HTML.HTMLMetaElement.html">Web.HTML.HTMLMetaElement</a></li><li><a href="Web.HTML.HTMLMeterElement.html">Web.HTML.HTMLMeterElement</a></li><li><a href="Web.HTML.HTMLModElement.html">Web.HTML.HTMLModElement</a></li><li><a href="Web.HTML.HTMLOListElement.html">Web.HTML.HTMLOListElement</a></li><li><a href="Web.HTML.HTMLObjectElement.html">Web.HTML.HTMLObjectElement</a></li><li><a href="Web.HTML.HTMLOptGroupElement.html">Web.HTML.HTMLOptGroupElement</a></li><li><a href="Web.HTML.HTMLOptionElement.html">Web.HTML.HTMLOptionElement</a></li><li><a href="Web.HTML.HTMLOutputElement.html">Web.HTML.HTMLOutputElement</a></li><li><a href="Web.HTML.HTMLParagraphElement.html">Web.HTML.HTMLParagraphElement</a></li><li><a href="Web.HTML.HTMLParamElement.html">Web.HTML.HTMLParamElement</a></li><li><a href="Web.HTML.HTMLPreElement.html">Web.HTML.HTMLPreElement</a></li><li><a href="Web.HTML.HTMLProgressElement.html">Web.HTML.HTMLProgressElement</a></li><li><a href="Web.HTML.HTMLQuoteElement.html">Web.HTML.HTMLQuoteElement</a></li><li><a href="Web.HTML.HTMLScriptElement.html">Web.HTML.HTMLScriptElement</a></li><li><a href="Web.HTML.HTMLSelectElement.html">Web.HTML.HTMLSelectElement</a></li><li><a href="Web.HTML.HTMLSourceElement.html">Web.HTML.HTMLSourceElement</a></li><li><a href="Web.HTML.HTMLSpanElement.html">Web.HTML.HTMLSpanElement</a></li><li><a href="Web.HTML.HTMLStyleElement.html">Web.HTML.HTMLStyleElement</a></li><li><a href="Web.HTML.HTMLTableCaptionElement.html">Web.HTML.HTMLTableCaptionElement</a></li><li><a href="Web.HTML.HTMLTableCellElement.html">Web.HTML.HTMLTableCellElement</a></li><li><a href="Web.HTML.HTMLTableColElement.html">Web.HTML.HTMLTableColElement</a></li><li><a href="Web.HTML.HTMLTableDataCellElement.html">Web.HTML.HTMLTableDataCellElement</a></li><li><a href="Web.HTML.HTMLTableElement.html">Web.HTML.HTMLTableElement</a></li><li><a href="Web.HTML.HTMLTableHeaderCellElement.html">Web.HTML.HTMLTableHeaderCellElement</a></li><li><a href="Web.HTML.HTMLTableRowElement.html">Web.HTML.HTMLTableRowElement</a></li><li><a href="Web.HTML.HTMLTableSectionElement.html">Web.HTML.HTMLTableSectionElement</a></li><li><a href="Web.HTML.HTMLTemplateElement.html">Web.HTML.HTMLTemplateElement</a></li><li><a href="Web.HTML.HTMLTextAreaElement.html">Web.HTML.HTMLTextAreaElement</a></li><li><a href="Web.HTML.HTMLTimeElement.html">Web.HTML.HTMLTimeElement</a></li><li><a href="Web.HTML.HTMLTitleElement.html">Web.HTML.HTMLTitleElement</a></li><li><a href="Web.HTML.HTMLTrackElement.html">Web.HTML.HTMLTrackElement</a></li><li><a href="Web.HTML.HTMLTrackElement.ReadyState.html">Web.HTML.HTMLTrackElement.ReadyState</a></li><li><a href="Web.HTML.HTMLUListElement.html">Web.HTML.HTMLUListElement</a></li><li><a href="Web.HTML.HTMLVideoElement.html">Web.HTML.HTMLVideoElement</a></li><li><a href="Web.HTML.History.html">Web.HTML.History</a></li><li><a href="Web.HTML.Location.html">Web.HTML.Location</a></li><li><a href="Web.HTML.Navigator.html">Web.HTML.Navigator</a></li><li><a href="Web.HTML.SelectionMode.html">Web.HTML.SelectionMode</a></li><li><a href="Web.HTML.ValidityState.html">Web.HTML.ValidityState</a></li><li><a href="Web.HTML.Window.html">Web.HTML.Window</a></li><li><a href="Web.Internal.FFI.html">Web.Internal.FFI</a></li><li><a href="Web.Storage.Event.StorageEvent.html">Web.Storage.Event.StorageEvent</a></li><li><a href="Web.Storage.Storage.html">Web.Storage.Storage</a></li><li><a href="Web.UIEvent.CompositionEvent.html">Web.UIEvent.CompositionEvent</a></li><li><a href="Web.UIEvent.CompositionEvent.EventTypes.html">Web.UIEvent.CompositionEvent.EventTypes</a></li><li><a href="Web.UIEvent.EventTypes.html">Web.UIEvent.EventTypes</a></li><li><a href="Web.UIEvent.FocusEvent.html">Web.UIEvent.FocusEvent</a></li><li><a href="Web.UIEvent.FocusEvent.EventTypes.html">Web.UIEvent.FocusEvent.EventTypes</a></li><li><a href="Web.UIEvent.InputEvent.html">Web.UIEvent.InputEvent</a></li><li><a href="Web.UIEvent.InputEvent.EventTypes.html">Web.UIEvent.InputEvent.EventTypes</a></li><li><a href="Web.UIEvent.InputEvent.InputType.html">Web.UIEvent.InputEvent.InputType</a></li><li><a href="Web.UIEvent.KeyboardEvent.html">Web.UIEvent.KeyboardEvent</a></li><li><a href="Web.UIEvent.KeyboardEvent.EventTypes.html">Web.UIEvent.KeyboardEvent.EventTypes</a></li><li><a href="Web.UIEvent.MouseEvent.html">Web.UIEvent.MouseEvent</a></li><li><a href="Web.UIEvent.MouseEvent.EventTypes.html">Web.UIEvent.MouseEvent.EventTypes</a></li><li><a href="Web.UIEvent.UIEvent.html">Web.UIEvent.UIEvent</a></li><li><a href="Web.UIEvent.WheelEvent.html">Web.UIEvent.WheelEvent</a></li><li><a href="Web.UIEvent.WheelEvent.EventTypes.html">Web.UIEvent.WheelEvent.EventTypes</a></li></ul></div></main></div><div class="footer clearfix"><p>Generated by purs 0.15.15 [development build; commit: UNKNOWN]</p></div><!-- Docs search index. --><script type="text/javascript" src="./docs-search-app.js"></script><script type="text/javascript">window.DocsSearchTypeIndex = {};window.DocsSearchIndex = {};</script></body></html>
generated-docs/html/Control.Alt.htmldeletedโ1397
@@ -1,1397 +0,0 @@
1โ<!DOCTYPE HTML>
2โ<html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1"><title>PureScript: Control.Alt</title><link href="https://fonts.googleapis.com/css?family=Roboto+Mono|Roboto:300,400,400i,700,700i" type="text/css" rel="stylesheet"><style type="text/css">/*! normalize.css v3.0.2 | MIT License | git.io/normalize */
3โ
4โ/**
5โ * 1. Set default font family to sans-serif.
6โ * 2. Prevent iOS text size adjust after orientation change, without disabling
7โ * user zoom.
8โ */
9โ
10โhtml {
11โ font-family: sans-serif; /* 1 */
12โ -ms-text-size-adjust: 100%; /* 2 */
13โ -webkit-text-size-adjust: 100%; /* 2 */
14โ}
15โ
16โ/**
17โ * Remove default margin.
18โ */
19โ
20โbody {
21โ margin: 0;
22โ}
23โ
24โ/* HTML5 display definitions
25โ ========================================================================== */
26โ
27โ/**
28โ * Correct `block` display not defined for any HTML5 element in IE 8/9.
29โ * Correct `block` display not defined for `details` or `summary` in IE 10/11
30โ * and Firefox.
31โ * Correct `block` display not defined for `main` in IE 11.
32โ */
33โ
34โarticle,
35โaside,
36โdetails,
37โfigcaption,
38โfigure,
39โfooter,
40โheader,
41โhgroup,
42โmain,
43โmenu,
44โnav,
45โsection,
46โsummary {
47โ display: block;
48โ}
49โ
50โ/**
51โ * 1. Correct `inline-block` display not defined in IE 8/9.
52โ * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
53โ */
54โ
55โaudio,
56โcanvas,
57โprogress,
58โvideo {
59โ display: inline-block; /* 1 */
60โ vertical-align: baseline; /* 2 */
61โ}
62โ
63โ/**
64โ * Prevent modern browsers from displaying `audio` without controls.
65โ * Remove excess height in iOS 5 devices.
66โ */
67โ
68โaudio:not([controls]) {
69โ display: none;
70โ height: 0;
71โ}
72โ
73โ/**
74โ * Address `[hidden]` styling not present in IE 8/9/10.
75โ * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22.
76โ */
77โ
78โ[hidden],
79โtemplate {
80โ display: none;
81โ}
82โ
83โ/* Links
84โ ========================================================================== */
85โ
86โ/**
87โ * Remove the gray background color from active links in IE 10.
88โ */
89โ
90โa {
91โ background-color: transparent;
92โ}
93โ
94โ/**
95โ * Improve readability when focused and also mouse hovered in all browsers.
96โ */
97โ
98โa:active,
99โa:hover {
100โ outline: 0;
101โ}
102โ
103โ/* Text-level semantics
104โ ========================================================================== */
105โ
106โ/**
107โ * Address styling not present in IE 8/9/10/11, Safari, and Chrome.
108โ */
109โ
110โabbr[title] {
111โ border-bottom: 1px dotted;
112โ}
113โ
114โ/**
115โ * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
116โ */
117โ
118โb,
119โstrong {
120โ font-weight: bold;
121โ}
122โ
123โ/**
124โ * Address styling not present in Safari and Chrome.
125โ */
126โ
127โdfn {
128โ font-style: italic;
129โ}
130โ
131โ/**
132โ * Address variable `h1` font-size and margin within `section` and `article`
133โ * contexts in Firefox 4+, Safari, and Chrome.
134โ */
135โ
136โh1 {
137โ font-size: 2em;
138โ margin: 0.67em 0;
139โ}
140โ
141โ/**
142โ * Address styling not present in IE 8/9.
143โ */
144โ
145โmark {
146โ background: #ff0;
147โ color: #000;
148โ}
149โ
150โ/**
151โ * Address inconsistent and variable font size in all browsers.
152โ */
153โ
154โsmall {
155โ font-size: 80%;
156โ}
157โ
158โ/**
159โ * Prevent `sub` and `sup` affecting `line-height` in all browsers.
160โ */
161โ
162โsub,
163โsup {
164โ font-size: 75%;
165โ line-height: 0;
166โ position: relative;
167โ vertical-align: baseline;
168โ}
169โ
170โsup {
171โ top: -0.5em;
172โ}
173โ
174โsub {
175โ bottom: -0.25em;
176โ}
177โ
178โ/* Embedded content
179โ ========================================================================== */
180โ
181โ/**
182โ * Remove border when inside `a` element in IE 8/9/10.
183โ */
184โ
185โimg {
186โ border: 0;
187โ}
188โ
189โ/**
190โ * Correct overflow not hidden in IE 9/10/11.
191โ */
192โ
193โsvg:not(:root) {
194โ overflow: hidden;
195โ}
196โ
197โ/* Grouping content
198โ ========================================================================== */
199โ
200โ/**
201โ * Address margin not present in IE 8/9 and Safari.
202โ */
203โ
204โfigure {
205โ margin: 1em 40px;
206โ}
207โ
208โ/**
209โ * Address differences between Firefox and other browsers.
210โ */
211โ
212โhr {
213โ -moz-box-sizing: content-box;
214โ box-sizing: content-box;
215โ height: 0;
216โ}
217โ
218โ/**
219โ * Contain overflow in all browsers.
220โ */
221โ
222โpre {
223โ overflow: auto;
224โ}
225โ
226โ/**
227โ * Address odd `em`-unit font size rendering in all browsers.
228โ */
229โ
230โcode,
231โkbd,
232โpre,
233โsamp {
234โ font-family: monospace, monospace;
235โ font-size: 1em;
236โ}
237โ
238โ/* Forms
239โ ========================================================================== */
240โ
241โ/**
242โ * Known limitation: by default, Chrome and Safari on OS X allow very limited
243โ * styling of `select`, unless a `border` property is set.
244โ */
245โ
246โ/**
247โ * 1. Correct color not being inherited.
248โ * Known issue: affects color of disabled elements.
249โ * 2. Correct font properties not being inherited.
250โ * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
251โ */
252โ
253โbutton,
254โinput,
255โoptgroup,
256โselect,
257โtextarea {
258โ color: inherit; /* 1 */
259โ font: inherit; /* 2 */
260โ margin: 0; /* 3 */
261โ}
262โ
263โ/**
264โ * Address `overflow` set to `hidden` in IE 8/9/10/11.
265โ */
266โ
267โbutton {
268โ overflow: visible;
269โ}
270โ
271โ/**
272โ * Address inconsistent `text-transform` inheritance for `button` and `select`.
273โ * All other form control elements do not inherit `text-transform` values.
274โ * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
275โ * Correct `select` style inheritance in Firefox.
276โ */
277โ
278โbutton,
279โselect {
280โ text-transform: none;
281โ}
282โ
283โ/**
284โ * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
285โ * and `video` controls.
286โ * 2. Correct inability to style clickable `input` types in iOS.
287โ * 3. Improve usability and consistency of cursor style between image-type
288โ * `input` and others.
289โ */
290โ
291โbutton,
292โhtml input[type="button"], /* 1 */
293โinput[type="reset"],
294โinput[type="submit"] {
295โ -webkit-appearance: button; /* 2 */
296โ cursor: pointer; /* 3 */
297โ}
298โ
299โ/**
300โ * Re-set default cursor for disabled elements.
301โ */
302โ
303โbutton[disabled],
304โhtml input[disabled] {
305โ cursor: default;
306โ}
307โ
308โ/**
309โ * Remove inner padding and border in Firefox 4+.
310โ */
311โ
312โbutton::-moz-focus-inner,
313โinput::-moz-focus-inner {
314โ border: 0;
315โ padding: 0;
316โ}
317โ
318โ/**
319โ * Address Firefox 4+ setting `line-height` on `input` using `!important` in
320โ * the UA stylesheet.
321โ */
322โ
323โinput {
324โ line-height: normal;
325โ}
326โ
327โ/**
328โ * It's recommended that you don't attempt to style these elements.
329โ * Firefox's implementation doesn't respect box-sizing, padding, or width.
330โ *
331โ * 1. Address box sizing set to `content-box` in IE 8/9/10.
332โ * 2. Remove excess padding in IE 8/9/10.
333โ */
334โ
335โinput[type="checkbox"],
336โinput[type="radio"] {
337โ box-sizing: border-box; /* 1 */
338โ padding: 0; /* 2 */
339โ}
340โ
341โ/**
342โ * Fix the cursor style for Chrome's increment/decrement buttons. For certain
343โ * `font-size` values of the `input`, it causes the cursor style of the
344โ * decrement button to change from `default` to `text`.
345โ */
346โ
347โinput[type="number"]::-webkit-inner-spin-button,
348โinput[type="number"]::-webkit-outer-spin-button {
349โ height: auto;
350โ}
351โ
352โ/**
353โ * 1. Address `appearance` set to `searchfield` in Safari and Chrome.
354โ * 2. Address `box-sizing` set to `border-box` in Safari and Chrome
355โ * (include `-moz` to future-proof).
356โ */
357โ
358โinput[type="search"] {
359โ -webkit-appearance: textfield; /* 1 */
360โ -moz-box-sizing: content-box;
361โ -webkit-box-sizing: content-box; /* 2 */
362โ box-sizing: content-box;
363โ}
364โ
365โ/**
366โ * Remove inner padding and search cancel button in Safari and Chrome on OS X.
367โ * Safari (but not Chrome) clips the cancel button when the search input has
368โ * padding (and `textfield` appearance).
369โ */
370โ
371โinput[type="search"]::-webkit-search-cancel-button,
372โinput[type="search"]::-webkit-search-decoration {
373โ -webkit-appearance: none;
374โ}
375โ
376โ/**
377โ * Define consistent border, margin, and padding.
378โ */
379โ
380โfieldset {
381โ border: 1px solid #c0c0c0;
382โ margin: 0 2px;
383โ padding: 0.35em 0.625em 0.75em;
384โ}
385โ
386โ/**
387โ * 1. Correct `color` not being inherited in IE 8/9/10/11.
388โ * 2. Remove padding so people aren't caught out if they zero out fieldsets.
389โ */
390โ
391โlegend {
392โ border: 0; /* 1 */
393โ padding: 0; /* 2 */
394โ}
395โ
396โ/**
397โ * Remove default vertical scrollbar in IE 8/9/10/11.
398โ */
399โ
400โtextarea {
401โ overflow: auto;
402โ}
403โ
404โ/**
405โ * Don't inherit the `font-weight` (applied by a rule above).
406โ * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
407โ */
408โ
409โoptgroup {
410โ font-weight: bold;
411โ}
412โ
413โ/* Tables
414โ ========================================================================== */
415โ
416โ/**
417โ * Remove most spacing between table cells.
418โ */
419โ
420โtable {
421โ border-collapse: collapse;
422โ border-spacing: 0;
423โ}
424โ
425โtd,
426โth {
427โ padding: 0;
428โ}
429โ</style><style type="text/css">/** ************************************************************************* *
430โ ** CSS for HTML docs (e.g. Pursuit)
431โ **
432โ ** STRUCTURE
433โ **
434โ ** This CSS file is structured into several sections, from general to
435โ ** specific, and (mostly) alphabetically within the sections.
436โ **
437โ ** Several global element styles are used. This is not encouraged and should
438โ ** be kept to a minimum. If you want to add new styles you'll most likely
439โ ** want to add a new CSS component. See the Components section for examples.
440โ **
441โ ** CSS components use three simple naming ideas from the BEM system:
442โ ** - Block: `.my-component`
443โ ** - Element: `.my-component__item`
444โ ** - Modifier: `.my-component.my-component--highlighted`
445โ **
446โ ** Example:
447โ ** <div .my-component>
448โ ** <div .my-component__item>
449โ ** <div .my-component__item>
450โ ** ...
451โ ** <div .my-component.my-component--highlighted>
452โ ** <div .my-component__item>
453โ ** <div .my-component__item>
454โ **
455โ ** Components can be nested.
456โ **
457โ **
458โ ** TYPOGRAPHY
459โ **
460โ ** Typographic choices for sizes, line-heights and margins are based on a
461โ ** musical major third scale (4:5). This gives us a way to find numbers
462โ ** and relationships between them that are perceived as harmonic.
463โ **
464โ ** To make use of this modular scale, use a ratio of the form
465โ ** (5/4)^n
466โ ** where n โ โค, -6 โค n โค 8.
467โ **
468โ ** LESS
469โ **
470โ ** This CSS is generated by less. To compile it:
471โ **
472โ ** npm install [-g] less
473โ ** lessc app/static/pursuit.less > app/static/pursuit.css
474โ **
475โ ** ************************************************************************* */
476โ/* Section: Variables
477โ * ========================================================================== */
478โ/* Section: Document Styles
479โ * ========================================================================== */
480โ:root {
481โ color-scheme: light dark;
482โ}
483โhtml {
484โ box-sizing: border-box;
485โ /* This overflow rule prevents everything from shifting slightly to the side
486โ when moving from a page which isn't large enough to generate a scrollbar
487โ to one that is. */
488โ overflow-y: scroll;
489โ}
490โ*,
491โ*::before,
492โ*::after {
493โ box-sizing: inherit;
494โ}
495โbody {
496โ background-color: #ffffff;
497โ color: #000000;
498โ font-family: "Roboto", sans-serif;
499โ font-size: 87.5%;
500โ line-height: 1.563;
501โ}
502โ@media (prefers-color-scheme: dark) {
503โ body {
504โ background-color: #141417;
505โ color: #dedede;
506โ }
507โ}
508โ@media (min-width: 38em) {
509โ body {
510โ font-size: 100%;
511โ }
512โ}
513โ/* Section: Utility Classes
514โ * ========================================================================== */
515โ.clear-floats {
516โ clear: both;
517โ}
518โ.clearfix::before,
519โ.clearfix::after {
520โ content: " ";
521โ display: table;
522โ}
523โ.clearfix::after {
524โ clear: both;
525โ}
526โ/* Content hidden like this will still be read by a screen reader */
527โ.hide-visually {
528โ position: absolute;
529โ left: -10000px;
530โ top: auto;
531โ width: 1px;
532โ height: 1px;
533โ overflow: hidden;
534โ}
535โ/* Section: Layout
536โ * ========================================================================== */
537โ.container {
538โ display: block;
539โ max-width: 66em;
540โ margin-left: auto;
541โ margin-right: auto;
542โ padding-left: 20px;
543โ padding-right: 20px;
544โ}
545โ.col {
546โ display: block;
547โ position: relative;
548โ width: 100%;
549โ}
550โ.col.col--main {
551โ margin-bottom: 3.08em;
552โ}
553โ.col.col--aside {
554โ margin-bottom: 2.44em;
555โ}
556โ@media (min-width: 52em) {
557โ .container {
558โ padding-left: 30px;
559โ padding-right: 30px;
560โ }
561โ .col.col--main {
562โ float: left;
563โ width: 63.655%;
564โ /* 66.6โฆ% - 30px */
565โ }
566โ .col.col--aside {
567โ float: right;
568โ font-size: 87.5%;
569โ width: 33.333333%;
570โ }
571โ}
572โ@media (min-width: 66em) {
573โ .col.col--aside {
574โ font-size: inherit;
575โ }
576โ}
577โ/* Footer
578โ * Based on http://www.lwis.net/journal/2008/02/08/pure-css-sticky-footer/
579โ * Except we don't support IE6
580โ * -------------------------------------------------------------------------- */
581โhtml,
582โbody {
583โ height: 100%;
584โ}
585โ.everything-except-footer {
586โ min-height: 100%;
587โ padding-bottom: 3em;
588โ}
589โ.footer {
590โ position: relative;
591โ height: 3em;
592โ margin-top: -3em;
593โ width: 100%;
594โ text-align: center;
595โ background-color: #1d222d;
596โ color: #f0f0f0;
597โ}
598โ@media (prefers-color-scheme: dark) {
599โ .footer {
600โ background-color: #1d222d;
601โ color: #f0f0f0;
602โ }
603โ}
604โ.footer * {
605โ margin-bottom: 0;
606โ}
607โ/* Section: Element Styles
608โ *
609โ * Have as few of these as possible and keep them general, because they will
610โ * influence every component hereafter.
611โ * ========================================================================== */
612โ:target {
613โ background-color: #f1f5f9;
614โ}
615โ@media (prefers-color-scheme: dark) {
616โ :target {
617โ background-color: #232327;
618โ }
619โ}
620โa,
621โa:visited {
622โ color: #c4953a;
623โ text-decoration: none;
624โ font-weight: bold;
625โ}
626โ@media (prefers-color-scheme: dark) {
627โ a,
628โ a:visited {
629โ color: #d8ac55;
630โ }
631โ}
632โa:hover {
633โ color: #7b5904;
634โ text-decoration: none;
635โ}
636โ@media (prefers-color-scheme: dark) {
637โ a:hover {
638โ color: #f0dcab;
639โ }
640โ}
641โcode,
642โpre {
643โ background-color: #f1f5f9;
644โ border-radius: 3px;
645โ color: #194a5b;
646โ font-family: "Roboto Mono", monospace;
647โ font-size: 87.5%;
648โ}
649โ@media (prefers-color-scheme: dark) {
650โ code,
651โ pre {
652โ background-color: #232327;
653โ color: #c1d3da;
654โ }
655โ}
656โ:target code,
657โ:target pre {
658โ background-color: #dfe8f1;
659โ}
660โ@media (prefers-color-scheme: dark) {
661โ :target code,
662โ :target pre {
663โ background-color: #2f2f34;
664โ }
665โ}
666โcode {
667โ padding: 0.2em 0;
668โ margin: 0;
669โ white-space: pre-wrap;
670โ word-wrap: break-word;
671โ}
672โcode::before,
673โcode::after {
674โ letter-spacing: -0.2em;
675โ content: "\00a0";
676โ}
677โa > code {
678โ font-weight: normal;
679โ}
680โa > code::before {
681โ content: "๐ก";
682โ letter-spacing: 0.33em;
683โ}
684โa:hover > code {
685โ color: #c4953a;
686โ}
687โ@media (prefers-color-scheme: dark) {
688โ a:hover > code {
689โ color: #d8ac55;
690โ }
691โ}
692โpre {
693โ margin-top: 0;
694โ margin-bottom: 0;
695โ padding: 1em 1.25rem;
696โ /* Using rem here to align with lists etc. */
697โ overflow: auto;
698โ white-space: pre;
699โ word-wrap: normal;
700โ}
701โpre code {
702โ background-color: transparent;
703โ border: 0;
704โ font-size: 100%;
705โ max-width: auto;
706โ padding: 0;
707โ margin: 0;
708โ overflow: visible;
709โ line-height: inherit;
710โ white-space: pre;
711โ word-break: normal;
712โ word-wrap: normal;
713โ}
714โpre code::before,
715โpre code::after {
716โ content: normal;
717โ}
718โh1 {
719โ font-size: 3.052em;
720โ font-weight: 300;
721โ letter-spacing: -0.5px;
722โ line-height: 1.125;
723โ margin-top: 1.563rem;
724โ margin-bottom: 1.25rem;
725โ}
726โ@media (min-width: 52em) {
727โ h1 {
728โ font-size: 3.814em;
729โ margin-top: 5.96rem;
730โ }
731โ}
732โh2 {
733โ font-size: 1.953em;
734โ font-weight: normal;
735โ line-height: 1.25;
736โ margin-top: 3.052rem;
737โ margin-bottom: 1rem;
738โ}
739โh3 {
740โ font-size: 1.563em;
741โ font-weight: normal;
742โ line-height: 1.25;
743โ margin-top: 2.441rem;
744โ margin-bottom: 1rem;
745โ}
746โh4 {
747โ font-size: 1.25em;
748โ font-weight: normal;
749โ margin-top: 2.441rem;
750โ margin-bottom: 1rem;
751โ}
752โh1 + h2,
753โh1 + h3,
754โh1 + h4,
755โh2 + h3,
756โh2 + h4,
757โh3 + h4 {
758โ margin-top: 1rem;
759โ}
760โhr {
761โ border: none;
762โ height: 1px;
763โ background-color: #cccccc;
764โ}
765โ@media (prefers-color-scheme: dark) {
766โ hr {
767โ background-color: #43434e;
768โ }
769โ}
770โimg {
771โ border-style: none;
772โ max-width: 100%;
773โ}
774โp {
775โ font-size: 1em;
776โ margin-top: 1rem;
777โ margin-bottom: 1rem;
778โ}
779โtable {
780โ border-bottom: 1px solid #cccccc;
781โ border-collapse: collapse;
782โ border-spacing: 0;
783โ margin-top: 1rem;
784โ margin-bottom: 1rem;
785โ width: 100%;
786โ}
787โ@media (prefers-color-scheme: dark) {
788โ table {
789โ border-bottom-color: #43434e;
790โ }
791โ}
792โtd,
793โth {
794โ text-align: left;
795โ padding: 0.41em 0.51em;
796โ}
797โtd {
798โ border-top: 1px solid #cccccc;
799โ}
800โ@media (prefers-color-scheme: dark) {
801โ td {
802โ border-top-color: #43434e;
803โ }
804โ}
805โtd:first-child,
806โth:first-child {
807โ padding-left: 0;
808โ}
809โtd:last-child,
810โth:last-child {
811โ padding-right: 0;
812โ}
813โul {
814โ list-style-type: none;
815โ margin-top: 1rem;
816โ margin-bottom: 1rem;
817โ padding-left: 0;
818โ}
819โul li {
820โ position: relative;
821โ padding-left: 1.25em;
822โ}
823โul li::before {
824โ position: absolute;
825โ color: #a0a0a0;
826โ content: "โ";
827โ display: inline-block;
828โ margin-left: -1.25em;
829โ width: 1.25em;
830โ}
831โ@media (prefers-color-scheme: dark) {
832โ ul li::before {
833โ color: #a0a0a0;
834โ }
835โ}
836โ/* Tying this tightly to ul at the moment because it's a slight variation thereof */
837โul.ul--search li::before {
838โ content: "โฒ";
839โ top: -0.2em;
840โ transform: rotate(-45deg);
841โ}
842โol {
843โ margin-top: 1rem;
844โ margin-bottom: 1rem;
845โ padding-left: 1.25em;
846โ}
847โol li {
848โ position: relative;
849โ padding-left: 0;
850โ}
851โ/* Section: Components
852โ * ========================================================================== */
853โ/* Component: Badge
854โ * -------------------------------------------------------------------------- */
855โ.badge {
856โ position: relative;
857โ top: -0.1em;
858โ display: inline-block;
859โ background-color: #000000;
860โ border-radius: 1.3em;
861โ color: #ffffff;
862โ font-size: 77%;
863โ font-weight: bold;
864โ line-height: 1.563;
865โ text-align: center;
866โ height: 1.5em;
867โ width: 1.5em;
868โ}
869โ@media (prefers-color-scheme: dark) {
870โ .badge {
871โ background-color: #dedede;
872โ color: #141417;
873โ }
874โ}
875โ.badge.badge--package {
876โ background-color: #c4953a;
877โ letter-spacing: -0.1em;
878โ}
879โ@media (prefers-color-scheme: dark) {
880โ .badge.badge--package {
881โ background-color: #d8ac55;
882โ }
883โ}
884โ.badge.badge--module {
885โ background-color: #75B134;
886โ}
887โ/* Component: Declarations
888โ * -------------------------------------------------------------------------- */
889โ.decl__title {
890โ position: relative;
891โ padding-bottom: 0.328em;
892โ margin-bottom: 0.262em;
893โ}
894โ.decl__source {
895โ display: block;
896โ float: right;
897โ font-size: 64%;
898โ position: relative;
899โ top: 0.57em;
900โ}
901โ.decl__anchor,
902โ.decl__anchor:visited {
903โ position: absolute;
904โ left: -0.8em;
905โ color: #bababa;
906โ}
907โ@media (prefers-color-scheme: dark) {
908โ .decl__anchor,
909โ .decl__anchor:visited {
910โ color: #878787;
911โ }
912โ}
913โ.decl__anchor:hover {
914โ color: #c4953a;
915โ}
916โ@media (prefers-color-scheme: dark) {
917โ .decl__anchor:hover {
918โ color: #d8ac55;
919โ }
920โ}
921โ.decl__signature {
922โ background-color: transparent;
923โ border-radius: 0;
924โ border-top: 1px solid #cccccc;
925โ border-bottom: 1px solid #cccccc;
926โ padding: 0;
927โ}
928โ@media (prefers-color-scheme: dark) {
929โ .decl__signature {
930โ border-top-color: #43434e;
931โ border-bottom-color: #43434e;
932โ }
933โ}
934โ.decl__signature code {
935โ display: block;
936โ padding: 0.328em 0;
937โ padding-left: 2.441em;
938โ text-indent: -2.441em;
939โ white-space: normal;
940โ}
941โ.decl__role {
942โ font-family: "Roboto", sans-serif;
943โ font-style: italic;
944โ font-weight: normal;
945โ}
946โ/* See https://stackoverflow.com/a/32162038
947โ Content licensed under CC BY-SA 3.0
948โ*/
949โ.decl__role_hover[title] {
950โ /* Remove line that appears under abbr element */
951โ border-bottom: none;
952โ text-decoration: none;
953โ /* Ensure cursor doesn't change to question mark */
954โ cursor: inherit;
955โ}
956โ.decl__role_nominal::after {
957โ content: "nominal";
958โ}
959โ.decl__role_phantom::after {
960โ content: "phantom";
961โ}
962โ.decl__kind {
963โ border-bottom: 1px solid #cccccc;
964โ}
965โ@media (prefers-color-scheme: dark) {
966โ .decl__kind {
967โ border-bottom-color: #43434e;
968โ }
969โ}
970โ:target .decl__signature,
971โ:target .decl__signature code {
972โ /* We want the background to be transparent, even when the parent is a target */
973โ background-color: transparent;
974โ}
975โ.decl__body .keyword,
976โ.decl__body .syntax {
977โ color: #0b71b4;
978โ}
979โ@media (prefers-color-scheme: dark) {
980โ .decl__body .keyword,
981โ .decl__body .syntax {
982โ color: #3796d5;
983โ }
984โ}
985โ.decl__child_comments {
986โ margin-top: 1rem;
987โ margin-bottom: 1rem;
988โ}
989โ/* Component: Dependency Link
990โ * -------------------------------------------------------------------------- */
991โ.deplink {
992โ /* Currently no root styles, but keep the class as a namespace */
993โ}
994โ.deplink__link {
995โ display: inline-block;
996โ margin-right: 0.41em;
997โ}
998โ.deplink__version {
999โ color: #666666;
1000โ display: inline-block;
1001โ font-size: 0.8em;
1002โ line-height: 1;
1003โ}
1004โ@media (prefers-color-scheme: dark) {
1005โ .deplink__version {
1006โ color: #a0a0a0;
1007โ }
1008โ}
1009โ/* Component: Grouped List
1010โ * -------------------------------------------------------------------------- */
1011โ.grouped-list {
1012โ border-top: 1px solid #cccccc;
1013โ margin: 0 0 2.44em 0;
1014โ}
1015โ@media (prefers-color-scheme: dark) {
1016โ .grouped-list {
1017โ border-top-color: #43434e;
1018โ }
1019โ}
1020โ.grouped-list__title {
1021โ color: #666666;
1022โ font-size: 0.8em;
1023โ font-weight: 300;
1024โ letter-spacing: 1px;
1025โ margin: 0.8em 0 -0.1em 0;
1026โ text-transform: uppercase;
1027โ}
1028โ@media (prefers-color-scheme: dark) {
1029โ .grouped-list__title {
1030โ border-top-color: #a0a0a0;
1031โ }
1032โ}
1033โ.grouped-list__item {
1034โ margin: 0;
1035โ}
1036โ/* Component: Message
1037โ * -------------------------------------------------------------------------- */
1038โ.message {
1039โ border: 5px solid;
1040โ border-radius: 5px;
1041โ padding: 1em !important;
1042โ}
1043โ.message.message--error {
1044โ background-color: #fff0f0;
1045โ border-color: #c85050;
1046โ}
1047โ@media (prefers-color-scheme: dark) {
1048โ .message.message--error {
1049โ background-color: #6b0e0e;
1050โ border-color: #c85050;
1051โ }
1052โ}
1053โ.message.message--not-available {
1054โ background-color: #f0f096;
1055โ border-color: #e3e33d;
1056โ}
1057โ@media (prefers-color-scheme: dark) {
1058โ .message.message--not-available {
1059โ background-color: #56560b;
1060โ border-color: #b0b017;
1061โ }
1062โ}
1063โ/* Component: Multi Col
1064โ * Multiple columns side by side
1065โ * -------------------------------------------------------------------------- */
1066โ.multi-col {
1067โ margin-bottom: 2.44em;
1068โ}
1069โ.multi-col__col {
1070โ display: block;
1071โ padding-right: 1em;
1072โ position: relative;
1073โ width: 100%;
1074โ}
1075โ@media (min-width: 38em) and (max-width: 51.999999em) {
1076โ .multi-col__col {
1077โ float: left;
1078โ width: 50%;
1079โ }
1080โ .multi-col__col:nth-child(2n+3) {
1081โ clear: both;
1082โ }
1083โ}
1084โ@media (min-width: 52em) {
1085โ .multi-col__col {
1086โ float: left;
1087โ width: 33.333333%;
1088โ }
1089โ .multi-col__col:nth-child(3n+4) {
1090โ clear: both;
1091โ }
1092โ}
1093โ/* Component: Page Title
1094โ * -------------------------------------------------------------------------- */
1095โ.page-title {
1096โ margin: 4.77em 0 1.56em;
1097โ padding-bottom: 1.25em;
1098โ position: relative;
1099โ}
1100โ.page-title__title {
1101โ margin: 0 0 0 -0.05em;
1102โ /* Visually align on left edge */
1103โ}
1104โ.page-title__label {
1105โ position: relative;
1106โ color: #666666;
1107โ font-size: 0.8rem;
1108โ font-weight: 300;
1109โ letter-spacing: 1px;
1110โ margin-bottom: -0.8em;
1111โ text-transform: uppercase;
1112โ z-index: 1;
1113โ}
1114โ@media (prefers-color-scheme: dark) {
1115โ .page-title__label {
1116โ color: #a0a0a0;
1117โ }
1118โ}
1119โ/* Component: Top Banner
1120โ * -------------------------------------------------------------------------- */
1121โ.top-banner {
1122โ background-color: #1d222d;
1123โ color: #f0f0f0;
1124โ font-weight: normal;
1125โ}
1126โ@media (prefers-color-scheme: dark) {
1127โ .top-banner {
1128โ background-color: #1d222d;
1129โ color: #f0f0f0;
1130โ }
1131โ}
1132โ.top-banner__logo,
1133โ.top-banner__logo:visited {
1134โ float: left;
1135โ color: #f0f0f0;
1136โ font-size: 2.44em;
1137โ font-weight: 300;
1138โ line-height: 90px;
1139โ margin: 0;
1140โ}
1141โ@media (prefers-color-scheme: dark) {
1142โ .top-banner__logo,
1143โ .top-banner__logo:visited {
1144โ color: #f0f0f0;
1145โ }
1146โ}
1147โ.top-banner__logo:hover {
1148โ color: #c4953a;
1149โ text-decoration: none;
1150โ}
1151โ.top-banner__form {
1152โ margin-bottom: 1.25em;
1153โ}
1154โ.top-banner__form input {
1155โ border: 1px solid #1d222d;
1156โ border-radius: 3px;
1157โ background-color: #ffffff;
1158โ color: #1d222d;
1159โ font-weight: 300;
1160โ line-height: 2;
1161โ padding: 0.21em 0.512em;
1162โ width: 100%;
1163โ}
1164โ@media (prefers-color-scheme: dark) {
1165โ .top-banner__form input {
1166โ border-color: #1d222d;
1167โ background-color: #141417;
1168โ color: #dedede;
1169โ }
1170โ}
1171โ.top-banner__actions {
1172โ float: right;
1173โ text-align: right;
1174โ}
1175โ.top-banner__actions__item {
1176โ display: inline-block;
1177โ line-height: 90px;
1178โ margin: 0;
1179โ padding-left: 1.25em;
1180โ}
1181โ.top-banner__actions__item:first-child {
1182โ padding-left: 0;
1183โ}
1184โ.top-banner__actions__item a,
1185โ.top-banner__actions__item a:visited {
1186โ color: #f0f0f0;
1187โ}
1188โ@media (prefers-color-scheme: dark) {
1189โ .top-banner__actions__item a,
1190โ .top-banner__actions__item a:visited {
1191โ color: #f0f0f0;
1192โ }
1193โ}
1194โ.top-banner__actions__item a:hover {
1195โ color: #c4953a;
1196โ}
1197โ@media (prefers-color-scheme: dark) {
1198โ .top-banner__actions__item a:hover {
1199โ color: #d8ac55;
1200โ }
1201โ}
1202โ@media (min-width: 38em) {
1203โ .top-banner__logo {
1204โ float: left;
1205โ width: 25%;
1206โ }
1207โ .top-banner__form {
1208โ float: left;
1209โ line-height: 90px;
1210โ margin-bottom: 0;
1211โ width: 50%;
1212โ }
1213โ .top-banner__actions {
1214โ float: right;
1215โ width: 25%;
1216โ }
1217โ}
1218โ/* Component: Search Results
1219โ * -------------------------------------------------------------------------- */
1220โ.result.result--empty {
1221โ font-size: 1.25em;
1222โ}
1223โ.result__title {
1224โ font-size: 1.25em;
1225โ margin-bottom: 0.2rem;
1226โ}
1227โ.result__badge {
1228โ margin-left: -0.1em;
1229โ}
1230โ.result__body > *:first-child {
1231โ margin-top: 0!important;
1232โ}
1233โ.result__body > *:last-child {
1234โ margin-bottom: 0!important;
1235โ}
1236โ.result__signature {
1237โ background-color: transparent;
1238โ border-radius: 0;
1239โ border-top: 1px solid #cccccc;
1240โ border-bottom: 1px solid #cccccc;
1241โ padding: 0.328em 0;
1242โ}
1243โ@media (prefers-color-scheme: dark) {
1244โ .result__signature {
1245โ border-top-color: #43434e;
1246โ border-bottom-color: #43434e;
1247โ }
1248โ}
1249โ.result__signature code {
1250โ display: block;
1251โ padding-left: 2.441em;
1252โ text-indent: -2.441em;
1253โ white-space: normal;
1254โ}
1255โ.result__actions {
1256โ margin-top: 0.2rem;
1257โ}
1258โ.result__actions__item {
1259โ font-size: 80%;
1260โ}
1261โ.result__actions__item + .result__actions__item {
1262โ margin-left: 0.65em;
1263โ}
1264โ/* Component: Version Selector
1265โ * -------------------------------------------------------------------------- */
1266โ.version-selector {
1267โ margin-bottom: 0.8em;
1268โ}
1269โ@media (min-width: 38em) {
1270โ .version-selector {
1271โ position: absolute;
1272โ top: 0.8em;
1273โ right: 0;
1274โ margin-bottom: 0;
1275โ }
1276โ}
1277โ/* Section: FIXME
1278โ * These styles should be cleaned up
1279โ * ========================================================================== */
1280โ/* Help paragraphs */
1281โ.help {
1282โ padding: 5px 0;
1283โ}
1284โ.help h3 {
1285โ /* FIXME: target with class */
1286โ margin-top: 16px;
1287โ}
1288โ/* Section: Markdown
1289โ * Github rendered README
1290โ * ========================================================================== */
1291โ.markdown-body {
1292โ /*
1293โ Useful for narrow screens, such as mobiles. Documentation often contains URLs
1294โ which would otherwise force the page to become wider, and force creation of
1295โ horizontal scrollbars. Yuck.
1296โ */
1297โ word-wrap: break-word;
1298โ}
1299โ.markdown-body > *:first-child {
1300โ margin-top: 0 !important;
1301โ}
1302โ.markdown-body > *:last-child {
1303โ margin-bottom: 0 !important;
1304โ}
1305โ.markdown-body a:not([href]) {
1306โ color: inherit;
1307โ text-decoration: none;
1308โ}
1309โ.markdown-body blockquote {
1310โ margin: 0;
1311โ padding: 0 1em;
1312โ color: #777;
1313โ border-left: 0.25em solid #ddd;
1314โ}
1315โ@media (prefers-color-scheme: dark) {
1316โ .markdown-body blockquote {
1317โ border-left-color: #444;
1318โ }
1319โ}
1320โ.markdown-body blockquote > :first-child {
1321โ margin-top: 0;
1322โ}
1323โ.markdown-body blockquote > :last-child {
1324โ margin-bottom: 0;
1325โ}
1326โ.markdown-body .anchor {
1327โ /* We hide the anchor because the link doesn't point to a valid location */
1328โ display: none;
1329โ}
1330โ.markdown-body .pl-k {
1331โ /* Keyword */
1332โ color: #a0a0a0;
1333โ}
1334โ@media (prefers-color-scheme: dark) {
1335โ .markdown-body .pl-k {
1336โ color: #676767;
1337โ }
1338โ}
1339โ.markdown-body .pl-c1,
1340โ.markdown-body .pl-en {
1341โ /* Not really sure what this is */
1342โ color: #39d;
1343โ}
1344โ.markdown-body .pl-s {
1345โ /* String literals */
1346โ color: #1a1;
1347โ}
1348โ.markdown-body .pl-cce {
1349โ /* String literal escape sequences */
1350โ color: #921;
1351โ}
1352โ.markdown-body .pl-smi {
1353โ /* type variables? */
1354โ color: #62b;
1355โ}
1356โ</style></head><body><div class="everything-except-footer"><div class="top-banner clearfix"><div class="container clearfix"><div style="float: left; font-size: 2.44em; font-weight: 300; line-height: 90px; margin: 0">PureScript API documentation</div><div class="top-banner__actions"><div class="top-banner__actions__item"><a href="index.html">Index</a></div></div></div></div><main class="container clearfix" role="main"><div class="page-title clearfix"><div class="page-title__label">Module</div><h1 class="page-title__title">Control.Alt</h1></div><div class="col col--main"><div class="decl" id="t:Alt"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#t:Alt">#</a><span>Alt</span> </h3><div class="decl__body"><pre class="decl__signature"><code class="decl__kind"><span class="keyword">class</span> <a href="Control.Alt.html#t:Alt" title="Control.Alt.Alt"><span class="ctor">Alt</span></a> <span class="syntax">::</span> <span class="syntax">(</span><a href="Prim.html#t:Type" title="Prim.Type"><span class="ctor">Type</span></a> <span class="syntax">-></span> <a href="Prim.html#t:Type" title="Prim.Type"><span class="ctor">Type</span></a><span class="syntax">)</span> <span class="syntax">-></span> <a href="Prim.html#t:Constraint" title="Prim.Constraint"><span class="ctor">Constraint</span></a></code><code><span class="keyword">class</span> <span class="syntax">(</span><a href="Data.Functor.html#t:Functor" title="Data.Functor.Functor"><span class="ctor">Functor</span></a> f<span class="syntax">)</span> <span class="syntax"><=</span> <a href="Control.Alt.html#t:Alt" title="Control.Alt.Alt"><span class="ctor">Alt</span></a> f <span class="keyword">where</span></code></pre><p>The <code>Alt</code> type class identifies an associative operation on a type
1357โconstructor. It is similar to <code>Semigroup</code>, except that it applies to
1358โtypes of kind <code>* -> *</code>, like <code>Array</code> or <code>List</code>, rather than concrete types
1359โ<code>String</code> or <code>Number</code>.</p>
1360โ<p><code>Alt</code> instances are required to satisfy the following laws:</p>
1361โ<ul>
1362โ<li>Associativity: <code>(x <|> y) <|> z == x <|> (y <|> z)</code></li>
1363โ<li>Distributivity: <code>f <$> (x <|> y) == (f <$> x) <|> (f <$> y)</code></li>
1364โ</ul>
1365โ<p>For example, the <code>Array</code> (<code>[]</code>) type is an instance of <code>Alt</code>, where
1366โ<code>(<|>)</code> is defined to be concatenation.</p>
1367โ<p>A common use case is to select the first "valid" item, or, if all items
1368โare "invalid", the last "invalid" item.</p>
1369โ<p>For example:</p>
1370โ<pre class="purescript"><code>import Control.Alt ((<|>))
1371โimport Data.Maybe (Maybe(..)
1372โimport Data.Either (Either(..))
1373โ
1374โNothing <|> Just 1 <|> Just 2 == Just 1
1375โLeft "err" <|> Right 1 <|> Right 2 == Right 1
1376โLeft "err 1" <|> Left "err 2" <|> Left "err 3" == Left "err 3"
1377โ</code></pre>
1378โ<h4>Members</h4><ul><li id="v:alt"><code><a href="Control.Alt.html#v:alt" title="Control.Alt.alt"><span class="ident">alt</span></a> <span class="syntax">::</span> <span class="keyword">forall</span> <span class="syntax"></span>a<span class="syntax">.</span> f a <span class="syntax">-></span> f a <span class="syntax">-></span> f a</code></li></ul><h4>Instances</h4><ul><li id="v:altArray"><code><a href="Control.Alt.html#t:Alt" title="Control.Alt.Alt"><span class="ctor">Alt</span></a> <a href="Prim.html#t:Array" title="Prim.Array"><span class="ctor">Array</span></a></code></li></ul></div></div><div class="decl" id="v:(<|>)"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:(<|>)">#</a><span>(<|>)</span> </h3><div class="decl__body"><p>Operator alias for Control.Alt.alt <em>(right-associative / precedence 3)</em></p></div></div><h2 class="re-exports">Re-exports from <a href="Data.Functor.html">Data.Functor</a></h2><div class="decl" id="t:Functor"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#t:Functor">#</a><span>Functor</span> </h3><div class="decl__body"><pre class="decl__signature"><code class="decl__kind"><span class="keyword">class</span> <a href="Control.Alt.html#t:Functor" title="Control.Alt.Functor"><span class="ctor">Functor</span></a> <span class="syntax">::</span> <span class="syntax">(</span><a href="Prim.html#t:Type" title="Prim.Type"><span class="ctor">Type</span></a> <span class="syntax">-></span> <a href="Prim.html#t:Type" title="Prim.Type"><span class="ctor">Type</span></a><span class="syntax">)</span> <span class="syntax">-></span> <a href="Prim.html#t:Constraint" title="Prim.Constraint"><span class="ctor">Constraint</span></a></code><code><span class="keyword">class</span> <a href="Control.Alt.html#t:Functor" title="Control.Alt.Functor"><span class="ctor">Functor</span></a> f <span class="keyword">where</span></code></pre><p>A <code>Functor</code> is a type constructor which supports a mapping operation
1379โ<code>map</code>.</p>
1380โ<p><code>map</code> can be used to turn functions <code>a -> b</code> into functions
1381โ<code>f a -> f b</code> whose argument and return types use the type constructor <code>f</code>
1382โto represent some computational context.</p>
1383โ<p>Instances must satisfy the following laws:</p>
1384โ<ul>
1385โ<li>Identity: <code>map identity = identity</code></li>
1386โ<li>Composition: <code>map (f <<< g) = map f <<< map g</code></li>
1387โ</ul>
1388โ<h4>Members</h4><ul><li id="v:map"><code><a href="Control.Alt.html#v:map" title="Control.Alt.map"><span class="ident">map</span></a> <span class="syntax">::</span> <span class="keyword">forall</span> <span class="syntax"></span>a <span class="syntax"></span>b<span class="syntax">.</span> <span class="syntax">(</span>a <span class="syntax">-></span> b<span class="syntax">)</span> <span class="syntax">-></span> f a <span class="syntax">-></span> f b</code></li></ul><h4>Instances</h4><ul><li id="v:functorFn"><code><a href="Data.Functor.html#t:Functor" title="Data.Functor.Functor"><span class="ctor">Functor</span></a> <span class="syntax">(</span><a href="Prim.html#t:Function" title="Prim.Function"><span class="ctor">Function</span></a> r<span class="syntax">)</span></code></li><li id="v:functorArray"><code><a href="Data.Functor.html#t:Functor" title="Data.Functor.Functor"><span class="ctor">Functor</span></a> <a href="Prim.html#t:Array" title="Prim.Array"><span class="ctor">Array</span></a></code></li><li id="v:functorProxy"><code><a href="Data.Functor.html#t:Functor" title="Data.Functor.Functor"><span class="ctor">Functor</span></a> <a href="Type.Proxy.html#t:Proxy" title="Type.Proxy.Proxy"><span class="ctor">Proxy</span></a></code></li></ul></div></div><div class="decl" id="v:void"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:void">#</a><span>void</span> </h3><div class="decl__body"><pre class="decl__signature"><code><a href="Control.Alt.html#v:void" title="Control.Alt.void"><span class="ident">void</span></a> <span class="syntax">::</span> <span class="keyword">forall</span> <span class="syntax"></span>f <span class="syntax"></span>a<span class="syntax">.</span> <a href="Data.Functor.html#t:Functor" title="Data.Functor.Functor"><span class="ctor">Functor</span></a> f <span class="syntax">=></span> f a <span class="syntax">-></span> f <a href="Data.Unit.html#t:Unit" title="Data.Unit.Unit"><span class="ctor">Unit</span></a></code></pre><p>The <code>void</code> function is used to ignore the type wrapped by a
1389โ<code>Functor</code>, replacing it with <code>Unit</code> and keeping only the type
1390โinformation provided by the type constructor itself.</p>
1391โ<p><code>void</code> is often useful when using <code>do</code> notation to change the return type
1392โof a monadic computation:</p>
1393โ<pre class="purescript"><code>main = forE 1 10 \n -> void do
1394โ print n
1395โ print (n * n)
1396โ</code></pre>
1397โ</div></div><div class="decl" id="v:(<$>)"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:(<$>)">#</a><span>(<$>)</span> </h3><div class="decl__body"><p>Operator alias for Data.Functor.map <em>(left-associative / precedence 4)</em></p></div></div><div class="decl" id="v:(<$)"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:(<$)">#</a><span>(<$)</span> </h3><div class="decl__body"><p>Operator alias for Data.Functor.voidRight <em>(left-associative / precedence 4)</em></p></div></div><div class="decl" id="v:(<#>)"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:(<#>)">#</a><span>(<#>)</span> </h3><div class="decl__body"><p>Operator alias for Data.Functor.mapFlipped <em>(left-associative / precedence 1)</em></p></div></div><div class="decl" id="v:($>)"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:($>)">#</a><span>($>)</span> </h3><div class="decl__body"><p>Operator alias for Data.Functor.voidLeft <em>(left-associative / precedence 4)</em></p></div></div></div><div class="col col--aside"><h3>Modules</h3><ul><li><a href="Ansi.Codes.html">Ansi.Codes</a></li><li><a href="Ansi.Output.html">Ansi.Output</a></li><li><a href="Bolson.Control.html">Bolson.Control</a></li><li><a href="Bolson.Core.html">Bolson.Core</a></li><li><a href="Control.Alt.html">Control.Alt</a></li><li><a href="Control.Alternative.html">Control.Alternative</a></li><li><a href="Control.Applicative.html">Control.Applicative</a></li><li><a href="Control.Apply.html">Control.Apply</a></li><li><a href="Control.Biapplicative.html">Control.Biapplicative</a></li><li><a href="Control.Biapply.html">Control.Biapply</a></li><li><a href="Control.Bind.html">Control.Bind</a></li><li><a href="Control.Category.html">Control.Category</a></li><li><a href="Control.Comonad.html">Control.Comonad</a></li><li><a href="Control.Comonad.Cofree.html">Control.Comonad.Cofree</a></li><li><a href="Control.Comonad.Cofree.Class.html">Control.Comonad.Cofree.Class</a></li><li><a href="Control.Comonad.Env.html">Control.Comonad.Env</a></li><li><a href="Control.Comonad.Env.Class.html">Control.Comonad.Env.Class</a></li><li><a href="Control.Comonad.Env.Trans.html">Control.Comonad.Env.Trans</a></li><li><a href="Control.Comonad.Store.html">Control.Comonad.Store</a></li><li><a href="Control.Comonad.Store.Class.html">Control.Comonad.Store.Class</a></li><li><a href="Control.Comonad.Store.Trans.html">Control.Comonad.Store.Trans</a></li><li><a href="Control.Comonad.Traced.html">Control.Comonad.Traced</a></li><li><a href="Control.Comonad.Traced.Class.html">Control.Comonad.Traced.Class</a></li><li><a href="Control.Comonad.Traced.Trans.html">Control.Comonad.Traced.Trans</a></li><li><a href="Control.Comonad.Trans.Class.html">Control.Comonad.Trans.Class</a></li><li><a href="Control.Extend.html">Control.Extend</a></li><li><a href="Control.Lazy.html">Control.Lazy</a></li><li><a href="Control.Monad.html">Control.Monad</a></li><li><a href="Control.Monad.Cont.html">Control.Monad.Cont</a></li><li><a href="Control.Monad.Cont.Class.html">Control.Monad.Cont.Class</a></li><li><a href="Control.Monad.Cont.Trans.html">Control.Monad.Cont.Trans</a></li><li><a href="Control.Monad.Error.Class.html">Control.Monad.Error.Class</a></li><li><a href="Control.Monad.Except.html">Control.Monad.Except</a></li><li><a href="Control.Monad.Except.Trans.html">Control.Monad.Except.Trans</a></li><li><a href="Control.Monad.Fork.Class.html">Control.Monad.Fork.Class</a></li><li><a href="Control.Monad.Free.html">Control.Monad.Free</a></li><li><a href="Control.Monad.Free.Class.html">Control.Monad.Free.Class</a></li><li><a href="Control.Monad.Gen.html">Control.Monad.Gen</a></li><li><a href="Control.Monad.Gen.Class.html">Control.Monad.Gen.Class</a></li><li><a href="Control.Monad.Gen.Common.html">Control.Monad.Gen.Common</a></li><li><a href="Control.Monad.Identity.Trans.html">Control.Monad.Identity.Trans</a></li><li><a href="Control.Monad.List.Trans.html">Control.Monad.List.Trans</a></li><li><a href="Control.Monad.Maybe.Trans.html">Control.Monad.Maybe.Trans</a></li><li><a href="Control.Monad.Morph.html">Control.Monad.Morph</a></li><li><a href="Control.Monad.RWS.html">Control.Monad.RWS</a></li><li><a href="Control.Monad.RWS.Trans.html">Control.Monad.RWS.Trans</a></li><li><a href="Control.Monad.Reader.html">Control.Monad.Reader</a></li><li><a href="Control.Monad.Reader.Class.html">Control.Monad.Reader.Class</a></li><li><a href="Control.Monad.Reader.Trans.html">Control.Monad.Reader.Trans</a></li><li><a href="Control.Monad.Rec.Class.html">Control.Monad.Rec.Class</a></li><li><a href="Control.Monad.ST.html">Control.Monad.ST</a></li><li><a href="Control.Monad.ST.Class.html">Control.Monad.ST.Class</a></li><li><a href="Control.Monad.ST.Global.html">Control.Monad.ST.Global</a></li><li><a href="Control.Monad.ST.Internal.html">Control.Monad.ST.Internal</a></li><li><a href="Control.Monad.ST.Ref.html">Control.Monad.ST.Ref</a></li><li><a href="Control.Monad.ST.Uncurried.html">Control.Monad.ST.Uncurried</a></li><li><a href="Control.Monad.State.html">Control.Monad.State</a></li><li><a href="Control.Monad.State.Class.html">Control.Monad.State.Class</a></li><li><a href="Control.Monad.State.Trans.html">Control.Monad.State.Trans</a></li><li><a href="Control.Monad.Trampoline.html">Control.Monad.Trampoline</a></li><li><a href="Control.Monad.Trans.Class.html">Control.Monad.Trans.Class</a></li><li><a href="Control.Monad.Writer.html">Control.Monad.Writer</a></li><li><a href="Control.Monad.Writer.Class.html">Control.Monad.Writer.Class</a></li><li><a href="Control.Monad.Writer.Trans.html">Control.Monad.Writer.Trans</a></li><li><a href="Control.MonadPlus.html">Control.MonadPlus</a></li><li><a href="Control.Parallel.html">Control.Parallel</a></li><li><a href="Control.Parallel.Class.html">Control.Parallel.Class</a></li><li><a href="Control.Plus.html">Control.Plus</a></li><li><a href="Control.Semigroupoid.html">Control.Semigroupoid</a></li><li><a href="Data.Array.html">Data.Array</a></li><li><a href="Data.Array.NonEmpty.html">Data.Array.NonEmpty</a></li><li><a href="Data.Array.NonEmpty.Internal.html">Data.Array.NonEmpty.Internal</a></li><li><a href="Data.Array.Partial.html">Data.Array.Partial</a></li><li><a href="Data.Array.ST.html">Data.Array.ST</a></li><li><a href="Data.Array.ST.Iterator.html">Data.Array.ST.Iterator</a></li><li><a href="Data.Array.ST.Partial.html">Data.Array.ST.Partial</a></li><li><a href="Data.ArrayBuffer.Types.html">Data.ArrayBuffer.Types</a></li><li><a href="Data.Bifoldable.html">Data.Bifoldable</a></li><li><a href="Data.Bifunctor.html">Data.Bifunctor</a></li><li><a href="Data.Bifunctor.Join.html">Data.Bifunctor.Join</a></li><li><a href="Data.Bitraversable.html">Data.Bitraversable</a></li><li><a href="Data.Boolean.html">Data.Boolean</a></li><li><a href="Data.BooleanAlgebra.html">Data.BooleanAlgebra</a></li><li><a href="Data.Bounded.html">Data.Bounded</a></li><li><a href="Data.Bounded.Generic.html">Data.Bounded.Generic</a></li><li><a href="Data.CatList.html">Data.CatList</a></li><li><a href="Data.CatQueue.html">Data.CatQueue</a></li><li><a href="Data.Char.html">Data.Char</a></li><li><a href="Data.Char.Gen.html">Data.Char.Gen</a></li><li><a href="Data.CommutativeRing.html">Data.CommutativeRing</a></li><li><a href="Data.Compactable.html">Data.Compactable</a></li><li><a href="Data.Comparison.html">Data.Comparison</a></li><li><a href="Data.Const.html">Data.Const</a></li><li><a href="Data.Coyoneda.html">Data.Coyoneda</a></li><li><a href="Data.Date.html">Data.Date</a></li><li><a href="Data.Date.Component.html">Data.Date.Component</a></li><li><a href="Data.Date.Component.Gen.html">Data.Date.Component.Gen</a></li><li><a href="Data.Date.Gen.html">Data.Date.Gen</a></li><li><a href="Data.DateTime.html">Data.DateTime</a></li><li><a href="Data.DateTime.Gen.html">Data.DateTime.Gen</a></li><li><a href="Data.DateTime.Instant.html">Data.DateTime.Instant</a></li><li><a href="Data.Decidable.html">Data.Decidable</a></li><li><a href="Data.Decide.html">Data.Decide</a></li><li><a href="Data.Distributive.html">Data.Distributive</a></li><li><a href="Data.Divide.html">Data.Divide</a></li><li><a href="Data.Divisible.html">Data.Divisible</a></li><li><a href="Data.DivisionRing.html">Data.DivisionRing</a></li><li><a href="Data.Either.html">Data.Either</a></li><li><a href="Data.Either.Inject.html">Data.Either.Inject</a></li><li><a href="Data.Either.Nested.html">Data.Either.Nested</a></li><li><a href="Data.Enum.html">Data.Enum</a></li><li><a href="Data.Enum.Gen.html">Data.Enum.Gen</a></li><li><a href="Data.Enum.Generic.html">Data.Enum.Generic</a></li><li><a href="Data.Eq.html">Data.Eq</a></li><li><a href="Data.Eq.Generic.html">Data.Eq.Generic</a></li><li><a href="Data.Equivalence.html">Data.Equivalence</a></li><li><a href="Data.EuclideanRing.html">Data.EuclideanRing</a></li><li><a href="Data.Exists.html">Data.Exists</a></li><li><a href="Data.FastVect.Common.html">Data.FastVect.Common</a></li><li><a href="Data.FastVect.Common.Matrix.html">Data.FastVect.Common.Matrix</a></li><li><a href="Data.FastVect.FastVect.html">Data.FastVect.FastVect</a></li><li><a href="Data.FastVect.FastVect.Matrix.html">Data.FastVect.FastVect.Matrix</a></li><li><a href="Data.FastVect.MinLenVect.html">Data.FastVect.MinLenVect</a></li><li><a href="Data.FastVect.Sparse.Read.html">Data.FastVect.Sparse.Read</a></li><li><a href="Data.FastVect.Sparse.Write.html">Data.FastVect.Sparse.Write</a></li><li><a href="Data.Field.html">Data.Field</a></li><li><a href="Data.Filterable.html">Data.Filterable</a></li><li><a href="Data.Foldable.html">Data.Foldable</a></li><li><a href="Data.FoldableWithIndex.html">Data.FoldableWithIndex</a></li><li><a href="Data.Function.html">Data.Function</a></li><li><a href="Data.Function.Uncurried.html">Data.Function.Uncurried</a></li><li><a href="Data.Functor.html">Data.Functor</a></li><li><a href="Data.Functor.App.html">Data.Functor.App</a></li><li><a href="Data.Functor.Clown.html">Data.Functor.Clown</a></li><li><a href="Data.Functor.Compose.html">Data.Functor.Compose</a></li><li><a href="Data.Functor.Contravariant.html">Data.Functor.Contravariant</a></li><li><a href="Data.Functor.Coproduct.html">Data.Functor.Coproduct</a></li><li><a href="Data.Functor.Coproduct.Inject.html">Data.Functor.Coproduct.Inject</a></li><li><a href="Data.Functor.Coproduct.Nested.html">Data.Functor.Coproduct.Nested</a></li><li><a href="Data.Functor.Costar.html">Data.Functor.Costar</a></li><li><a href="Data.Functor.Flip.html">Data.Functor.Flip</a></li><li><a href="Data.Functor.Invariant.html">Data.Functor.Invariant</a></li><li><a href="Data.Functor.Joker.html">Data.Functor.Joker</a></li><li><a href="Data.Functor.Product.html">Data.Functor.Product</a></li><li><a href="Data.Functor.Product.Nested.html">Data.Functor.Product.Nested</a></li><li><a href="Data.Functor.Product2.html">Data.Functor.Product2</a></li><li><a href="Data.Functor.Variant.html">Data.Functor.Variant</a></li><li><a href="Data.FunctorWithIndex.html">Data.FunctorWithIndex</a></li><li><a href="Data.Generic.Rep.html">Data.Generic.Rep</a></li><li><a href="Data.HeytingAlgebra.html">Data.HeytingAlgebra</a></li><li><a href="Data.HeytingAlgebra.Generic.html">Data.HeytingAlgebra.Generic</a></li><li><a href="Data.Identity.html">Data.Identity</a></li><li><a href="Data.Int.html">Data.Int</a></li><li><a href="Data.Int.Bits.html">Data.Int.Bits</a></li><li><a href="Data.Interval.html">Data.Interval</a></li><li><a href="Data.Interval.Duration.html">Data.Interval.Duration</a></li><li><a href="Data.Interval.Duration.Iso.html">Data.Interval.Duration.Iso</a></li><li><a href="Data.JSDate.html">Data.JSDate</a></li><li><a href="Data.Lazy.html">Data.Lazy</a></li><li><a href="Data.List.html">Data.List</a></li><li><a href="Data.List.Internal.html">Data.List.Internal</a></li><li><a href="Data.List.Lazy.html">Data.List.Lazy</a></li><li><a href="Data.List.Lazy.NonEmpty.html">Data.List.Lazy.NonEmpty</a></li><li><a href="Data.List.Lazy.Types.html">Data.List.Lazy.Types</a></li><li><a href="Data.List.NonEmpty.html">Data.List.NonEmpty</a></li><li><a href="Data.List.Partial.html">Data.List.Partial</a></li><li><a href="Data.List.Types.html">Data.List.Types</a></li><li><a href="Data.List.ZipList.html">Data.List.ZipList</a></li><li><a href="Data.Map.html">Data.Map</a></li><li><a href="Data.Map.Gen.html">Data.Map.Gen</a></li><li><a href="Data.Map.Internal.html">Data.Map.Internal</a></li><li><a href="Data.Maybe.html">Data.Maybe</a></li><li><a href="Data.Maybe.First.html">Data.Maybe.First</a></li><li><a href="Data.Maybe.Last.html">Data.Maybe.Last</a></li><li><a href="Data.MediaType.html">Data.MediaType</a></li><li><a href="Data.MediaType.Common.html">Data.MediaType.Common</a></li><li><a href="Data.Monoid.html">Data.Monoid</a></li><li><a href="Data.Monoid.Additive.html">Data.Monoid.Additive</a></li><li><a href="Data.Monoid.Alternate.html">Data.Monoid.Alternate</a></li><li><a href="Data.Monoid.Conj.html">Data.Monoid.Conj</a></li><li><a href="Data.Monoid.Disj.html">Data.Monoid.Disj</a></li><li><a href="Data.Monoid.Dual.html">Data.Monoid.Dual</a></li><li><a href="Data.Monoid.Endo.html">Data.Monoid.Endo</a></li><li><a href="Data.Monoid.Generic.html">Data.Monoid.Generic</a></li><li><a href="Data.Monoid.Multiplicative.html">Data.Monoid.Multiplicative</a></li><li><a href="Data.NaturalTransformation.html">Data.NaturalTransformation</a></li><li><a href="Data.Newtype.html">Data.Newtype</a></li><li><a href="Data.NonEmpty.html">Data.NonEmpty</a></li><li><a href="Data.Nullable.html">Data.Nullable</a></li><li><a href="Data.Number.html">Data.Number</a></li><li><a href="Data.Number.Approximate.html">Data.Number.Approximate</a></li><li><a href="Data.Number.Format.html">Data.Number.Format</a></li><li><a href="Data.Op.html">Data.Op</a></li><li><a href="Data.Ord.html">Data.Ord</a></li><li><a href="Data.Ord.Down.html">Data.Ord.Down</a></li><li><a href="Data.Ord.Generic.html">Data.Ord.Generic</a></li><li><a href="Data.Ord.Max.html">Data.Ord.Max</a></li><li><a href="Data.Ord.Min.html">Data.Ord.Min</a></li><li><a href="Data.Ordering.html">Data.Ordering</a></li><li><a href="Data.Posix.html">Data.Posix</a></li><li><a href="Data.Posix.Signal.html">Data.Posix.Signal</a></li><li><a href="Data.Predicate.html">Data.Predicate</a></li><li><a href="Data.Profunctor.html">Data.Profunctor</a></li><li><a href="Data.Profunctor.Choice.html">Data.Profunctor.Choice</a></li><li><a href="Data.Profunctor.Closed.html">Data.Profunctor.Closed</a></li><li><a href="Data.Profunctor.Cochoice.html">Data.Profunctor.Cochoice</a></li><li><a href="Data.Profunctor.Costrong.html">Data.Profunctor.Costrong</a></li><li><a href="Data.Profunctor.Join.html">Data.Profunctor.Join</a></li><li><a href="Data.Profunctor.Split.html">Data.Profunctor.Split</a></li><li><a href="Data.Profunctor.Star.html">Data.Profunctor.Star</a></li><li><a href="Data.Profunctor.Strong.html">Data.Profunctor.Strong</a></li><li><a href="Data.Reflectable.html">Data.Reflectable</a></li><li><a href="Data.Ring.html">Data.Ring</a></li><li><a href="Data.Ring.Generic.html">Data.Ring.Generic</a></li><li><a href="Data.Semigroup.html">Data.Semigroup</a></li><li><a href="Data.Semigroup.First.html">Data.Semigroup.First</a></li><li><a href="Data.Semigroup.Foldable.html">Data.Semigroup.Foldable</a></li><li><a href="Data.Semigroup.Generic.html">Data.Semigroup.Generic</a></li><li><a href="Data.Semigroup.Last.html">Data.Semigroup.Last</a></li><li><a href="Data.Semigroup.Traversable.html">Data.Semigroup.Traversable</a></li><li><a href="Data.Semiring.html">Data.Semiring</a></li><li><a href="Data.Semiring.Generic.html">Data.Semiring.Generic</a></li><li><a href="Data.Set.html">Data.Set</a></li><li><a href="Data.Set.NonEmpty.html">Data.Set.NonEmpty</a></li><li><a href="Data.Show.html">Data.Show</a></li><li><a href="Data.Show.Generic.html">Data.Show.Generic</a></li><li><a href="Data.String.html">Data.String</a></li><li><a href="Data.String.CaseInsensitive.html">Data.String.CaseInsensitive</a></li><li><a href="Data.String.CodePoints.html">Data.String.CodePoints</a></li><li><a href="Data.String.CodeUnits.html">Data.String.CodeUnits</a></li><li><a href="Data.String.Common.html">Data.String.Common</a></li><li><a href="Data.String.Gen.html">Data.String.Gen</a></li><li><a href="Data.String.NonEmpty.html">Data.String.NonEmpty</a></li><li><a href="Data.String.NonEmpty.CaseInsensitive.html">Data.String.NonEmpty.CaseInsensitive</a></li><li><a href="Data.String.NonEmpty.CodePoints.html">Data.String.NonEmpty.CodePoints</a></li><li><a href="Data.String.NonEmpty.CodeUnits.html">Data.String.NonEmpty.CodeUnits</a></li><li><a href="Data.String.NonEmpty.Internal.html">Data.String.NonEmpty.Internal</a></li><li><a href="Data.String.Pattern.html">Data.String.Pattern</a></li><li><a href="Data.String.Regex.html">Data.String.Regex</a></li><li><a href="Data.String.Regex.Flags.html">Data.String.Regex.Flags</a></li><li><a href="Data.String.Regex.Unsafe.html">Data.String.Regex.Unsafe</a></li><li><a href="Data.String.Unsafe.html">Data.String.Unsafe</a></li><li><a href="Data.Symbol.html">Data.Symbol</a></li><li><a href="Data.Time.html">Data.Time</a></li><li><a href="Data.Time.Component.html">Data.Time.Component</a></li><li><a href="Data.Time.Component.Gen.html">Data.Time.Component.Gen</a></li><li><a href="Data.Time.Duration.html">Data.Time.Duration</a></li><li><a href="Data.Time.Duration.Gen.html">Data.Time.Duration.Gen</a></li><li><a href="Data.Time.Gen.html">Data.Time.Gen</a></li><li><a href="Data.Traversable.html">Data.Traversable</a></li><li><a href="Data.Traversable.Accum.html">Data.Traversable.Accum</a></li><li><a href="Data.Traversable.Accum.Internal.html">Data.Traversable.Accum.Internal</a></li><li><a href="Data.TraversableWithIndex.html">Data.TraversableWithIndex</a></li><li><a href="Data.Tuple.html">Data.Tuple</a></li><li><a href="Data.Tuple.Nested.html">Data.Tuple.Nested</a></li><li><a href="Data.Unfoldable.html">Data.Unfoldable</a></li><li><a href="Data.Unfoldable1.html">Data.Unfoldable1</a></li><li><a href="Data.Unit.html">Data.Unit</a></li><li><a href="Data.Variant.html">Data.Variant</a></li><li><a href="Data.Variant.Internal.html">Data.Variant.Internal</a></li><li><a href="Data.Void.html">Data.Void</a></li><li><a href="Data.Witherable.html">Data.Witherable</a></li><li><a href="Data.Yoneda.html">Data.Yoneda</a></li><li><a href="Effect.html">Effect</a></li><li><a href="Effect.AVar.html">Effect.AVar</a></li><li><a href="Effect.Aff.html">Effect.Aff</a></li><li><a href="Effect.Aff.AVar.html">Effect.Aff.AVar</a></li><li><a href="Effect.Aff.Class.html">Effect.Aff.Class</a></li><li><a href="Effect.Aff.Compat.html">Effect.Aff.Compat</a></li><li><a href="Effect.Class.html">Effect.Class</a></li><li><a href="Effect.Class.Console.html">Effect.Class.Console</a></li><li><a href="Effect.Console.html">Effect.Console</a></li><li><a href="Effect.Exception.html">Effect.Exception</a></li><li><a href="Effect.Exception.Unsafe.html">Effect.Exception.Unsafe</a></li><li><a href="Effect.Now.html">Effect.Now</a></li><li><a href="Effect.Ref.html">Effect.Ref</a></li><li><a href="Effect.Timer.html">Effect.Timer</a></li><li><a href="Effect.Uncurried.html">Effect.Uncurried</a></li><li><a href="Effect.Unsafe.html">Effect.Unsafe</a></li><li><a href="FRP.Behavior.html">FRP.Behavior</a></li><li><a href="FRP.Behavior.Keyboard.html">FRP.Behavior.Keyboard</a></li><li><a href="FRP.Behavior.Mouse.html">FRP.Behavior.Mouse</a></li><li><a href="FRP.Behavior.Time.html">FRP.Behavior.Time</a></li><li><a href="FRP.Event.html">FRP.Event</a></li><li><a href="FRP.Event.AnimationFrame.html">FRP.Event.AnimationFrame</a></li><li><a href="FRP.Event.Class.html">FRP.Event.Class</a></li><li><a href="FRP.Event.Keyboard.html">FRP.Event.Keyboard</a></li><li><a href="FRP.Event.Mouse.html">FRP.Event.Mouse</a></li><li><a href="FRP.Event.Time.html">FRP.Event.Time</a></li><li><a href="FRP.Event.VBus.html">FRP.Event.VBus</a></li><li><a href="Foreign.html">Foreign</a></li><li><a href="Foreign.Index.html">Foreign.Index</a></li><li><a href="Foreign.Keys.html">Foreign.Keys</a></li><li><a href="Foreign.Object.html">Foreign.Object</a></li><li><a href="Foreign.Object.Gen.html">Foreign.Object.Gen</a></li><li><a href="Foreign.Object.ST.html">Foreign.Object.ST</a></li><li><a href="Foreign.Object.ST.Unsafe.html">Foreign.Object.ST.Unsafe</a></li><li><a href="Foreign.Object.Unsafe.html">Foreign.Object.Unsafe</a></li><li><a href="Heterogeneous.Folding.html">Heterogeneous.Folding</a></li><li><a href="Heterogeneous.Mapping.html">Heterogeneous.Mapping</a></li><li><a href="Node.Buffer.html">Node.Buffer</a></li><li><a href="Node.Buffer.Class.html">Node.Buffer.Class</a></li><li><a href="Node.Buffer.Constants.html">Node.Buffer.Constants</a></li><li><a href="Node.Buffer.Immutable.html">Node.Buffer.Immutable</a></li><li><a href="Node.Buffer.ST.html">Node.Buffer.ST</a></li><li><a href="Node.Buffer.Types.html">Node.Buffer.Types</a></li><li><a href="Node.Encoding.html">Node.Encoding</a></li><li><a href="Node.EventEmitter.html">Node.EventEmitter</a></li><li><a href="Node.EventEmitter.UtilTypes.html">Node.EventEmitter.UtilTypes</a></li><li><a href="Node.FS.html">Node.FS</a></li><li><a href="Node.FS.Aff.html">Node.FS.Aff</a></li><li><a href="Node.FS.Async.html">Node.FS.Async</a></li><li><a href="Node.FS.Constants.html">Node.FS.Constants</a></li><li><a href="Node.FS.Perms.html">Node.FS.Perms</a></li><li><a href="Node.FS.Stats.html">Node.FS.Stats</a></li><li><a href="Node.FS.Stream.html">Node.FS.Stream</a></li><li><a href="Node.FS.Sync.html">Node.FS.Sync</a></li><li><a href="Node.Path.html">Node.Path</a></li><li><a href="Node.Platform.html">Node.Platform</a></li><li><a href="Node.Process.html">Node.Process</a></li><li><a href="Node.Stream.html">Node.Stream</a></li><li><a href="Node.Stream.Aff.html">Node.Stream.Aff</a></li><li><a href="Node.Symbol.html">Node.Symbol</a></li><li><a href="Partial.html">Partial</a></li><li><a href="Partial.Unsafe.html">Partial.Unsafe</a></li><li><a href="Performance.Minibench.html">Performance.Minibench</a></li><li><a href="Pipes.html">Pipes</a></li><li><a href="Pipes.Core.html">Pipes.Core</a></li><li><a href="Pipes.Internal.html">Pipes.Internal</a></li><li><a href="Pipes.ListT.html">Pipes.ListT</a></li><li><a href="Pipes.Prelude.html">Pipes.Prelude</a></li><li><a href="Prelude.html">Prelude</a></li><li><a href="Prim.html">Prim</a></li><li><a href="Prim.Boolean.html">Prim.Boolean</a></li><li><a href="Prim.Coerce.html">Prim.Coerce</a></li><li><a href="Prim.Int.html">Prim.Int</a></li><li><a href="Prim.Ordering.html">Prim.Ordering</a></li><li><a href="Prim.Row.html">Prim.Row</a></li><li><a href="Prim.RowList.html">Prim.RowList</a></li><li><a href="Prim.Symbol.html">Prim.Symbol</a></li><li><a href="Prim.TypeError.html">Prim.TypeError</a></li><li><a href="Record.html">Record</a></li><li><a href="Record.Builder.html">Record.Builder</a></li><li><a href="Record.Studio.html">Record.Studio</a></li><li><a href="Record.Studio.Keys.html">Record.Studio.Keys</a></li><li><a href="Record.Studio.Map.html">Record.Studio.Map</a></li><li><a href="Record.Studio.MapKind.html">Record.Studio.MapKind</a></li><li><a href="Record.Studio.MapUniform.html">Record.Studio.MapUniform</a></li><li><a href="Record.Studio.Merge.html">Record.Studio.Merge</a></li><li><a href="Record.Studio.SameKeys.html">Record.Studio.SameKeys</a></li><li><a href="Record.Studio.Sequence.html">Record.Studio.Sequence</a></li><li><a href="Record.Studio.Shrink.html">Record.Studio.Shrink</a></li><li><a href="Record.Studio.SingletonRecord.html">Record.Studio.SingletonRecord</a></li><li><a href="Record.Unsafe.html">Record.Unsafe</a></li><li><a href="Record.Unsafe.Union.html">Record.Unsafe.Union</a></li><li><a href="Safe.Coerce.html">Safe.Coerce</a></li><li><a href="Spago.Generated.BuildInfo.html">Spago.Generated.BuildInfo</a></li><li><a href="Test.Spec.html">Test.Spec</a></li><li><a href="Test.Spec.Assertions.html">Test.Spec.Assertions</a></li><li><a href="Test.Spec.Assertions.String.html">Test.Spec.Assertions.String</a></li><li><a href="Test.Spec.Config.html">Test.Spec.Config</a></li><li><a href="Test.Spec.Console.html">Test.Spec.Console</a></li><li><a href="Test.Spec.Reporter.html">Test.Spec.Reporter</a></li><li><a href="Test.Spec.Reporter.Base.html">Test.Spec.Reporter.Base</a></li><li><a href="Test.Spec.Reporter.Console.html">Test.Spec.Reporter.Console</a></li><li><a href="Test.Spec.Reporter.Dot.html">Test.Spec.Reporter.Dot</a></li><li><a href="Test.Spec.Reporter.Spec.html">Test.Spec.Reporter.Spec</a></li><li><a href="Test.Spec.Reporter.Tap.html">Test.Spec.Reporter.Tap</a></li><li><a href="Test.Spec.Reporter.TeamCity.html">Test.Spec.Reporter.TeamCity</a></li><li><a href="Test.Spec.Result.html">Test.Spec.Result</a></li><li><a href="Test.Spec.Runner.html">Test.Spec.Runner</a></li><li><a href="Test.Spec.Runner.Event.html">Test.Spec.Runner.Event</a></li><li><a href="Test.Spec.Speed.html">Test.Spec.Speed</a></li><li><a href="Test.Spec.Style.html">Test.Spec.Style</a></li><li><a href="Test.Spec.Summary.html">Test.Spec.Summary</a></li><li><a href="Test.Spec.Tree.html">Test.Spec.Tree</a></li><li><a href="Type.Data.Boolean.html">Type.Data.Boolean</a></li><li><a href="Type.Data.Ordering.html">Type.Data.Ordering</a></li><li><a href="Type.Data.Symbol.html">Type.Data.Symbol</a></li><li><a href="Type.Equality.html">Type.Equality</a></li><li><a href="Type.Function.html">Type.Function</a></li><li><a href="Type.Prelude.html">Type.Prelude</a></li><li><a href="Type.Proxy.html">Type.Proxy</a></li><li><a href="Type.Row.html">Type.Row</a></li><li><a href="Type.Row.Homogeneous.html">Type.Row.Homogeneous</a></li><li><a href="Type.RowList.html">Type.RowList</a></li><li><a href="Uncurried.RWSE.html">Uncurried.RWSE</a></li><li><a href="Uncurried.RWSET.html">Uncurried.RWSET</a></li><li><a href="Uncurried.Reader.html">Uncurried.Reader</a></li><li><a href="Uncurried.ReaderT.html">Uncurried.ReaderT</a></li><li><a href="Uncurried.State.html">Uncurried.State</a></li><li><a href="Uncurried.StateT.html">Uncurried.StateT</a></li><li><a href="Uncurried.Writer.html">Uncurried.Writer</a></li><li><a href="Uncurried.WriterT.html">Uncurried.WriterT</a></li><li><a href="Unsafe.Coerce.html">Unsafe.Coerce</a></li><li><a href="Unsafe.Reference.html">Unsafe.Reference</a></li><li><a href="Web.DOM.html">Web.DOM</a></li><li><a href="Web.DOM.CharacterData.html">Web.DOM.CharacterData</a></li><li><a href="Web.DOM.ChildNode.html">Web.DOM.ChildNode</a></li><li><a href="Web.DOM.Comment.html">Web.DOM.Comment</a></li><li><a href="Web.DOM.DOMTokenList.html">Web.DOM.DOMTokenList</a></li><li><a href="Web.DOM.Document.html">Web.DOM.Document</a></li><li><a href="Web.DOM.DocumentFragment.html">Web.DOM.DocumentFragment</a></li><li><a href="Web.DOM.DocumentType.html">Web.DOM.DocumentType</a></li><li><a href="Web.DOM.Element.html">Web.DOM.Element</a></li><li><a href="Web.DOM.HTMLCollection.html">Web.DOM.HTMLCollection</a></li><li><a href="Web.DOM.Internal.Types.html">Web.DOM.Internal.Types</a></li><li><a href="Web.DOM.MutationObserver.html">Web.DOM.MutationObserver</a></li><li><a href="Web.DOM.MutationRecord.html">Web.DOM.MutationRecord</a></li><li><a href="Web.DOM.Node.html">Web.DOM.Node</a></li><li><a href="Web.DOM.NodeList.html">Web.DOM.NodeList</a></li><li><a href="Web.DOM.NodeType.html">Web.DOM.NodeType</a></li><li><a href="Web.DOM.NonDocumentTypeChildNode.html">Web.DOM.NonDocumentTypeChildNode</a></li><li><a href="Web.DOM.NonElementParentNode.html">Web.DOM.NonElementParentNode</a></li><li><a href="Web.DOM.ParentNode.html">Web.DOM.ParentNode</a></li><li><a href="Web.DOM.ProcessingInstruction.html">Web.DOM.ProcessingInstruction</a></li><li><a href="Web.DOM.ShadowRoot.html">Web.DOM.ShadowRoot</a></li><li><a href="Web.DOM.Text.html">Web.DOM.Text</a></li><li><a href="Web.Event.CustomEvent.html">Web.Event.CustomEvent</a></li><li><a href="Web.Event.Event.html">Web.Event.Event</a></li><li><a href="Web.Event.EventPhase.html">Web.Event.EventPhase</a></li><li><a href="Web.Event.EventTarget.html">Web.Event.EventTarget</a></li><li><a href="Web.Event.Internal.Types.html">Web.Event.Internal.Types</a></li><li><a href="Web.File.Blob.html">Web.File.Blob</a></li><li><a href="Web.File.File.html">Web.File.File</a></li><li><a href="Web.File.FileList.html">Web.File.FileList</a></li><li><a href="Web.File.FileReader.html">Web.File.FileReader</a></li><li><a href="Web.File.FileReader.ReadyState.html">Web.File.FileReader.ReadyState</a></li><li><a href="Web.File.Url.html">Web.File.Url</a></li><li><a href="Web.HTML.html">Web.HTML</a></li><li><a href="Web.HTML.Common.html">Web.HTML.Common</a></li><li><a href="Web.HTML.Event.BeforeUnloadEvent.html">Web.HTML.Event.BeforeUnloadEvent</a></li><li><a href="Web.HTML.Event.BeforeUnloadEvent.EventTypes.html">Web.HTML.Event.BeforeUnloadEvent.EventTypes</a></li><li><a href="Web.HTML.Event.DataTransfer.html">Web.HTML.Event.DataTransfer</a></li><li><a href="Web.HTML.Event.DataTransfer.DataTransferItem.html">Web.HTML.Event.DataTransfer.DataTransferItem</a></li><li><a href="Web.HTML.Event.DragEvent.html">Web.HTML.Event.DragEvent</a></li><li><a href="Web.HTML.Event.DragEvent.EventTypes.html">Web.HTML.Event.DragEvent.EventTypes</a></li><li><a href="Web.HTML.Event.ErrorEvent.html">Web.HTML.Event.ErrorEvent</a></li><li><a href="Web.HTML.Event.EventTypes.html">Web.HTML.Event.EventTypes</a></li><li><a href="Web.HTML.Event.HashChangeEvent.html">Web.HTML.Event.HashChangeEvent</a></li><li><a href="Web.HTML.Event.HashChangeEvent.EventTypes.html">Web.HTML.Event.HashChangeEvent.EventTypes</a></li><li><a href="Web.HTML.Event.PageTransitionEvent.html">Web.HTML.Event.PageTransitionEvent</a></li><li><a href="Web.HTML.Event.PageTransitionEvent.EventTypes.html">Web.HTML.Event.PageTransitionEvent.EventTypes</a></li><li><a href="Web.HTML.Event.PopStateEvent.html">Web.HTML.Event.PopStateEvent</a></li><li><a href="Web.HTML.Event.PopStateEvent.EventTypes.html">Web.HTML.Event.PopStateEvent.EventTypes</a></li><li><a href="Web.HTML.Event.TrackEvent.html">Web.HTML.Event.TrackEvent</a></li><li><a href="Web.HTML.Event.TrackEvent.EventTypes.html">Web.HTML.Event.TrackEvent.EventTypes</a></li><li><a href="Web.HTML.HTMLAnchorElement.html">Web.HTML.HTMLAnchorElement</a></li><li><a href="Web.HTML.HTMLAreaElement.html">Web.HTML.HTMLAreaElement</a></li><li><a href="Web.HTML.HTMLAudioElement.html">Web.HTML.HTMLAudioElement</a></li><li><a href="Web.HTML.HTMLBRElement.html">Web.HTML.HTMLBRElement</a></li><li><a href="Web.HTML.HTMLBaseElement.html">Web.HTML.HTMLBaseElement</a></li><li><a href="Web.HTML.HTMLBodyElement.html">Web.HTML.HTMLBodyElement</a></li><li><a href="Web.HTML.HTMLButtonElement.html">Web.HTML.HTMLButtonElement</a></li><li><a href="Web.HTML.HTMLCanvasElement.html">Web.HTML.HTMLCanvasElement</a></li><li><a href="Web.HTML.HTMLDListElement.html">Web.HTML.HTMLDListElement</a></li><li><a href="Web.HTML.HTMLDataElement.html">Web.HTML.HTMLDataElement</a></li><li><a href="Web.HTML.HTMLDataListElement.html">Web.HTML.HTMLDataListElement</a></li><li><a href="Web.HTML.HTMLDivElement.html">Web.HTML.HTMLDivElement</a></li><li><a href="Web.HTML.HTMLDocument.html">Web.HTML.HTMLDocument</a></li><li><a href="Web.HTML.HTMLDocument.ReadyState.html">Web.HTML.HTMLDocument.ReadyState</a></li><li><a href="Web.HTML.HTMLDocument.VisibilityState.html">Web.HTML.HTMLDocument.VisibilityState</a></li><li><a href="Web.HTML.HTMLElement.html">Web.HTML.HTMLElement</a></li><li><a href="Web.HTML.HTMLEmbedElement.html">Web.HTML.HTMLEmbedElement</a></li><li><a href="Web.HTML.HTMLFieldSetElement.html">Web.HTML.HTMLFieldSetElement</a></li><li><a href="Web.HTML.HTMLFormElement.html">Web.HTML.HTMLFormElement</a></li><li><a href="Web.HTML.HTMLHRElement.html">Web.HTML.HTMLHRElement</a></li><li><a href="Web.HTML.HTMLHeadElement.html">Web.HTML.HTMLHeadElement</a></li><li><a href="Web.HTML.HTMLHeadingElement.html">Web.HTML.HTMLHeadingElement</a></li><li><a href="Web.HTML.HTMLHtmlElement.html">Web.HTML.HTMLHtmlElement</a></li><li><a href="Web.HTML.HTMLHyperlinkElementUtils.html">Web.HTML.HTMLHyperlinkElementUtils</a></li><li><a href="Web.HTML.HTMLIFrameElement.html">Web.HTML.HTMLIFrameElement</a></li><li><a href="Web.HTML.HTMLImageElement.html">Web.HTML.HTMLImageElement</a></li><li><a href="Web.HTML.HTMLImageElement.CORSMode.html">Web.HTML.HTMLImageElement.CORSMode</a></li><li><a href="Web.HTML.HTMLImageElement.DecodingHint.html">Web.HTML.HTMLImageElement.DecodingHint</a></li><li><a href="Web.HTML.HTMLImageElement.Laziness.html">Web.HTML.HTMLImageElement.Laziness</a></li><li><a href="Web.HTML.HTMLInputElement.html">Web.HTML.HTMLInputElement</a></li><li><a href="Web.HTML.HTMLKeygenElement.html">Web.HTML.HTMLKeygenElement</a></li><li><a href="Web.HTML.HTMLLIElement.html">Web.HTML.HTMLLIElement</a></li><li><a href="Web.HTML.HTMLLabelElement.html">Web.HTML.HTMLLabelElement</a></li><li><a href="Web.HTML.HTMLLegendElement.html">Web.HTML.HTMLLegendElement</a></li><li><a href="Web.HTML.HTMLLinkElement.html">Web.HTML.HTMLLinkElement</a></li><li><a href="Web.HTML.HTMLMapElement.html">Web.HTML.HTMLMapElement</a></li><li><a href="Web.HTML.HTMLMediaElement.html">Web.HTML.HTMLMediaElement</a></li><li><a href="Web.HTML.HTMLMediaElement.CanPlayType.html">Web.HTML.HTMLMediaElement.CanPlayType</a></li><li><a href="Web.HTML.HTMLMediaElement.NetworkState.html">Web.HTML.HTMLMediaElement.NetworkState</a></li><li><a href="Web.HTML.HTMLMediaElement.ReadyState.html">Web.HTML.HTMLMediaElement.ReadyState</a></li><li><a href="Web.HTML.HTMLMetaElement.html">Web.HTML.HTMLMetaElement</a></li><li><a href="Web.HTML.HTMLMeterElement.html">Web.HTML.HTMLMeterElement</a></li><li><a href="Web.HTML.HTMLModElement.html">Web.HTML.HTMLModElement</a></li><li><a href="Web.HTML.HTMLOListElement.html">Web.HTML.HTMLOListElement</a></li><li><a href="Web.HTML.HTMLObjectElement.html">Web.HTML.HTMLObjectElement</a></li><li><a href="Web.HTML.HTMLOptGroupElement.html">Web.HTML.HTMLOptGroupElement</a></li><li><a href="Web.HTML.HTMLOptionElement.html">Web.HTML.HTMLOptionElement</a></li><li><a href="Web.HTML.HTMLOutputElement.html">Web.HTML.HTMLOutputElement</a></li><li><a href="Web.HTML.HTMLParagraphElement.html">Web.HTML.HTMLParagraphElement</a></li><li><a href="Web.HTML.HTMLParamElement.html">Web.HTML.HTMLParamElement</a></li><li><a href="Web.HTML.HTMLPreElement.html">Web.HTML.HTMLPreElement</a></li><li><a href="Web.HTML.HTMLProgressElement.html">Web.HTML.HTMLProgressElement</a></li><li><a href="Web.HTML.HTMLQuoteElement.html">Web.HTML.HTMLQuoteElement</a></li><li><a href="Web.HTML.HTMLScriptElement.html">Web.HTML.HTMLScriptElement</a></li><li><a href="Web.HTML.HTMLSelectElement.html">Web.HTML.HTMLSelectElement</a></li><li><a href="Web.HTML.HTMLSourceElement.html">Web.HTML.HTMLSourceElement</a></li><li><a href="Web.HTML.HTMLSpanElement.html">Web.HTML.HTMLSpanElement</a></li><li><a href="Web.HTML.HTMLStyleElement.html">Web.HTML.HTMLStyleElement</a></li><li><a href="Web.HTML.HTMLTableCaptionElement.html">Web.HTML.HTMLTableCaptionElement</a></li><li><a href="Web.HTML.HTMLTableCellElement.html">Web.HTML.HTMLTableCellElement</a></li><li><a href="Web.HTML.HTMLTableColElement.html">Web.HTML.HTMLTableColElement</a></li><li><a href="Web.HTML.HTMLTableDataCellElement.html">Web.HTML.HTMLTableDataCellElement</a></li><li><a href="Web.HTML.HTMLTableElement.html">Web.HTML.HTMLTableElement</a></li><li><a href="Web.HTML.HTMLTableHeaderCellElement.html">Web.HTML.HTMLTableHeaderCellElement</a></li><li><a href="Web.HTML.HTMLTableRowElement.html">Web.HTML.HTMLTableRowElement</a></li><li><a href="Web.HTML.HTMLTableSectionElement.html">Web.HTML.HTMLTableSectionElement</a></li><li><a href="Web.HTML.HTMLTemplateElement.html">Web.HTML.HTMLTemplateElement</a></li><li><a href="Web.HTML.HTMLTextAreaElement.html">Web.HTML.HTMLTextAreaElement</a></li><li><a href="Web.HTML.HTMLTimeElement.html">Web.HTML.HTMLTimeElement</a></li><li><a href="Web.HTML.HTMLTitleElement.html">Web.HTML.HTMLTitleElement</a></li><li><a href="Web.HTML.HTMLTrackElement.html">Web.HTML.HTMLTrackElement</a></li><li><a href="Web.HTML.HTMLTrackElement.ReadyState.html">Web.HTML.HTMLTrackElement.ReadyState</a></li><li><a href="Web.HTML.HTMLUListElement.html">Web.HTML.HTMLUListElement</a></li><li><a href="Web.HTML.HTMLVideoElement.html">Web.HTML.HTMLVideoElement</a></li><li><a href="Web.HTML.History.html">Web.HTML.History</a></li><li><a href="Web.HTML.Location.html">Web.HTML.Location</a></li><li><a href="Web.HTML.Navigator.html">Web.HTML.Navigator</a></li><li><a href="Web.HTML.SelectionMode.html">Web.HTML.SelectionMode</a></li><li><a href="Web.HTML.ValidityState.html">Web.HTML.ValidityState</a></li><li><a href="Web.HTML.Window.html">Web.HTML.Window</a></li><li><a href="Web.Internal.FFI.html">Web.Internal.FFI</a></li><li><a href="Web.Storage.Event.StorageEvent.html">Web.Storage.Event.StorageEvent</a></li><li><a href="Web.Storage.Storage.html">Web.Storage.Storage</a></li><li><a href="Web.UIEvent.CompositionEvent.html">Web.UIEvent.CompositionEvent</a></li><li><a href="Web.UIEvent.CompositionEvent.EventTypes.html">Web.UIEvent.CompositionEvent.EventTypes</a></li><li><a href="Web.UIEvent.EventTypes.html">Web.UIEvent.EventTypes</a></li><li><a href="Web.UIEvent.FocusEvent.html">Web.UIEvent.FocusEvent</a></li><li><a href="Web.UIEvent.FocusEvent.EventTypes.html">Web.UIEvent.FocusEvent.EventTypes</a></li><li><a href="Web.UIEvent.InputEvent.html">Web.UIEvent.InputEvent</a></li><li><a href="Web.UIEvent.InputEvent.EventTypes.html">Web.UIEvent.InputEvent.EventTypes</a></li><li><a href="Web.UIEvent.InputEvent.InputType.html">Web.UIEvent.InputEvent.InputType</a></li><li><a href="Web.UIEvent.KeyboardEvent.html">Web.UIEvent.KeyboardEvent</a></li><li><a href="Web.UIEvent.KeyboardEvent.EventTypes.html">Web.UIEvent.KeyboardEvent.EventTypes</a></li><li><a href="Web.UIEvent.MouseEvent.html">Web.UIEvent.MouseEvent</a></li><li><a href="Web.UIEvent.MouseEvent.EventTypes.html">Web.UIEvent.MouseEvent.EventTypes</a></li><li><a href="Web.UIEvent.UIEvent.html">Web.UIEvent.UIEvent</a></li><li><a href="Web.UIEvent.WheelEvent.html">Web.UIEvent.WheelEvent</a></li><li><a href="Web.UIEvent.WheelEvent.EventTypes.html">Web.UIEvent.WheelEvent.EventTypes</a></li></ul></div></main></div><div class="footer clearfix"><p>Generated by purs 0.15.15 [development build; commit: UNKNOWN]</p></div><!-- Docs search index. --><script type="text/javascript" src="./docs-search-app.js"></script><script type="text/javascript">window.DocsSearchTypeIndex = {};window.DocsSearchIndex = {};</script></body></html>
generated-docs/html/Control.Alternative.htmldeletedโ1482
@@ -1,1482 +0,0 @@
1โ<!DOCTYPE HTML>
2โ<html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1"><title>PureScript: Control.Alternative</title><link href="https://fonts.googleapis.com/css?family=Roboto+Mono|Roboto:300,400,400i,700,700i" type="text/css" rel="stylesheet"><style type="text/css">/*! normalize.css v3.0.2 | MIT License | git.io/normalize */
3โ
4โ/**
5โ * 1. Set default font family to sans-serif.
6โ * 2. Prevent iOS text size adjust after orientation change, without disabling
7โ * user zoom.
8โ */
9โ
10โhtml {
11โ font-family: sans-serif; /* 1 */
12โ -ms-text-size-adjust: 100%; /* 2 */
13โ -webkit-text-size-adjust: 100%; /* 2 */
14โ}
15โ
16โ/**
17โ * Remove default margin.
18โ */
19โ
20โbody {
21โ margin: 0;
22โ}
23โ
24โ/* HTML5 display definitions
25โ ========================================================================== */
26โ
27โ/**
28โ * Correct `block` display not defined for any HTML5 element in IE 8/9.
29โ * Correct `block` display not defined for `details` or `summary` in IE 10/11
30โ * and Firefox.
31โ * Correct `block` display not defined for `main` in IE 11.
32โ */
33โ
34โarticle,
35โaside,
36โdetails,
37โfigcaption,
38โfigure,
39โfooter,
40โheader,
41โhgroup,
42โmain,
43โmenu,
44โnav,
45โsection,
46โsummary {
47โ display: block;
48โ}
49โ
50โ/**
51โ * 1. Correct `inline-block` display not defined in IE 8/9.
52โ * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
53โ */
54โ
55โaudio,
56โcanvas,
57โprogress,
58โvideo {
59โ display: inline-block; /* 1 */
60โ vertical-align: baseline; /* 2 */
61โ}
62โ
63โ/**
64โ * Prevent modern browsers from displaying `audio` without controls.
65โ * Remove excess height in iOS 5 devices.
66โ */
67โ
68โaudio:not([controls]) {
69โ display: none;
70โ height: 0;
71โ}
72โ
73โ/**
74โ * Address `[hidden]` styling not present in IE 8/9/10.
75โ * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22.
76โ */
77โ
78โ[hidden],
79โtemplate {
80โ display: none;
81โ}
82โ
83โ/* Links
84โ ========================================================================== */
85โ
86โ/**
87โ * Remove the gray background color from active links in IE 10.
88โ */
89โ
90โa {
91โ background-color: transparent;
92โ}
93โ
94โ/**
95โ * Improve readability when focused and also mouse hovered in all browsers.
96โ */
97โ
98โa:active,
99โa:hover {
100โ outline: 0;
101โ}
102โ
103โ/* Text-level semantics
104โ ========================================================================== */
105โ
106โ/**
107โ * Address styling not present in IE 8/9/10/11, Safari, and Chrome.
108โ */
109โ
110โabbr[title] {
111โ border-bottom: 1px dotted;
112โ}
113โ
114โ/**
115โ * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
116โ */
117โ
118โb,
119โstrong {
120โ font-weight: bold;
121โ}
122โ
123โ/**
124โ * Address styling not present in Safari and Chrome.
125โ */
126โ
127โdfn {
128โ font-style: italic;
129โ}
130โ
131โ/**
132โ * Address variable `h1` font-size and margin within `section` and `article`
133โ * contexts in Firefox 4+, Safari, and Chrome.
134โ */
135โ
136โh1 {
137โ font-size: 2em;
138โ margin: 0.67em 0;
139โ}
140โ
141โ/**
142โ * Address styling not present in IE 8/9.
143โ */
144โ
145โmark {
146โ background: #ff0;
147โ color: #000;
148โ}
149โ
150โ/**
151โ * Address inconsistent and variable font size in all browsers.
152โ */
153โ
154โsmall {
155โ font-size: 80%;
156โ}
157โ
158โ/**
159โ * Prevent `sub` and `sup` affecting `line-height` in all browsers.
160โ */
161โ
162โsub,
163โsup {
164โ font-size: 75%;
165โ line-height: 0;
166โ position: relative;
167โ vertical-align: baseline;
168โ}
169โ
170โsup {
171โ top: -0.5em;
172โ}
173โ
174โsub {
175โ bottom: -0.25em;
176โ}
177โ
178โ/* Embedded content
179โ ========================================================================== */
180โ
181โ/**
182โ * Remove border when inside `a` element in IE 8/9/10.
183โ */
184โ
185โimg {
186โ border: 0;
187โ}
188โ
189โ/**
190โ * Correct overflow not hidden in IE 9/10/11.
191โ */
192โ
193โsvg:not(:root) {
194โ overflow: hidden;
195โ}
196โ
197โ/* Grouping content
198โ ========================================================================== */
199โ
200โ/**
201โ * Address margin not present in IE 8/9 and Safari.
202โ */
203โ
204โfigure {
205โ margin: 1em 40px;
206โ}
207โ
208โ/**
209โ * Address differences between Firefox and other browsers.
210โ */
211โ
212โhr {
213โ -moz-box-sizing: content-box;
214โ box-sizing: content-box;
215โ height: 0;
216โ}
217โ
218โ/**
219โ * Contain overflow in all browsers.
220โ */
221โ
222โpre {
223โ overflow: auto;
224โ}
225โ
226โ/**
227โ * Address odd `em`-unit font size rendering in all browsers.
228โ */
229โ
230โcode,
231โkbd,
232โpre,
233โsamp {
234โ font-family: monospace, monospace;
235โ font-size: 1em;
236โ}
237โ
238โ/* Forms
239โ ========================================================================== */
240โ
241โ/**
242โ * Known limitation: by default, Chrome and Safari on OS X allow very limited
243โ * styling of `select`, unless a `border` property is set.
244โ */
245โ
246โ/**
247โ * 1. Correct color not being inherited.
248โ * Known issue: affects color of disabled elements.
249โ * 2. Correct font properties not being inherited.
250โ * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
251โ */
252โ
253โbutton,
254โinput,
255โoptgroup,
256โselect,
257โtextarea {
258โ color: inherit; /* 1 */
259โ font: inherit; /* 2 */
260โ margin: 0; /* 3 */
261โ}
262โ
263โ/**
264โ * Address `overflow` set to `hidden` in IE 8/9/10/11.
265โ */
266โ
267โbutton {
268โ overflow: visible;
269โ}
270โ
271โ/**
272โ * Address inconsistent `text-transform` inheritance for `button` and `select`.
273โ * All other form control elements do not inherit `text-transform` values.
274โ * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
275โ * Correct `select` style inheritance in Firefox.
276โ */
277โ
278โbutton,
279โselect {
280โ text-transform: none;
281โ}
282โ
283โ/**
284โ * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
285โ * and `video` controls.
286โ * 2. Correct inability to style clickable `input` types in iOS.
287โ * 3. Improve usability and consistency of cursor style between image-type
288โ * `input` and others.
289โ */
290โ
291โbutton,
292โhtml input[type="button"], /* 1 */
293โinput[type="reset"],
294โinput[type="submit"] {
295โ -webkit-appearance: button; /* 2 */
296โ cursor: pointer; /* 3 */
297โ}
298โ
299โ/**
300โ * Re-set default cursor for disabled elements.
301โ */
302โ
303โbutton[disabled],
304โhtml input[disabled] {
305โ cursor: default;
306โ}
307โ
308โ/**
309โ * Remove inner padding and border in Firefox 4+.
310โ */
311โ
312โbutton::-moz-focus-inner,
313โinput::-moz-focus-inner {
314โ border: 0;
315โ padding: 0;
316โ}
317โ
318โ/**
319โ * Address Firefox 4+ setting `line-height` on `input` using `!important` in
320โ * the UA stylesheet.
321โ */
322โ
323โinput {
324โ line-height: normal;
325โ}
326โ
327โ/**
328โ * It's recommended that you don't attempt to style these elements.
329โ * Firefox's implementation doesn't respect box-sizing, padding, or width.
330โ *
331โ * 1. Address box sizing set to `content-box` in IE 8/9/10.
332โ * 2. Remove excess padding in IE 8/9/10.
333โ */
334โ
335โinput[type="checkbox"],
336โinput[type="radio"] {
337โ box-sizing: border-box; /* 1 */
338โ padding: 0; /* 2 */
339โ}
340โ
341โ/**
342โ * Fix the cursor style for Chrome's increment/decrement buttons. For certain
343โ * `font-size` values of the `input`, it causes the cursor style of the
344โ * decrement button to change from `default` to `text`.
345โ */
346โ
347โinput[type="number"]::-webkit-inner-spin-button,
348โinput[type="number"]::-webkit-outer-spin-button {
349โ height: auto;
350โ}
351โ
352โ/**
353โ * 1. Address `appearance` set to `searchfield` in Safari and Chrome.
354โ * 2. Address `box-sizing` set to `border-box` in Safari and Chrome
355โ * (include `-moz` to future-proof).
356โ */
357โ
358โinput[type="search"] {
359โ -webkit-appearance: textfield; /* 1 */
360โ -moz-box-sizing: content-box;
361โ -webkit-box-sizing: content-box; /* 2 */
362โ box-sizing: content-box;
363โ}
364โ
365โ/**
366โ * Remove inner padding and search cancel button in Safari and Chrome on OS X.
367โ * Safari (but not Chrome) clips the cancel button when the search input has
368โ * padding (and `textfield` appearance).
369โ */
370โ
371โinput[type="search"]::-webkit-search-cancel-button,
372โinput[type="search"]::-webkit-search-decoration {
373โ -webkit-appearance: none;
374โ}
375โ
376โ/**
377โ * Define consistent border, margin, and padding.
378โ */
379โ
380โfieldset {
381โ border: 1px solid #c0c0c0;
382โ margin: 0 2px;
383โ padding: 0.35em 0.625em 0.75em;
384โ}
385โ
386โ/**
387โ * 1. Correct `color` not being inherited in IE 8/9/10/11.
388โ * 2. Remove padding so people aren't caught out if they zero out fieldsets.
389โ */
390โ
391โlegend {
392โ border: 0; /* 1 */
393โ padding: 0; /* 2 */
394โ}
395โ
396โ/**
397โ * Remove default vertical scrollbar in IE 8/9/10/11.
398โ */
399โ
400โtextarea {
401โ overflow: auto;
402โ}
403โ
404โ/**
405โ * Don't inherit the `font-weight` (applied by a rule above).
406โ * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
407โ */
408โ
409โoptgroup {
410โ font-weight: bold;
411โ}
412โ
413โ/* Tables
414โ ========================================================================== */
415โ
416โ/**
417โ * Remove most spacing between table cells.
418โ */
419โ
420โtable {
421โ border-collapse: collapse;
422โ border-spacing: 0;
423โ}
424โ
425โtd,
426โth {
427โ padding: 0;
428โ}
429โ</style><style type="text/css">/** ************************************************************************* *
430โ ** CSS for HTML docs (e.g. Pursuit)
431โ **
432โ ** STRUCTURE
433โ **
434โ ** This CSS file is structured into several sections, from general to
435โ ** specific, and (mostly) alphabetically within the sections.
436โ **
437โ ** Several global element styles are used. This is not encouraged and should
438โ ** be kept to a minimum. If you want to add new styles you'll most likely
439โ ** want to add a new CSS component. See the Components section for examples.
440โ **
441โ ** CSS components use three simple naming ideas from the BEM system:
442โ ** - Block: `.my-component`
443โ ** - Element: `.my-component__item`
444โ ** - Modifier: `.my-component.my-component--highlighted`
445โ **
446โ ** Example:
447โ ** <div .my-component>
448โ ** <div .my-component__item>
449โ ** <div .my-component__item>
450โ ** ...
451โ ** <div .my-component.my-component--highlighted>
452โ ** <div .my-component__item>
453โ ** <div .my-component__item>
454โ **
455โ ** Components can be nested.
456โ **
457โ **
458โ ** TYPOGRAPHY
459โ **
460โ ** Typographic choices for sizes, line-heights and margins are based on a
461โ ** musical major third scale (4:5). This gives us a way to find numbers
462โ ** and relationships between them that are perceived as harmonic.
463โ **
464โ ** To make use of this modular scale, use a ratio of the form
465โ ** (5/4)^n
466โ ** where n โ โค, -6 โค n โค 8.
467โ **
468โ ** LESS
469โ **
470โ ** This CSS is generated by less. To compile it:
471โ **
472โ ** npm install [-g] less
473โ ** lessc app/static/pursuit.less > app/static/pursuit.css
474โ **
475โ ** ************************************************************************* */
476โ/* Section: Variables
477โ * ========================================================================== */
478โ/* Section: Document Styles
479โ * ========================================================================== */
480โ:root {
481โ color-scheme: light dark;
482โ}
483โhtml {
484โ box-sizing: border-box;
485โ /* This overflow rule prevents everything from shifting slightly to the side
486โ when moving from a page which isn't large enough to generate a scrollbar
487โ to one that is. */
488โ overflow-y: scroll;
489โ}
490โ*,
491โ*::before,
492โ*::after {
493โ box-sizing: inherit;
494โ}
495โbody {
496โ background-color: #ffffff;
497โ color: #000000;
498โ font-family: "Roboto", sans-serif;
499โ font-size: 87.5%;
500โ line-height: 1.563;
501โ}
502โ@media (prefers-color-scheme: dark) {
503โ body {
504โ background-color: #141417;
505โ color: #dedede;
506โ }
507โ}
508โ@media (min-width: 38em) {
509โ body {
510โ font-size: 100%;
511โ }
512โ}
513โ/* Section: Utility Classes
514โ * ========================================================================== */
515โ.clear-floats {
516โ clear: both;
517โ}
518โ.clearfix::before,
519โ.clearfix::after {
520โ content: " ";
521โ display: table;
522โ}
523โ.clearfix::after {
524โ clear: both;
525โ}
526โ/* Content hidden like this will still be read by a screen reader */
527โ.hide-visually {
528โ position: absolute;
529โ left: -10000px;
530โ top: auto;
531โ width: 1px;
532โ height: 1px;
533โ overflow: hidden;
534โ}
535โ/* Section: Layout
536โ * ========================================================================== */
537โ.container {
538โ display: block;
539โ max-width: 66em;
540โ margin-left: auto;
541โ margin-right: auto;
542โ padding-left: 20px;
543โ padding-right: 20px;
544โ}
545โ.col {
546โ display: block;
547โ position: relative;
548โ width: 100%;
549โ}
550โ.col.col--main {
551โ margin-bottom: 3.08em;
552โ}
553โ.col.col--aside {
554โ margin-bottom: 2.44em;
555โ}
556โ@media (min-width: 52em) {
557โ .container {
558โ padding-left: 30px;
559โ padding-right: 30px;
560โ }
561โ .col.col--main {
562โ float: left;
563โ width: 63.655%;
564โ /* 66.6โฆ% - 30px */
565โ }
566โ .col.col--aside {
567โ float: right;
568โ font-size: 87.5%;
569โ width: 33.333333%;
570โ }
571โ}
572โ@media (min-width: 66em) {
573โ .col.col--aside {
574โ font-size: inherit;
575โ }
576โ}
577โ/* Footer
578โ * Based on http://www.lwis.net/journal/2008/02/08/pure-css-sticky-footer/
579โ * Except we don't support IE6
580โ * -------------------------------------------------------------------------- */
581โhtml,
582โbody {
583โ height: 100%;
584โ}
585โ.everything-except-footer {
586โ min-height: 100%;
587โ padding-bottom: 3em;
588โ}
589โ.footer {
590โ position: relative;
591โ height: 3em;
592โ margin-top: -3em;
593โ width: 100%;
594โ text-align: center;
595โ background-color: #1d222d;
596โ color: #f0f0f0;
597โ}
598โ@media (prefers-color-scheme: dark) {
599โ .footer {
600โ background-color: #1d222d;
601โ color: #f0f0f0;
602โ }
603โ}
604โ.footer * {
605โ margin-bottom: 0;
606โ}
607โ/* Section: Element Styles
608โ *
609โ * Have as few of these as possible and keep them general, because they will
610โ * influence every component hereafter.
611โ * ========================================================================== */
612โ:target {
613โ background-color: #f1f5f9;
614โ}
615โ@media (prefers-color-scheme: dark) {
616โ :target {
617โ background-color: #232327;
618โ }
619โ}
620โa,
621โa:visited {
622โ color: #c4953a;
623โ text-decoration: none;
624โ font-weight: bold;
625โ}
626โ@media (prefers-color-scheme: dark) {
627โ a,
628โ a:visited {
629โ color: #d8ac55;
630โ }
631โ}
632โa:hover {
633โ color: #7b5904;
634โ text-decoration: none;
635โ}
636โ@media (prefers-color-scheme: dark) {
637โ a:hover {
638โ color: #f0dcab;
639โ }
640โ}
641โcode,
642โpre {
643โ background-color: #f1f5f9;
644โ border-radius: 3px;
645โ color: #194a5b;
646โ font-family: "Roboto Mono", monospace;
647โ font-size: 87.5%;
648โ}
649โ@media (prefers-color-scheme: dark) {
650โ code,
651โ pre {
652โ background-color: #232327;
653โ color: #c1d3da;
654โ }
655โ}
656โ:target code,
657โ:target pre {
658โ background-color: #dfe8f1;
659โ}
660โ@media (prefers-color-scheme: dark) {
661โ :target code,
662โ :target pre {
663โ background-color: #2f2f34;
664โ }
665โ}
666โcode {
667โ padding: 0.2em 0;
668โ margin: 0;
669โ white-space: pre-wrap;
670โ word-wrap: break-word;
671โ}
672โcode::before,
673โcode::after {
674โ letter-spacing: -0.2em;
675โ content: "\00a0";
676โ}
677โa > code {
678โ font-weight: normal;
679โ}
680โa > code::before {
681โ content: "๐ก";
682โ letter-spacing: 0.33em;
683โ}
684โa:hover > code {
685โ color: #c4953a;
686โ}
687โ@media (prefers-color-scheme: dark) {
688โ a:hover > code {
689โ color: #d8ac55;
690โ }
691โ}
692โpre {
693โ margin-top: 0;
694โ margin-bottom: 0;
695โ padding: 1em 1.25rem;
696โ /* Using rem here to align with lists etc. */
697โ overflow: auto;
698โ white-space: pre;
699โ word-wrap: normal;
700โ}
701โpre code {
702โ background-color: transparent;
703โ border: 0;
704โ font-size: 100%;
705โ max-width: auto;
706โ padding: 0;
707โ margin: 0;
708โ overflow: visible;
709โ line-height: inherit;
710โ white-space: pre;
711โ word-break: normal;
712โ word-wrap: normal;
713โ}
714โpre code::before,
715โpre code::after {
716โ content: normal;
717โ}
718โh1 {
719โ font-size: 3.052em;
720โ font-weight: 300;
721โ letter-spacing: -0.5px;
722โ line-height: 1.125;
723โ margin-top: 1.563rem;
724โ margin-bottom: 1.25rem;
725โ}
726โ@media (min-width: 52em) {
727โ h1 {
728โ font-size: 3.814em;
729โ margin-top: 5.96rem;
730โ }
731โ}
732โh2 {
733โ font-size: 1.953em;
734โ font-weight: normal;
735โ line-height: 1.25;
736โ margin-top: 3.052rem;
737โ margin-bottom: 1rem;
738โ}
739โh3 {
740โ font-size: 1.563em;
741โ font-weight: normal;
742โ line-height: 1.25;
743โ margin-top: 2.441rem;
744โ margin-bottom: 1rem;
745โ}
746โh4 {
747โ font-size: 1.25em;
748โ font-weight: normal;
749โ margin-top: 2.441rem;
750โ margin-bottom: 1rem;
751โ}
752โh1 + h2,
753โh1 + h3,
754โh1 + h4,
755โh2 + h3,
756โh2 + h4,
757โh3 + h4 {
758โ margin-top: 1rem;
759โ}
760โhr {
761โ border: none;
762โ height: 1px;
763โ background-color: #cccccc;
764โ}
765โ@media (prefers-color-scheme: dark) {
766โ hr {
767โ background-color: #43434e;
768โ }
769โ}
770โimg {
771โ border-style: none;
772โ max-width: 100%;
773โ}
774โp {
775โ font-size: 1em;
776โ margin-top: 1rem;
777โ margin-bottom: 1rem;
778โ}
779โtable {
780โ border-bottom: 1px solid #cccccc;
781โ border-collapse: collapse;
782โ border-spacing: 0;
783โ margin-top: 1rem;
784โ margin-bottom: 1rem;
785โ width: 100%;
786โ}
787โ@media (prefers-color-scheme: dark) {
788โ table {
789โ border-bottom-color: #43434e;
790โ }
791โ}
792โtd,
793โth {
794โ text-align: left;
795โ padding: 0.41em 0.51em;
796โ}
797โtd {
798โ border-top: 1px solid #cccccc;
799โ}
800โ@media (prefers-color-scheme: dark) {
801โ td {
802โ border-top-color: #43434e;
803โ }
804โ}
805โtd:first-child,
806โth:first-child {
807โ padding-left: 0;
808โ}
809โtd:last-child,
810โth:last-child {
811โ padding-right: 0;
812โ}
813โul {
814โ list-style-type: none;
815โ margin-top: 1rem;
816โ margin-bottom: 1rem;
817โ padding-left: 0;
818โ}
819โul li {
820โ position: relative;
821โ padding-left: 1.25em;
822โ}
823โul li::before {
824โ position: absolute;
825โ color: #a0a0a0;
826โ content: "โ";
827โ display: inline-block;
828โ margin-left: -1.25em;
829โ width: 1.25em;
830โ}
831โ@media (prefers-color-scheme: dark) {
832โ ul li::before {
833โ color: #a0a0a0;
834โ }
835โ}
836โ/* Tying this tightly to ul at the moment because it's a slight variation thereof */
837โul.ul--search li::before {
838โ content: "โฒ";
839โ top: -0.2em;
840โ transform: rotate(-45deg);
841โ}
842โol {
843โ margin-top: 1rem;
844โ margin-bottom: 1rem;
845โ padding-left: 1.25em;
846โ}
847โol li {
848โ position: relative;
849โ padding-left: 0;
850โ}
851โ/* Section: Components
852โ * ========================================================================== */
853โ/* Component: Badge
854โ * -------------------------------------------------------------------------- */
855โ.badge {
856โ position: relative;
857โ top: -0.1em;
858โ display: inline-block;
859โ background-color: #000000;
860โ border-radius: 1.3em;
861โ color: #ffffff;
862โ font-size: 77%;
863โ font-weight: bold;
864โ line-height: 1.563;
865โ text-align: center;
866โ height: 1.5em;
867โ width: 1.5em;
868โ}
869โ@media (prefers-color-scheme: dark) {
870โ .badge {
871โ background-color: #dedede;
872โ color: #141417;
873โ }
874โ}
875โ.badge.badge--package {
876โ background-color: #c4953a;
877โ letter-spacing: -0.1em;
878โ}
879โ@media (prefers-color-scheme: dark) {
880โ .badge.badge--package {
881โ background-color: #d8ac55;
882โ }
883โ}
884โ.badge.badge--module {
885โ background-color: #75B134;
886โ}
887โ/* Component: Declarations
888โ * -------------------------------------------------------------------------- */
889โ.decl__title {
890โ position: relative;
891โ padding-bottom: 0.328em;
892โ margin-bottom: 0.262em;
893โ}
894โ.decl__source {
895โ display: block;
896โ float: right;
897โ font-size: 64%;
898โ position: relative;
899โ top: 0.57em;
900โ}
901โ.decl__anchor,
902โ.decl__anchor:visited {
903โ position: absolute;
904โ left: -0.8em;
905โ color: #bababa;
906โ}
907โ@media (prefers-color-scheme: dark) {
908โ .decl__anchor,
909โ .decl__anchor:visited {
910โ color: #878787;
911โ }
912โ}
913โ.decl__anchor:hover {
914โ color: #c4953a;
915โ}
916โ@media (prefers-color-scheme: dark) {
917โ .decl__anchor:hover {
918โ color: #d8ac55;
919โ }
920โ}
921โ.decl__signature {
922โ background-color: transparent;
923โ border-radius: 0;
924โ border-top: 1px solid #cccccc;
925โ border-bottom: 1px solid #cccccc;
926โ padding: 0;
927โ}
928โ@media (prefers-color-scheme: dark) {
929โ .decl__signature {
930โ border-top-color: #43434e;
931โ border-bottom-color: #43434e;
932โ }
933โ}
934โ.decl__signature code {
935โ display: block;
936โ padding: 0.328em 0;
937โ padding-left: 2.441em;
938โ text-indent: -2.441em;
939โ white-space: normal;
940โ}
941โ.decl__role {
942โ font-family: "Roboto", sans-serif;
943โ font-style: italic;
944โ font-weight: normal;
945โ}
946โ/* See https://stackoverflow.com/a/32162038
947โ Content licensed under CC BY-SA 3.0
948โ*/
949โ.decl__role_hover[title] {
950โ /* Remove line that appears under abbr element */
951โ border-bottom: none;
952โ text-decoration: none;
953โ /* Ensure cursor doesn't change to question mark */
954โ cursor: inherit;
955โ}
956โ.decl__role_nominal::after {
957โ content: "nominal";
958โ}
959โ.decl__role_phantom::after {
960โ content: "phantom";
961โ}
962โ.decl__kind {
963โ border-bottom: 1px solid #cccccc;
964โ}
965โ@media (prefers-color-scheme: dark) {
966โ .decl__kind {
967โ border-bottom-color: #43434e;
968โ }
969โ}
970โ:target .decl__signature,
971โ:target .decl__signature code {
972โ /* We want the background to be transparent, even when the parent is a target */
973โ background-color: transparent;
974โ}
975โ.decl__body .keyword,
976โ.decl__body .syntax {
977โ color: #0b71b4;
978โ}
979โ@media (prefers-color-scheme: dark) {
980โ .decl__body .keyword,
981โ .decl__body .syntax {
982โ color: #3796d5;
983โ }
984โ}
985โ.decl__child_comments {
986โ margin-top: 1rem;
987โ margin-bottom: 1rem;
988โ}
989โ/* Component: Dependency Link
990โ * -------------------------------------------------------------------------- */
991โ.deplink {
992โ /* Currently no root styles, but keep the class as a namespace */
993โ}
994โ.deplink__link {
995โ display: inline-block;
996โ margin-right: 0.41em;
997โ}
998โ.deplink__version {
999โ color: #666666;
1000โ display: inline-block;
1001โ font-size: 0.8em;
1002โ line-height: 1;
1003โ}
1004โ@media (prefers-color-scheme: dark) {
1005โ .deplink__version {
1006โ color: #a0a0a0;
1007โ }
1008โ}
1009โ/* Component: Grouped List
1010โ * -------------------------------------------------------------------------- */
1011โ.grouped-list {
1012โ border-top: 1px solid #cccccc;
1013โ margin: 0 0 2.44em 0;
1014โ}
1015โ@media (prefers-color-scheme: dark) {
1016โ .grouped-list {
1017โ border-top-color: #43434e;
1018โ }
1019โ}
1020โ.grouped-list__title {
1021โ color: #666666;
1022โ font-size: 0.8em;
1023โ font-weight: 300;
1024โ letter-spacing: 1px;
1025โ margin: 0.8em 0 -0.1em 0;
1026โ text-transform: uppercase;
1027โ}
1028โ@media (prefers-color-scheme: dark) {
1029โ .grouped-list__title {
1030โ border-top-color: #a0a0a0;
1031โ }
1032โ}
1033โ.grouped-list__item {
1034โ margin: 0;
1035โ}
1036โ/* Component: Message
1037โ * -------------------------------------------------------------------------- */
1038โ.message {
1039โ border: 5px solid;
1040โ border-radius: 5px;
1041โ padding: 1em !important;
1042โ}
1043โ.message.message--error {
1044โ background-color: #fff0f0;
1045โ border-color: #c85050;
1046โ}
1047โ@media (prefers-color-scheme: dark) {
1048โ .message.message--error {
1049โ background-color: #6b0e0e;
1050โ border-color: #c85050;
1051โ }
1052โ}
1053โ.message.message--not-available {
1054โ background-color: #f0f096;
1055โ border-color: #e3e33d;
1056โ}
1057โ@media (prefers-color-scheme: dark) {
1058โ .message.message--not-available {
1059โ background-color: #56560b;
1060โ border-color: #b0b017;
1061โ }
1062โ}
1063โ/* Component: Multi Col
1064โ * Multiple columns side by side
1065โ * -------------------------------------------------------------------------- */
1066โ.multi-col {
1067โ margin-bottom: 2.44em;
1068โ}
1069โ.multi-col__col {
1070โ display: block;
1071โ padding-right: 1em;
1072โ position: relative;
1073โ width: 100%;
1074โ}
1075โ@media (min-width: 38em) and (max-width: 51.999999em) {
1076โ .multi-col__col {
1077โ float: left;
1078โ width: 50%;
1079โ }
1080โ .multi-col__col:nth-child(2n+3) {
1081โ clear: both;
1082โ }
1083โ}
1084โ@media (min-width: 52em) {
1085โ .multi-col__col {
1086โ float: left;
1087โ width: 33.333333%;
1088โ }
1089โ .multi-col__col:nth-child(3n+4) {
1090โ clear: both;
1091โ }
1092โ}
1093โ/* Component: Page Title
1094โ * -------------------------------------------------------------------------- */
1095โ.page-title {
1096โ margin: 4.77em 0 1.56em;
1097โ padding-bottom: 1.25em;
1098โ position: relative;
1099โ}
1100โ.page-title__title {
1101โ margin: 0 0 0 -0.05em;
1102โ /* Visually align on left edge */
1103โ}
1104โ.page-title__label {
1105โ position: relative;
1106โ color: #666666;
1107โ font-size: 0.8rem;
1108โ font-weight: 300;
1109โ letter-spacing: 1px;
1110โ margin-bottom: -0.8em;
1111โ text-transform: uppercase;
1112โ z-index: 1;
1113โ}
1114โ@media (prefers-color-scheme: dark) {
1115โ .page-title__label {
1116โ color: #a0a0a0;
1117โ }
1118โ}
1119โ/* Component: Top Banner
1120โ * -------------------------------------------------------------------------- */
1121โ.top-banner {
1122โ background-color: #1d222d;
1123โ color: #f0f0f0;
1124โ font-weight: normal;
1125โ}
1126โ@media (prefers-color-scheme: dark) {
1127โ .top-banner {
1128โ background-color: #1d222d;
1129โ color: #f0f0f0;
1130โ }
1131โ}
1132โ.top-banner__logo,
1133โ.top-banner__logo:visited {
1134โ float: left;
1135โ color: #f0f0f0;
1136โ font-size: 2.44em;
1137โ font-weight: 300;
1138โ line-height: 90px;
1139โ margin: 0;
1140โ}
1141โ@media (prefers-color-scheme: dark) {
1142โ .top-banner__logo,
1143โ .top-banner__logo:visited {
1144โ color: #f0f0f0;
1145โ }
1146โ}
1147โ.top-banner__logo:hover {
1148โ color: #c4953a;
1149โ text-decoration: none;
1150โ}
1151โ.top-banner__form {
1152โ margin-bottom: 1.25em;
1153โ}
1154โ.top-banner__form input {
1155โ border: 1px solid #1d222d;
1156โ border-radius: 3px;
1157โ background-color: #ffffff;
1158โ color: #1d222d;
1159โ font-weight: 300;
1160โ line-height: 2;
1161โ padding: 0.21em 0.512em;
1162โ width: 100%;
1163โ}
1164โ@media (prefers-color-scheme: dark) {
1165โ .top-banner__form input {
1166โ border-color: #1d222d;
1167โ background-color: #141417;
1168โ color: #dedede;
1169โ }
1170โ}
1171โ.top-banner__actions {
1172โ float: right;
1173โ text-align: right;
1174โ}
1175โ.top-banner__actions__item {
1176โ display: inline-block;
1177โ line-height: 90px;
1178โ margin: 0;
1179โ padding-left: 1.25em;
1180โ}
1181โ.top-banner__actions__item:first-child {
1182โ padding-left: 0;
1183โ}
1184โ.top-banner__actions__item a,
1185โ.top-banner__actions__item a:visited {
1186โ color: #f0f0f0;
1187โ}
1188โ@media (prefers-color-scheme: dark) {
1189โ .top-banner__actions__item a,
1190โ .top-banner__actions__item a:visited {
1191โ color: #f0f0f0;
1192โ }
1193โ}
1194โ.top-banner__actions__item a:hover {
1195โ color: #c4953a;
1196โ}
1197โ@media (prefers-color-scheme: dark) {
1198โ .top-banner__actions__item a:hover {
1199โ color: #d8ac55;
1200โ }
1201โ}
1202โ@media (min-width: 38em) {
1203โ .top-banner__logo {
1204โ float: left;
1205โ width: 25%;
1206โ }
1207โ .top-banner__form {
1208โ float: left;
1209โ line-height: 90px;
1210โ margin-bottom: 0;
1211โ width: 50%;
1212โ }
1213โ .top-banner__actions {
1214โ float: right;
1215โ width: 25%;
1216โ }
1217โ}
1218โ/* Component: Search Results
1219โ * -------------------------------------------------------------------------- */
1220โ.result.result--empty {
1221โ font-size: 1.25em;
1222โ}
1223โ.result__title {
1224โ font-size: 1.25em;
1225โ margin-bottom: 0.2rem;
1226โ}
1227โ.result__badge {
1228โ margin-left: -0.1em;
1229โ}
1230โ.result__body > *:first-child {
1231โ margin-top: 0!important;
1232โ}
1233โ.result__body > *:last-child {
1234โ margin-bottom: 0!important;
1235โ}
1236โ.result__signature {
1237โ background-color: transparent;
1238โ border-radius: 0;
1239โ border-top: 1px solid #cccccc;
1240โ border-bottom: 1px solid #cccccc;
1241โ padding: 0.328em 0;
1242โ}
1243โ@media (prefers-color-scheme: dark) {
1244โ .result__signature {
1245โ border-top-color: #43434e;
1246โ border-bottom-color: #43434e;
1247โ }
1248โ}
1249โ.result__signature code {
1250โ display: block;
1251โ padding-left: 2.441em;
1252โ text-indent: -2.441em;
1253โ white-space: normal;
1254โ}
1255โ.result__actions {
1256โ margin-top: 0.2rem;
1257โ}
1258โ.result__actions__item {
1259โ font-size: 80%;
1260โ}
1261โ.result__actions__item + .result__actions__item {
1262โ margin-left: 0.65em;
1263โ}
1264โ/* Component: Version Selector
1265โ * -------------------------------------------------------------------------- */
1266โ.version-selector {
1267โ margin-bottom: 0.8em;
1268โ}
1269โ@media (min-width: 38em) {
1270โ .version-selector {
1271โ position: absolute;
1272โ top: 0.8em;
1273โ right: 0;
1274โ margin-bottom: 0;
1275โ }
1276โ}
1277โ/* Section: FIXME
1278โ * These styles should be cleaned up
1279โ * ========================================================================== */
1280โ/* Help paragraphs */
1281โ.help {
1282โ padding: 5px 0;
1283โ}
1284โ.help h3 {
1285โ /* FIXME: target with class */
1286โ margin-top: 16px;
1287โ}
1288โ/* Section: Markdown
1289โ * Github rendered README
1290โ * ========================================================================== */
1291โ.markdown-body {
1292โ /*
1293โ Useful for narrow screens, such as mobiles. Documentation often contains URLs
1294โ which would otherwise force the page to become wider, and force creation of
1295โ horizontal scrollbars. Yuck.
1296โ */
1297โ word-wrap: break-word;
1298โ}
1299โ.markdown-body > *:first-child {
1300โ margin-top: 0 !important;
1301โ}
1302โ.markdown-body > *:last-child {
1303โ margin-bottom: 0 !important;
1304โ}
1305โ.markdown-body a:not([href]) {
1306โ color: inherit;
1307โ text-decoration: none;
1308โ}
1309โ.markdown-body blockquote {
1310โ margin: 0;
1311โ padding: 0 1em;
1312โ color: #777;
1313โ border-left: 0.25em solid #ddd;
1314โ}
1315โ@media (prefers-color-scheme: dark) {
1316โ .markdown-body blockquote {
1317โ border-left-color: #444;
1318โ }
1319โ}
1320โ.markdown-body blockquote > :first-child {
1321โ margin-top: 0;
1322โ}
1323โ.markdown-body blockquote > :last-child {
1324โ margin-bottom: 0;
1325โ}
1326โ.markdown-body .anchor {
1327โ /* We hide the anchor because the link doesn't point to a valid location */
1328โ display: none;
1329โ}
1330โ.markdown-body .pl-k {
1331โ /* Keyword */
1332โ color: #a0a0a0;
1333โ}
1334โ@media (prefers-color-scheme: dark) {
1335โ .markdown-body .pl-k {
1336โ color: #676767;
1337โ }
1338โ}
1339โ.markdown-body .pl-c1,
1340โ.markdown-body .pl-en {
1341โ /* Not really sure what this is */
1342โ color: #39d;
1343โ}
1344โ.markdown-body .pl-s {
1345โ /* String literals */
1346โ color: #1a1;
1347โ}
1348โ.markdown-body .pl-cce {
1349โ /* String literal escape sequences */
1350โ color: #921;
1351โ}
1352โ.markdown-body .pl-smi {
1353โ /* type variables? */
1354โ color: #62b;
1355โ}
1356โ</style></head><body><div class="everything-except-footer"><div class="top-banner clearfix"><div class="container clearfix"><div style="float: left; font-size: 2.44em; font-weight: 300; line-height: 90px; margin: 0">PureScript API documentation</div><div class="top-banner__actions"><div class="top-banner__actions__item"><a href="index.html">Index</a></div></div></div></div><main class="container clearfix" role="main"><div class="page-title clearfix"><div class="page-title__label">Module</div><h1 class="page-title__title">Control.Alternative</h1></div><div class="col col--main"><div class="decl" id="t:Alternative"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#t:Alternative">#</a><span>Alternative</span> </h3><div class="decl__body"><pre class="decl__signature"><code class="decl__kind"><span class="keyword">class</span> <a href="Control.Alternative.html#t:Alternative" title="Control.Alternative.Alternative"><span class="ctor">Alternative</span></a> <span class="syntax">::</span> <span class="syntax">(</span><a href="Prim.html#t:Type" title="Prim.Type"><span class="ctor">Type</span></a> <span class="syntax">-></span> <a href="Prim.html#t:Type" title="Prim.Type"><span class="ctor">Type</span></a><span class="syntax">)</span> <span class="syntax">-></span> <a href="Prim.html#t:Constraint" title="Prim.Constraint"><span class="ctor">Constraint</span></a></code><code><span class="keyword">class</span> <span class="syntax">(</span><a href="Control.Applicative.html#t:Applicative" title="Control.Applicative.Applicative"><span class="ctor">Applicative</span></a> f<span class="syntax">,</span> <a href="Control.Plus.html#t:Plus" title="Control.Plus.Plus"><span class="ctor">Plus</span></a> f<span class="syntax">)</span> <span class="syntax"><=</span> <a href="Control.Alternative.html#t:Alternative" title="Control.Alternative.Alternative"><span class="ctor">Alternative</span></a> f </code></pre><p>The <code>Alternative</code> type class has no members of its own; it just specifies
1357โthat the type constructor has both <code>Applicative</code> and <code>Plus</code> instances.</p>
1358โ<p>Types which have <code>Alternative</code> instances should also satisfy the following
1359โlaws:</p>
1360โ<ul>
1361โ<li>Distributivity: <code>(f <|> g) <*> x == (f <*> x) <|> (g <*> x)</code></li>
1362โ<li>Annihilation: <code>empty <*> f = empty</code></li>
1363โ</ul>
1364โ<h4>Instances</h4><ul><li id="v:alternativeArray"><code><a href="Control.Alternative.html#t:Alternative" title="Control.Alternative.Alternative"><span class="ctor">Alternative</span></a> <a href="Prim.html#t:Array" title="Prim.Array"><span class="ctor">Array</span></a></code></li></ul></div></div><div class="decl" id="v:guard"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:guard">#</a><span>guard</span> </h3><div class="decl__body"><pre class="decl__signature"><code><a href="Control.Alternative.html#v:guard" title="Control.Alternative.guard"><span class="ident">guard</span></a> <span class="syntax">::</span> <span class="keyword">forall</span> <span class="syntax"></span>m<span class="syntax">.</span> <a href="Control.Alternative.html#t:Alternative" title="Control.Alternative.Alternative"><span class="ctor">Alternative</span></a> m <span class="syntax">=></span> <a href="Prim.html#t:Boolean" title="Prim.Boolean"><span class="ctor">Boolean</span></a> <span class="syntax">-></span> m <a href="Data.Unit.html#t:Unit" title="Data.Unit.Unit"><span class="ctor">Unit</span></a></code></pre><p>Fail using <code>Plus</code> if a condition does not hold, or
1365โsucceed using <code>Applicative</code> if it does.</p>
1366โ<p>For example:</p>
1367โ<pre class="purescript"><code>import Prelude
1368โimport Control.Alternative (guard)
1369โimport Data.Array ((..))
1370โ
1371โfactors :: Int -> Array Int
1372โfactors n = do
1373โ a <- 1..n
1374โ b <- 1..n
1375โ guard $ a * b == n
1376โ pure a
1377โ</code></pre>
1378โ</div></div><h2 class="re-exports">Re-exports from <a href="Control.Alt.html">Control.Alt</a></h2><div class="decl" id="t:Alt"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#t:Alt">#</a><span>Alt</span> </h3><div class="decl__body"><pre class="decl__signature"><code class="decl__kind"><span class="keyword">class</span> <a href="Control.Alternative.html#t:Alt" title="Control.Alternative.Alt"><span class="ctor">Alt</span></a> <span class="syntax">::</span> <span class="syntax">(</span><a href="Prim.html#t:Type" title="Prim.Type"><span class="ctor">Type</span></a> <span class="syntax">-></span> <a href="Prim.html#t:Type" title="Prim.Type"><span class="ctor">Type</span></a><span class="syntax">)</span> <span class="syntax">-></span> <a href="Prim.html#t:Constraint" title="Prim.Constraint"><span class="ctor">Constraint</span></a></code><code><span class="keyword">class</span> <span class="syntax">(</span><a href="Data.Functor.html#t:Functor" title="Data.Functor.Functor"><span class="ctor">Functor</span></a> f<span class="syntax">)</span> <span class="syntax"><=</span> <a href="Control.Alternative.html#t:Alt" title="Control.Alternative.Alt"><span class="ctor">Alt</span></a> f <span class="keyword">where</span></code></pre><p>The <code>Alt</code> type class identifies an associative operation on a type
1379โconstructor. It is similar to <code>Semigroup</code>, except that it applies to
1380โtypes of kind <code>* -> *</code>, like <code>Array</code> or <code>List</code>, rather than concrete types
1381โ<code>String</code> or <code>Number</code>.</p>
1382โ<p><code>Alt</code> instances are required to satisfy the following laws:</p>
1383โ<ul>
1384โ<li>Associativity: <code>(x <|> y) <|> z == x <|> (y <|> z)</code></li>
1385โ<li>Distributivity: <code>f <$> (x <|> y) == (f <$> x) <|> (f <$> y)</code></li>
1386โ</ul>
1387โ<p>For example, the <code>Array</code> (<code>[]</code>) type is an instance of <code>Alt</code>, where
1388โ<code>(<|>)</code> is defined to be concatenation.</p>
1389โ<p>A common use case is to select the first "valid" item, or, if all items
1390โare "invalid", the last "invalid" item.</p>
1391โ<p>For example:</p>
1392โ<pre class="purescript"><code>import Control.Alt ((<|>))
1393โimport Data.Maybe (Maybe(..)
1394โimport Data.Either (Either(..))
1395โ
1396โNothing <|> Just 1 <|> Just 2 == Just 1
1397โLeft "err" <|> Right 1 <|> Right 2 == Right 1
1398โLeft "err 1" <|> Left "err 2" <|> Left "err 3" == Left "err 3"
1399โ</code></pre>
1400โ<h4>Members</h4><ul><li id="v:alt"><code><a href="Control.Alternative.html#v:alt" title="Control.Alternative.alt"><span class="ident">alt</span></a> <span class="syntax">::</span> <span class="keyword">forall</span> <span class="syntax"></span>a<span class="syntax">.</span> f a <span class="syntax">-></span> f a <span class="syntax">-></span> f a</code></li></ul><h4>Instances</h4><ul><li id="v:altArray"><code><a href="Control.Alt.html#t:Alt" title="Control.Alt.Alt"><span class="ctor">Alt</span></a> <a href="Prim.html#t:Array" title="Prim.Array"><span class="ctor">Array</span></a></code></li></ul></div></div><div class="decl" id="v:(<|>)"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:(<|>)">#</a><span>(<|>)</span> </h3><div class="decl__body"><p>Operator alias for Control.Alt.alt <em>(right-associative / precedence 3)</em></p></div></div><h2 class="re-exports">Re-exports from <a href="Control.Applicative.html">Control.Applicative</a></h2><div class="decl" id="t:Applicative"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#t:Applicative">#</a><span>Applicative</span> </h3><div class="decl__body"><pre class="decl__signature"><code class="decl__kind"><span class="keyword">class</span> <a href="Control.Alternative.html#t:Applicative" title="Control.Alternative.Applicative"><span class="ctor">Applicative</span></a> <span class="syntax">::</span> <span class="syntax">(</span><a href="Prim.html#t:Type" title="Prim.Type"><span class="ctor">Type</span></a> <span class="syntax">-></span> <a href="Prim.html#t:Type" title="Prim.Type"><span class="ctor">Type</span></a><span class="syntax">)</span> <span class="syntax">-></span> <a href="Prim.html#t:Constraint" title="Prim.Constraint"><span class="ctor">Constraint</span></a></code><code><span class="keyword">class</span> <span class="syntax">(</span><a href="Control.Apply.html#t:Apply" title="Control.Apply.Apply"><span class="ctor">Apply</span></a> f<span class="syntax">)</span> <span class="syntax"><=</span> <a href="Control.Alternative.html#t:Applicative" title="Control.Alternative.Applicative"><span class="ctor">Applicative</span></a> f <span class="keyword">where</span></code></pre><p>The <code>Applicative</code> type class extends the <code>Apply</code> type class
1401โwith a <code>pure</code> function, which can be used to create values of type <code>f a</code>
1402โfrom values of type <code>a</code>.</p>
1403โ<p>Where <code>Apply</code> provides the ability to lift functions of two or
1404โmore arguments to functions whose arguments are wrapped using <code>f</code>, and
1405โ<code>Functor</code> provides the ability to lift functions of one
1406โargument, <code>pure</code> can be seen as the function which lifts functions of
1407โ<em>zero</em> arguments. That is, <code>Applicative</code> functors support a lifting
1408โoperation for any number of function arguments.</p>
1409โ<p>Instances must satisfy the following laws in addition to the <code>Apply</code>
1410โlaws:</p>
1411โ<ul>
1412โ<li>Identity: <code>(pure identity) <*> v = v</code></li>
1413โ<li>Composition: <code>pure (<<<) <*> f <*> g <*> h = f <*> (g <*> h)</code></li>
1414โ<li>Homomorphism: <code>(pure f) <*> (pure x) = pure (f x)</code></li>
1415โ<li>Interchange: <code>u <*> (pure y) = (pure (_ $ y)) <*> u</code></li>
1416โ</ul>
1417โ<h4>Members</h4><ul><li id="v:pure"><code><a href="Control.Alternative.html#v:pure" title="Control.Alternative.pure"><span class="ident">pure</span></a> <span class="syntax">::</span> <span class="keyword">forall</span> <span class="syntax"></span>a<span class="syntax">.</span> a <span class="syntax">-></span> f a</code></li></ul><h4>Instances</h4><ul><li id="v:applicativeFn"><code><a href="Control.Applicative.html#t:Applicative" title="Control.Applicative.Applicative"><span class="ctor">Applicative</span></a> <span class="syntax">(</span><a href="Prim.html#t:Function" title="Prim.Function"><span class="ctor">Function</span></a> r<span class="syntax">)</span></code></li><li id="v:applicativeArray"><code><a href="Control.Applicative.html#t:Applicative" title="Control.Applicative.Applicative"><span class="ctor">Applicative</span></a> <a href="Prim.html#t:Array" title="Prim.Array"><span class="ctor">Array</span></a></code></li><li id="v:applicativeProxy"><code><a href="Control.Applicative.html#t:Applicative" title="Control.Applicative.Applicative"><span class="ctor">Applicative</span></a> <a href="Type.Proxy.html#t:Proxy" title="Type.Proxy.Proxy"><span class="ctor">Proxy</span></a></code></li></ul></div></div><div class="decl" id="v:when"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:when">#</a><span>when</span> </h3><div class="decl__body"><pre class="decl__signature"><code><a href="Control.Alternative.html#v:when" title="Control.Alternative.when"><span class="ident">when</span></a> <span class="syntax">::</span> <span class="keyword">forall</span> <span class="syntax"></span>m<span class="syntax">.</span> <a href="Control.Applicative.html#t:Applicative" title="Control.Applicative.Applicative"><span class="ctor">Applicative</span></a> m <span class="syntax">=></span> <a href="Prim.html#t:Boolean" title="Prim.Boolean"><span class="ctor">Boolean</span></a> <span class="syntax">-></span> m <a href="Data.Unit.html#t:Unit" title="Data.Unit.Unit"><span class="ctor">Unit</span></a> <span class="syntax">-></span> m <a href="Data.Unit.html#t:Unit" title="Data.Unit.Unit"><span class="ctor">Unit</span></a></code></pre><p>Perform an applicative action when a condition is true.</p>
1418โ</div></div><div class="decl" id="v:unless"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:unless">#</a><span>unless</span> </h3><div class="decl__body"><pre class="decl__signature"><code><a href="Control.Alternative.html#v:unless" title="Control.Alternative.unless"><span class="ident">unless</span></a> <span class="syntax">::</span> <span class="keyword">forall</span> <span class="syntax"></span>m<span class="syntax">.</span> <a href="Control.Applicative.html#t:Applicative" title="Control.Applicative.Applicative"><span class="ctor">Applicative</span></a> m <span class="syntax">=></span> <a href="Prim.html#t:Boolean" title="Prim.Boolean"><span class="ctor">Boolean</span></a> <span class="syntax">-></span> m <a href="Data.Unit.html#t:Unit" title="Data.Unit.Unit"><span class="ctor">Unit</span></a> <span class="syntax">-></span> m <a href="Data.Unit.html#t:Unit" title="Data.Unit.Unit"><span class="ctor">Unit</span></a></code></pre><p>Perform an applicative action unless a condition is true.</p>
1419โ</div></div><div class="decl" id="v:liftA1"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:liftA1">#</a><span>liftA1</span> </h3><div class="decl__body"><pre class="decl__signature"><code><a href="Control.Alternative.html#v:liftA1" title="Control.Alternative.liftA1"><span class="ident">liftA1</span></a> <span class="syntax">::</span> <span class="keyword">forall</span> <span class="syntax"></span>f <span class="syntax"></span>a <span class="syntax"></span>b<span class="syntax">.</span> <a href="Control.Applicative.html#t:Applicative" title="Control.Applicative.Applicative"><span class="ctor">Applicative</span></a> f <span class="syntax">=></span> <span class="syntax">(</span>a <span class="syntax">-></span> b<span class="syntax">)</span> <span class="syntax">-></span> f a <span class="syntax">-></span> f b</code></pre><p><code>liftA1</code> provides a default implementation of <code>(<$>)</code> for any
1420โ<code>Applicative</code> functor, without using <code>(<$>)</code> as provided
1421โby the <code>Functor</code>-<code>Applicative</code> superclass
1422โrelationship.</p>
1423โ<p><code>liftA1</code> can therefore be used to write <code>Functor</code> instances
1424โas follows:</p>
1425โ<pre class="purescript"><code>instance functorF :: Functor F where
1426โ map = liftA1
1427โ</code></pre>
1428โ</div></div><h2 class="re-exports">Re-exports from <a href="Control.Apply.html">Control.Apply</a></h2><div class="decl" id="t:Apply"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#t:Apply">#</a><span>Apply</span> </h3><div class="decl__body"><pre class="decl__signature"><code class="decl__kind"><span class="keyword">class</span> <a href="Control.Alternative.html#t:Apply" title="Control.Alternative.Apply"><span class="ctor">Apply</span></a> <span class="syntax">::</span> <span class="syntax">(</span><a href="Prim.html#t:Type" title="Prim.Type"><span class="ctor">Type</span></a> <span class="syntax">-></span> <a href="Prim.html#t:Type" title="Prim.Type"><span class="ctor">Type</span></a><span class="syntax">)</span> <span class="syntax">-></span> <a href="Prim.html#t:Constraint" title="Prim.Constraint"><span class="ctor">Constraint</span></a></code><code><span class="keyword">class</span> <span class="syntax">(</span><a href="Data.Functor.html#t:Functor" title="Data.Functor.Functor"><span class="ctor">Functor</span></a> f<span class="syntax">)</span> <span class="syntax"><=</span> <a href="Control.Alternative.html#t:Apply" title="Control.Alternative.Apply"><span class="ctor">Apply</span></a> f <span class="keyword">where</span></code></pre><p>The <code>Apply</code> class provides the <code>(<*>)</code> which is used to apply a function
1429โto an argument under a type constructor.</p>
1430โ<p><code>Apply</code> can be used to lift functions of two or more arguments to work on
1431โvalues wrapped with the type constructor <code>f</code>. It might also be understood
1432โin terms of the <code>lift2</code> function:</p>
1433โ<pre class="purescript"><code>lift2 :: forall f a b c. Apply f => (a -> b -> c) -> f a -> f b -> f c
1434โlift2 f a b = f <$> a <*> b
1435โ</code></pre>
1436โ<p><code>(<*>)</code> is recovered from <code>lift2</code> as <code>lift2 ($)</code>. That is, <code>(<*>)</code> lifts
1437โthe function application operator <code>($)</code> to arguments wrapped with the
1438โtype constructor <code>f</code>.</p>
1439โ<p>Put differently...</p>
1440โ<pre><code>foo =
1441โ functionTakingNArguments <$> computationProducingArg1
1442โ <*> computationProducingArg2
1443โ <*> ...
1444โ <*> computationProducingArgN
1445โ</code></pre>
1446โ<p>Instances must satisfy the following law in addition to the <code>Functor</code>
1447โlaws:</p>
1448โ<ul>
1449โ<li>Associative composition: <code>(<<<) <$> f <*> g <*> h = f <*> (g <*> h)</code></li>
1450โ</ul>
1451โ<p>Formally, <code>Apply</code> represents a strong lax semi-monoidal endofunctor.</p>
1452โ<h4>Members</h4><ul><li id="v:apply"><code><a href="Control.Alternative.html#v:apply" title="Control.Alternative.apply"><span class="ident">apply</span></a> <span class="syntax">::</span> <span class="keyword">forall</span> <span class="syntax"></span>a <span class="syntax"></span>b<span class="syntax">.</span> f <span class="syntax">(</span>a <span class="syntax">-></span> b<span class="syntax">)</span> <span class="syntax">-></span> f a <span class="syntax">-></span> f b</code></li></ul><h4>Instances</h4><ul><li id="v:applyFn"><code><a href="Control.Apply.html#t:Apply" title="Control.Apply.Apply"><span class="ctor">Apply</span></a> <span class="syntax">(</span><a href="Prim.html#t:Function" title="Prim.Function"><span class="ctor">Function</span></a> r<span class="syntax">)</span></code></li><li id="v:applyArray"><code><a href="Control.Apply.html#t:Apply" title="Control.Apply.Apply"><span class="ctor">Apply</span></a> <a href="Prim.html#t:Array" title="Prim.Array"><span class="ctor">Array</span></a></code></li><li id="v:applyProxy"><code><a href="Control.Apply.html#t:Apply" title="Control.Apply.Apply"><span class="ctor">Apply</span></a> <a href="Type.Proxy.html#t:Proxy" title="Type.Proxy.Proxy"><span class="ctor">Proxy</span></a></code></li></ul></div></div><div class="decl" id="v:(<*>)"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:(<*>)">#</a><span>(<*>)</span> </h3><div class="decl__body"><p>Operator alias for Control.Apply.apply <em>(left-associative / precedence 4)</em></p></div></div><div class="decl" id="v:(<*)"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:(<*)">#</a><span>(<*)</span> </h3><div class="decl__body"><p>Operator alias for Control.Apply.applyFirst <em>(left-associative / precedence 4)</em></p></div></div><div class="decl" id="v:(*>)"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:(*>)">#</a><span>(*>)</span> </h3><div class="decl__body"><p>Operator alias for Control.Apply.applySecond <em>(left-associative / precedence 4)</em></p></div></div><h2 class="re-exports">Re-exports from <a href="Control.Plus.html">Control.Plus</a></h2><div class="decl" id="t:Plus"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#t:Plus">#</a><span>Plus</span> </h3><div class="decl__body"><pre class="decl__signature"><code class="decl__kind"><span class="keyword">class</span> <a href="Control.Alternative.html#t:Plus" title="Control.Alternative.Plus"><span class="ctor">Plus</span></a> <span class="syntax">::</span> <span class="syntax">(</span><a href="Prim.html#t:Type" title="Prim.Type"><span class="ctor">Type</span></a> <span class="syntax">-></span> <a href="Prim.html#t:Type" title="Prim.Type"><span class="ctor">Type</span></a><span class="syntax">)</span> <span class="syntax">-></span> <a href="Prim.html#t:Constraint" title="Prim.Constraint"><span class="ctor">Constraint</span></a></code><code><span class="keyword">class</span> <span class="syntax">(</span><a href="Control.Alt.html#t:Alt" title="Control.Alt.Alt"><span class="ctor">Alt</span></a> f<span class="syntax">)</span> <span class="syntax"><=</span> <a href="Control.Alternative.html#t:Plus" title="Control.Alternative.Plus"><span class="ctor">Plus</span></a> f <span class="keyword">where</span></code></pre><p>The <code>Plus</code> type class extends the <code>Alt</code> type class with a value that
1453โshould be the left and right identity for <code>(<|>)</code>.</p>
1454โ<p>It is similar to <code>Monoid</code>, except that it applies to types of
1455โkind <code>* -> *</code>, like <code>Array</code> or <code>List</code>, rather than concrete types like
1456โ<code>String</code> or <code>Number</code>.</p>
1457โ<p><code>Plus</code> instances should satisfy the following laws:</p>
1458โ<ul>
1459โ<li>Left identity: <code>empty <|> x == x</code></li>
1460โ<li>Right identity: <code>x <|> empty == x</code></li>
1461โ<li>Annihilation: <code>f <$> empty == empty</code></li>
1462โ</ul>
1463โ<h4>Members</h4><ul><li id="v:empty"><code><a href="Control.Alternative.html#v:empty" title="Control.Alternative.empty"><span class="ident">empty</span></a> <span class="syntax">::</span> <span class="keyword">forall</span> <span class="syntax"></span>a<span class="syntax">.</span> f a</code></li></ul><h4>Instances</h4><ul><li id="v:plusArray"><code><a href="Control.Plus.html#t:Plus" title="Control.Plus.Plus"><span class="ctor">Plus</span></a> <a href="Prim.html#t:Array" title="Prim.Array"><span class="ctor">Array</span></a></code></li></ul></div></div><h2 class="re-exports">Re-exports from <a href="Data.Functor.html">Data.Functor</a></h2><div class="decl" id="t:Functor"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#t:Functor">#</a><span>Functor</span> </h3><div class="decl__body"><pre class="decl__signature"><code class="decl__kind"><span class="keyword">class</span> <a href="Control.Alternative.html#t:Functor" title="Control.Alternative.Functor"><span class="ctor">Functor</span></a> <span class="syntax">::</span> <span class="syntax">(</span><a href="Prim.html#t:Type" title="Prim.Type"><span class="ctor">Type</span></a> <span class="syntax">-></span> <a href="Prim.html#t:Type" title="Prim.Type"><span class="ctor">Type</span></a><span class="syntax">)</span> <span class="syntax">-></span> <a href="Prim.html#t:Constraint" title="Prim.Constraint"><span class="ctor">Constraint</span></a></code><code><span class="keyword">class</span> <a href="Control.Alternative.html#t:Functor" title="Control.Alternative.Functor"><span class="ctor">Functor</span></a> f <span class="keyword">where</span></code></pre><p>A <code>Functor</code> is a type constructor which supports a mapping operation
1464โ<code>map</code>.</p>
1465โ<p><code>map</code> can be used to turn functions <code>a -> b</code> into functions
1466โ<code>f a -> f b</code> whose argument and return types use the type constructor <code>f</code>
1467โto represent some computational context.</p>
1468โ<p>Instances must satisfy the following laws:</p>
1469โ<ul>
1470โ<li>Identity: <code>map identity = identity</code></li>
1471โ<li>Composition: <code>map (f <<< g) = map f <<< map g</code></li>
1472โ</ul>
1473โ<h4>Members</h4><ul><li id="v:map"><code><a href="Control.Alternative.html#v:map" title="Control.Alternative.map"><span class="ident">map</span></a> <span class="syntax">::</span> <span class="keyword">forall</span> <span class="syntax"></span>a <span class="syntax"></span>b<span class="syntax">.</span> <span class="syntax">(</span>a <span class="syntax">-></span> b<span class="syntax">)</span> <span class="syntax">-></span> f a <span class="syntax">-></span> f b</code></li></ul><h4>Instances</h4><ul><li id="v:functorFn"><code><a href="Data.Functor.html#t:Functor" title="Data.Functor.Functor"><span class="ctor">Functor</span></a> <span class="syntax">(</span><a href="Prim.html#t:Function" title="Prim.Function"><span class="ctor">Function</span></a> r<span class="syntax">)</span></code></li><li id="v:functorArray"><code><a href="Data.Functor.html#t:Functor" title="Data.Functor.Functor"><span class="ctor">Functor</span></a> <a href="Prim.html#t:Array" title="Prim.Array"><span class="ctor">Array</span></a></code></li><li id="v:functorProxy"><code><a href="Data.Functor.html#t:Functor" title="Data.Functor.Functor"><span class="ctor">Functor</span></a> <a href="Type.Proxy.html#t:Proxy" title="Type.Proxy.Proxy"><span class="ctor">Proxy</span></a></code></li></ul></div></div><div class="decl" id="v:void"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:void">#</a><span>void</span> </h3><div class="decl__body"><pre class="decl__signature"><code><a href="Control.Alternative.html#v:void" title="Control.Alternative.void"><span class="ident">void</span></a> <span class="syntax">::</span> <span class="keyword">forall</span> <span class="syntax"></span>f <span class="syntax"></span>a<span class="syntax">.</span> <a href="Data.Functor.html#t:Functor" title="Data.Functor.Functor"><span class="ctor">Functor</span></a> f <span class="syntax">=></span> f a <span class="syntax">-></span> f <a href="Data.Unit.html#t:Unit" title="Data.Unit.Unit"><span class="ctor">Unit</span></a></code></pre><p>The <code>void</code> function is used to ignore the type wrapped by a
1474โ<code>Functor</code>, replacing it with <code>Unit</code> and keeping only the type
1475โinformation provided by the type constructor itself.</p>
1476โ<p><code>void</code> is often useful when using <code>do</code> notation to change the return type
1477โof a monadic computation:</p>
1478โ<pre class="purescript"><code>main = forE 1 10 \n -> void do
1479โ print n
1480โ print (n * n)
1481โ</code></pre>
1482โ</div></div><div class="decl" id="v:(<$>)"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:(<$>)">#</a><span>(<$>)</span> </h3><div class="decl__body"><p>Operator alias for Data.Functor.map <em>(left-associative / precedence 4)</em></p></div></div><div class="decl" id="v:(<$)"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:(<$)">#</a><span>(<$)</span> </h3><div class="decl__body"><p>Operator alias for Data.Functor.voidRight <em>(left-associative / precedence 4)</em></p></div></div><div class="decl" id="v:(<#>)"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:(<#>)">#</a><span>(<#>)</span> </h3><div class="decl__body"><p>Operator alias for Data.Functor.mapFlipped <em>(left-associative / precedence 1)</em></p></div></div><div class="decl" id="v:($>)"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:($>)">#</a><span>($>)</span> </h3><div class="decl__body"><p>Operator alias for Data.Functor.voidLeft <em>(left-associative / precedence 4)</em></p></div></div></div><div class="col col--aside"><h3>Modules</h3><ul><li><a href="Ansi.Codes.html">Ansi.Codes</a></li><li><a href="Ansi.Output.html">Ansi.Output</a></li><li><a href="Bolson.Control.html">Bolson.Control</a></li><li><a href="Bolson.Core.html">Bolson.Core</a></li><li><a href="Control.Alt.html">Control.Alt</a></li><li><a href="Control.Alternative.html">Control.Alternative</a></li><li><a href="Control.Applicative.html">Control.Applicative</a></li><li><a href="Control.Apply.html">Control.Apply</a></li><li><a href="Control.Biapplicative.html">Control.Biapplicative</a></li><li><a href="Control.Biapply.html">Control.Biapply</a></li><li><a href="Control.Bind.html">Control.Bind</a></li><li><a href="Control.Category.html">Control.Category</a></li><li><a href="Control.Comonad.html">Control.Comonad</a></li><li><a href="Control.Comonad.Cofree.html">Control.Comonad.Cofree</a></li><li><a href="Control.Comonad.Cofree.Class.html">Control.Comonad.Cofree.Class</a></li><li><a href="Control.Comonad.Env.html">Control.Comonad.Env</a></li><li><a href="Control.Comonad.Env.Class.html">Control.Comonad.Env.Class</a></li><li><a href="Control.Comonad.Env.Trans.html">Control.Comonad.Env.Trans</a></li><li><a href="Control.Comonad.Store.html">Control.Comonad.Store</a></li><li><a href="Control.Comonad.Store.Class.html">Control.Comonad.Store.Class</a></li><li><a href="Control.Comonad.Store.Trans.html">Control.Comonad.Store.Trans</a></li><li><a href="Control.Comonad.Traced.html">Control.Comonad.Traced</a></li><li><a href="Control.Comonad.Traced.Class.html">Control.Comonad.Traced.Class</a></li><li><a href="Control.Comonad.Traced.Trans.html">Control.Comonad.Traced.Trans</a></li><li><a href="Control.Comonad.Trans.Class.html">Control.Comonad.Trans.Class</a></li><li><a href="Control.Extend.html">Control.Extend</a></li><li><a href="Control.Lazy.html">Control.Lazy</a></li><li><a href="Control.Monad.html">Control.Monad</a></li><li><a href="Control.Monad.Cont.html">Control.Monad.Cont</a></li><li><a href="Control.Monad.Cont.Class.html">Control.Monad.Cont.Class</a></li><li><a href="Control.Monad.Cont.Trans.html">Control.Monad.Cont.Trans</a></li><li><a href="Control.Monad.Error.Class.html">Control.Monad.Error.Class</a></li><li><a href="Control.Monad.Except.html">Control.Monad.Except</a></li><li><a href="Control.Monad.Except.Trans.html">Control.Monad.Except.Trans</a></li><li><a href="Control.Monad.Fork.Class.html">Control.Monad.Fork.Class</a></li><li><a href="Control.Monad.Free.html">Control.Monad.Free</a></li><li><a href="Control.Monad.Free.Class.html">Control.Monad.Free.Class</a></li><li><a href="Control.Monad.Gen.html">Control.Monad.Gen</a></li><li><a href="Control.Monad.Gen.Class.html">Control.Monad.Gen.Class</a></li><li><a href="Control.Monad.Gen.Common.html">Control.Monad.Gen.Common</a></li><li><a href="Control.Monad.Identity.Trans.html">Control.Monad.Identity.Trans</a></li><li><a href="Control.Monad.List.Trans.html">Control.Monad.List.Trans</a></li><li><a href="Control.Monad.Maybe.Trans.html">Control.Monad.Maybe.Trans</a></li><li><a href="Control.Monad.Morph.html">Control.Monad.Morph</a></li><li><a href="Control.Monad.RWS.html">Control.Monad.RWS</a></li><li><a href="Control.Monad.RWS.Trans.html">Control.Monad.RWS.Trans</a></li><li><a href="Control.Monad.Reader.html">Control.Monad.Reader</a></li><li><a href="Control.Monad.Reader.Class.html">Control.Monad.Reader.Class</a></li><li><a href="Control.Monad.Reader.Trans.html">Control.Monad.Reader.Trans</a></li><li><a href="Control.Monad.Rec.Class.html">Control.Monad.Rec.Class</a></li><li><a href="Control.Monad.ST.html">Control.Monad.ST</a></li><li><a href="Control.Monad.ST.Class.html">Control.Monad.ST.Class</a></li><li><a href="Control.Monad.ST.Global.html">Control.Monad.ST.Global</a></li><li><a href="Control.Monad.ST.Internal.html">Control.Monad.ST.Internal</a></li><li><a href="Control.Monad.ST.Ref.html">Control.Monad.ST.Ref</a></li><li><a href="Control.Monad.ST.Uncurried.html">Control.Monad.ST.Uncurried</a></li><li><a href="Control.Monad.State.html">Control.Monad.State</a></li><li><a href="Control.Monad.State.Class.html">Control.Monad.State.Class</a></li><li><a href="Control.Monad.State.Trans.html">Control.Monad.State.Trans</a></li><li><a href="Control.Monad.Trampoline.html">Control.Monad.Trampoline</a></li><li><a href="Control.Monad.Trans.Class.html">Control.Monad.Trans.Class</a></li><li><a href="Control.Monad.Writer.html">Control.Monad.Writer</a></li><li><a href="Control.Monad.Writer.Class.html">Control.Monad.Writer.Class</a></li><li><a href="Control.Monad.Writer.Trans.html">Control.Monad.Writer.Trans</a></li><li><a href="Control.MonadPlus.html">Control.MonadPlus</a></li><li><a href="Control.Parallel.html">Control.Parallel</a></li><li><a href="Control.Parallel.Class.html">Control.Parallel.Class</a></li><li><a href="Control.Plus.html">Control.Plus</a></li><li><a href="Control.Semigroupoid.html">Control.Semigroupoid</a></li><li><a href="Data.Array.html">Data.Array</a></li><li><a href="Data.Array.NonEmpty.html">Data.Array.NonEmpty</a></li><li><a href="Data.Array.NonEmpty.Internal.html">Data.Array.NonEmpty.Internal</a></li><li><a href="Data.Array.Partial.html">Data.Array.Partial</a></li><li><a href="Data.Array.ST.html">Data.Array.ST</a></li><li><a href="Data.Array.ST.Iterator.html">Data.Array.ST.Iterator</a></li><li><a href="Data.Array.ST.Partial.html">Data.Array.ST.Partial</a></li><li><a href="Data.ArrayBuffer.Types.html">Data.ArrayBuffer.Types</a></li><li><a href="Data.Bifoldable.html">Data.Bifoldable</a></li><li><a href="Data.Bifunctor.html">Data.Bifunctor</a></li><li><a href="Data.Bifunctor.Join.html">Data.Bifunctor.Join</a></li><li><a href="Data.Bitraversable.html">Data.Bitraversable</a></li><li><a href="Data.Boolean.html">Data.Boolean</a></li><li><a href="Data.BooleanAlgebra.html">Data.BooleanAlgebra</a></li><li><a href="Data.Bounded.html">Data.Bounded</a></li><li><a href="Data.Bounded.Generic.html">Data.Bounded.Generic</a></li><li><a href="Data.CatList.html">Data.CatList</a></li><li><a href="Data.CatQueue.html">Data.CatQueue</a></li><li><a href="Data.Char.html">Data.Char</a></li><li><a href="Data.Char.Gen.html">Data.Char.Gen</a></li><li><a href="Data.CommutativeRing.html">Data.CommutativeRing</a></li><li><a href="Data.Compactable.html">Data.Compactable</a></li><li><a href="Data.Comparison.html">Data.Comparison</a></li><li><a href="Data.Const.html">Data.Const</a></li><li><a href="Data.Coyoneda.html">Data.Coyoneda</a></li><li><a href="Data.Date.html">Data.Date</a></li><li><a href="Data.Date.Component.html">Data.Date.Component</a></li><li><a href="Data.Date.Component.Gen.html">Data.Date.Component.Gen</a></li><li><a href="Data.Date.Gen.html">Data.Date.Gen</a></li><li><a href="Data.DateTime.html">Data.DateTime</a></li><li><a href="Data.DateTime.Gen.html">Data.DateTime.Gen</a></li><li><a href="Data.DateTime.Instant.html">Data.DateTime.Instant</a></li><li><a href="Data.Decidable.html">Data.Decidable</a></li><li><a href="Data.Decide.html">Data.Decide</a></li><li><a href="Data.Distributive.html">Data.Distributive</a></li><li><a href="Data.Divide.html">Data.Divide</a></li><li><a href="Data.Divisible.html">Data.Divisible</a></li><li><a href="Data.DivisionRing.html">Data.DivisionRing</a></li><li><a href="Data.Either.html">Data.Either</a></li><li><a href="Data.Either.Inject.html">Data.Either.Inject</a></li><li><a href="Data.Either.Nested.html">Data.Either.Nested</a></li><li><a href="Data.Enum.html">Data.Enum</a></li><li><a href="Data.Enum.Gen.html">Data.Enum.Gen</a></li><li><a href="Data.Enum.Generic.html">Data.Enum.Generic</a></li><li><a href="Data.Eq.html">Data.Eq</a></li><li><a href="Data.Eq.Generic.html">Data.Eq.Generic</a></li><li><a href="Data.Equivalence.html">Data.Equivalence</a></li><li><a href="Data.EuclideanRing.html">Data.EuclideanRing</a></li><li><a href="Data.Exists.html">Data.Exists</a></li><li><a href="Data.FastVect.Common.html">Data.FastVect.Common</a></li><li><a href="Data.FastVect.Common.Matrix.html">Data.FastVect.Common.Matrix</a></li><li><a href="Data.FastVect.FastVect.html">Data.FastVect.FastVect</a></li><li><a href="Data.FastVect.FastVect.Matrix.html">Data.FastVect.FastVect.Matrix</a></li><li><a href="Data.FastVect.MinLenVect.html">Data.FastVect.MinLenVect</a></li><li><a href="Data.FastVect.Sparse.Read.html">Data.FastVect.Sparse.Read</a></li><li><a href="Data.FastVect.Sparse.Write.html">Data.FastVect.Sparse.Write</a></li><li><a href="Data.Field.html">Data.Field</a></li><li><a href="Data.Filterable.html">Data.Filterable</a></li><li><a href="Data.Foldable.html">Data.Foldable</a></li><li><a href="Data.FoldableWithIndex.html">Data.FoldableWithIndex</a></li><li><a href="Data.Function.html">Data.Function</a></li><li><a href="Data.Function.Uncurried.html">Data.Function.Uncurried</a></li><li><a href="Data.Functor.html">Data.Functor</a></li><li><a href="Data.Functor.App.html">Data.Functor.App</a></li><li><a href="Data.Functor.Clown.html">Data.Functor.Clown</a></li><li><a href="Data.Functor.Compose.html">Data.Functor.Compose</a></li><li><a href="Data.Functor.Contravariant.html">Data.Functor.Contravariant</a></li><li><a href="Data.Functor.Coproduct.html">Data.Functor.Coproduct</a></li><li><a href="Data.Functor.Coproduct.Inject.html">Data.Functor.Coproduct.Inject</a></li><li><a href="Data.Functor.Coproduct.Nested.html">Data.Functor.Coproduct.Nested</a></li><li><a href="Data.Functor.Costar.html">Data.Functor.Costar</a></li><li><a href="Data.Functor.Flip.html">Data.Functor.Flip</a></li><li><a href="Data.Functor.Invariant.html">Data.Functor.Invariant</a></li><li><a href="Data.Functor.Joker.html">Data.Functor.Joker</a></li><li><a href="Data.Functor.Product.html">Data.Functor.Product</a></li><li><a href="Data.Functor.Product.Nested.html">Data.Functor.Product.Nested</a></li><li><a href="Data.Functor.Product2.html">Data.Functor.Product2</a></li><li><a href="Data.Functor.Variant.html">Data.Functor.Variant</a></li><li><a href="Data.FunctorWithIndex.html">Data.FunctorWithIndex</a></li><li><a href="Data.Generic.Rep.html">Data.Generic.Rep</a></li><li><a href="Data.HeytingAlgebra.html">Data.HeytingAlgebra</a></li><li><a href="Data.HeytingAlgebra.Generic.html">Data.HeytingAlgebra.Generic</a></li><li><a href="Data.Identity.html">Data.Identity</a></li><li><a href="Data.Int.html">Data.Int</a></li><li><a href="Data.Int.Bits.html">Data.Int.Bits</a></li><li><a href="Data.Interval.html">Data.Interval</a></li><li><a href="Data.Interval.Duration.html">Data.Interval.Duration</a></li><li><a href="Data.Interval.Duration.Iso.html">Data.Interval.Duration.Iso</a></li><li><a href="Data.JSDate.html">Data.JSDate</a></li><li><a href="Data.Lazy.html">Data.Lazy</a></li><li><a href="Data.List.html">Data.List</a></li><li><a href="Data.List.Internal.html">Data.List.Internal</a></li><li><a href="Data.List.Lazy.html">Data.List.Lazy</a></li><li><a href="Data.List.Lazy.NonEmpty.html">Data.List.Lazy.NonEmpty</a></li><li><a href="Data.List.Lazy.Types.html">Data.List.Lazy.Types</a></li><li><a href="Data.List.NonEmpty.html">Data.List.NonEmpty</a></li><li><a href="Data.List.Partial.html">Data.List.Partial</a></li><li><a href="Data.List.Types.html">Data.List.Types</a></li><li><a href="Data.List.ZipList.html">Data.List.ZipList</a></li><li><a href="Data.Map.html">Data.Map</a></li><li><a href="Data.Map.Gen.html">Data.Map.Gen</a></li><li><a href="Data.Map.Internal.html">Data.Map.Internal</a></li><li><a href="Data.Maybe.html">Data.Maybe</a></li><li><a href="Data.Maybe.First.html">Data.Maybe.First</a></li><li><a href="Data.Maybe.Last.html">Data.Maybe.Last</a></li><li><a href="Data.MediaType.html">Data.MediaType</a></li><li><a href="Data.MediaType.Common.html">Data.MediaType.Common</a></li><li><a href="Data.Monoid.html">Data.Monoid</a></li><li><a href="Data.Monoid.Additive.html">Data.Monoid.Additive</a></li><li><a href="Data.Monoid.Alternate.html">Data.Monoid.Alternate</a></li><li><a href="Data.Monoid.Conj.html">Data.Monoid.Conj</a></li><li><a href="Data.Monoid.Disj.html">Data.Monoid.Disj</a></li><li><a href="Data.Monoid.Dual.html">Data.Monoid.Dual</a></li><li><a href="Data.Monoid.Endo.html">Data.Monoid.Endo</a></li><li><a href="Data.Monoid.Generic.html">Data.Monoid.Generic</a></li><li><a href="Data.Monoid.Multiplicative.html">Data.Monoid.Multiplicative</a></li><li><a href="Data.NaturalTransformation.html">Data.NaturalTransformation</a></li><li><a href="Data.Newtype.html">Data.Newtype</a></li><li><a href="Data.NonEmpty.html">Data.NonEmpty</a></li><li><a href="Data.Nullable.html">Data.Nullable</a></li><li><a href="Data.Number.html">Data.Number</a></li><li><a href="Data.Number.Approximate.html">Data.Number.Approximate</a></li><li><a href="Data.Number.Format.html">Data.Number.Format</a></li><li><a href="Data.Op.html">Data.Op</a></li><li><a href="Data.Ord.html">Data.Ord</a></li><li><a href="Data.Ord.Down.html">Data.Ord.Down</a></li><li><a href="Data.Ord.Generic.html">Data.Ord.Generic</a></li><li><a href="Data.Ord.Max.html">Data.Ord.Max</a></li><li><a href="Data.Ord.Min.html">Data.Ord.Min</a></li><li><a href="Data.Ordering.html">Data.Ordering</a></li><li><a href="Data.Posix.html">Data.Posix</a></li><li><a href="Data.Posix.Signal.html">Data.Posix.Signal</a></li><li><a href="Data.Predicate.html">Data.Predicate</a></li><li><a href="Data.Profunctor.html">Data.Profunctor</a></li><li><a href="Data.Profunctor.Choice.html">Data.Profunctor.Choice</a></li><li><a href="Data.Profunctor.Closed.html">Data.Profunctor.Closed</a></li><li><a href="Data.Profunctor.Cochoice.html">Data.Profunctor.Cochoice</a></li><li><a href="Data.Profunctor.Costrong.html">Data.Profunctor.Costrong</a></li><li><a href="Data.Profunctor.Join.html">Data.Profunctor.Join</a></li><li><a href="Data.Profunctor.Split.html">Data.Profunctor.Split</a></li><li><a href="Data.Profunctor.Star.html">Data.Profunctor.Star</a></li><li><a href="Data.Profunctor.Strong.html">Data.Profunctor.Strong</a></li><li><a href="Data.Reflectable.html">Data.Reflectable</a></li><li><a href="Data.Ring.html">Data.Ring</a></li><li><a href="Data.Ring.Generic.html">Data.Ring.Generic</a></li><li><a href="Data.Semigroup.html">Data.Semigroup</a></li><li><a href="Data.Semigroup.First.html">Data.Semigroup.First</a></li><li><a href="Data.Semigroup.Foldable.html">Data.Semigroup.Foldable</a></li><li><a href="Data.Semigroup.Generic.html">Data.Semigroup.Generic</a></li><li><a href="Data.Semigroup.Last.html">Data.Semigroup.Last</a></li><li><a href="Data.Semigroup.Traversable.html">Data.Semigroup.Traversable</a></li><li><a href="Data.Semiring.html">Data.Semiring</a></li><li><a href="Data.Semiring.Generic.html">Data.Semiring.Generic</a></li><li><a href="Data.Set.html">Data.Set</a></li><li><a href="Data.Set.NonEmpty.html">Data.Set.NonEmpty</a></li><li><a href="Data.Show.html">Data.Show</a></li><li><a href="Data.Show.Generic.html">Data.Show.Generic</a></li><li><a href="Data.String.html">Data.String</a></li><li><a href="Data.String.CaseInsensitive.html">Data.String.CaseInsensitive</a></li><li><a href="Data.String.CodePoints.html">Data.String.CodePoints</a></li><li><a href="Data.String.CodeUnits.html">Data.String.CodeUnits</a></li><li><a href="Data.String.Common.html">Data.String.Common</a></li><li><a href="Data.String.Gen.html">Data.String.Gen</a></li><li><a href="Data.String.NonEmpty.html">Data.String.NonEmpty</a></li><li><a href="Data.String.NonEmpty.CaseInsensitive.html">Data.String.NonEmpty.CaseInsensitive</a></li><li><a href="Data.String.NonEmpty.CodePoints.html">Data.String.NonEmpty.CodePoints</a></li><li><a href="Data.String.NonEmpty.CodeUnits.html">Data.String.NonEmpty.CodeUnits</a></li><li><a href="Data.String.NonEmpty.Internal.html">Data.String.NonEmpty.Internal</a></li><li><a href="Data.String.Pattern.html">Data.String.Pattern</a></li><li><a href="Data.String.Regex.html">Data.String.Regex</a></li><li><a href="Data.String.Regex.Flags.html">Data.String.Regex.Flags</a></li><li><a href="Data.String.Regex.Unsafe.html">Data.String.Regex.Unsafe</a></li><li><a href="Data.String.Unsafe.html">Data.String.Unsafe</a></li><li><a href="Data.Symbol.html">Data.Symbol</a></li><li><a href="Data.Time.html">Data.Time</a></li><li><a href="Data.Time.Component.html">Data.Time.Component</a></li><li><a href="Data.Time.Component.Gen.html">Data.Time.Component.Gen</a></li><li><a href="Data.Time.Duration.html">Data.Time.Duration</a></li><li><a href="Data.Time.Duration.Gen.html">Data.Time.Duration.Gen</a></li><li><a href="Data.Time.Gen.html">Data.Time.Gen</a></li><li><a href="Data.Traversable.html">Data.Traversable</a></li><li><a href="Data.Traversable.Accum.html">Data.Traversable.Accum</a></li><li><a href="Data.Traversable.Accum.Internal.html">Data.Traversable.Accum.Internal</a></li><li><a href="Data.TraversableWithIndex.html">Data.TraversableWithIndex</a></li><li><a href="Data.Tuple.html">Data.Tuple</a></li><li><a href="Data.Tuple.Nested.html">Data.Tuple.Nested</a></li><li><a href="Data.Unfoldable.html">Data.Unfoldable</a></li><li><a href="Data.Unfoldable1.html">Data.Unfoldable1</a></li><li><a href="Data.Unit.html">Data.Unit</a></li><li><a href="Data.Variant.html">Data.Variant</a></li><li><a href="Data.Variant.Internal.html">Data.Variant.Internal</a></li><li><a href="Data.Void.html">Data.Void</a></li><li><a href="Data.Witherable.html">Data.Witherable</a></li><li><a href="Data.Yoneda.html">Data.Yoneda</a></li><li><a href="Effect.html">Effect</a></li><li><a href="Effect.AVar.html">Effect.AVar</a></li><li><a href="Effect.Aff.html">Effect.Aff</a></li><li><a href="Effect.Aff.AVar.html">Effect.Aff.AVar</a></li><li><a href="Effect.Aff.Class.html">Effect.Aff.Class</a></li><li><a href="Effect.Aff.Compat.html">Effect.Aff.Compat</a></li><li><a href="Effect.Class.html">Effect.Class</a></li><li><a href="Effect.Class.Console.html">Effect.Class.Console</a></li><li><a href="Effect.Console.html">Effect.Console</a></li><li><a href="Effect.Exception.html">Effect.Exception</a></li><li><a href="Effect.Exception.Unsafe.html">Effect.Exception.Unsafe</a></li><li><a href="Effect.Now.html">Effect.Now</a></li><li><a href="Effect.Ref.html">Effect.Ref</a></li><li><a href="Effect.Timer.html">Effect.Timer</a></li><li><a href="Effect.Uncurried.html">Effect.Uncurried</a></li><li><a href="Effect.Unsafe.html">Effect.Unsafe</a></li><li><a href="FRP.Behavior.html">FRP.Behavior</a></li><li><a href="FRP.Behavior.Keyboard.html">FRP.Behavior.Keyboard</a></li><li><a href="FRP.Behavior.Mouse.html">FRP.Behavior.Mouse</a></li><li><a href="FRP.Behavior.Time.html">FRP.Behavior.Time</a></li><li><a href="FRP.Event.html">FRP.Event</a></li><li><a href="FRP.Event.AnimationFrame.html">FRP.Event.AnimationFrame</a></li><li><a href="FRP.Event.Class.html">FRP.Event.Class</a></li><li><a href="FRP.Event.Keyboard.html">FRP.Event.Keyboard</a></li><li><a href="FRP.Event.Mouse.html">FRP.Event.Mouse</a></li><li><a href="FRP.Event.Time.html">FRP.Event.Time</a></li><li><a href="FRP.Event.VBus.html">FRP.Event.VBus</a></li><li><a href="Foreign.html">Foreign</a></li><li><a href="Foreign.Index.html">Foreign.Index</a></li><li><a href="Foreign.Keys.html">Foreign.Keys</a></li><li><a href="Foreign.Object.html">Foreign.Object</a></li><li><a href="Foreign.Object.Gen.html">Foreign.Object.Gen</a></li><li><a href="Foreign.Object.ST.html">Foreign.Object.ST</a></li><li><a href="Foreign.Object.ST.Unsafe.html">Foreign.Object.ST.Unsafe</a></li><li><a href="Foreign.Object.Unsafe.html">Foreign.Object.Unsafe</a></li><li><a href="Heterogeneous.Folding.html">Heterogeneous.Folding</a></li><li><a href="Heterogeneous.Mapping.html">Heterogeneous.Mapping</a></li><li><a href="Node.Buffer.html">Node.Buffer</a></li><li><a href="Node.Buffer.Class.html">Node.Buffer.Class</a></li><li><a href="Node.Buffer.Constants.html">Node.Buffer.Constants</a></li><li><a href="Node.Buffer.Immutable.html">Node.Buffer.Immutable</a></li><li><a href="Node.Buffer.ST.html">Node.Buffer.ST</a></li><li><a href="Node.Buffer.Types.html">Node.Buffer.Types</a></li><li><a href="Node.Encoding.html">Node.Encoding</a></li><li><a href="Node.EventEmitter.html">Node.EventEmitter</a></li><li><a href="Node.EventEmitter.UtilTypes.html">Node.EventEmitter.UtilTypes</a></li><li><a href="Node.FS.html">Node.FS</a></li><li><a href="Node.FS.Aff.html">Node.FS.Aff</a></li><li><a href="Node.FS.Async.html">Node.FS.Async</a></li><li><a href="Node.FS.Constants.html">Node.FS.Constants</a></li><li><a href="Node.FS.Perms.html">Node.FS.Perms</a></li><li><a href="Node.FS.Stats.html">Node.FS.Stats</a></li><li><a href="Node.FS.Stream.html">Node.FS.Stream</a></li><li><a href="Node.FS.Sync.html">Node.FS.Sync</a></li><li><a href="Node.Path.html">Node.Path</a></li><li><a href="Node.Platform.html">Node.Platform</a></li><li><a href="Node.Process.html">Node.Process</a></li><li><a href="Node.Stream.html">Node.Stream</a></li><li><a href="Node.Stream.Aff.html">Node.Stream.Aff</a></li><li><a href="Node.Symbol.html">Node.Symbol</a></li><li><a href="Partial.html">Partial</a></li><li><a href="Partial.Unsafe.html">Partial.Unsafe</a></li><li><a href="Performance.Minibench.html">Performance.Minibench</a></li><li><a href="Pipes.html">Pipes</a></li><li><a href="Pipes.Core.html">Pipes.Core</a></li><li><a href="Pipes.Internal.html">Pipes.Internal</a></li><li><a href="Pipes.ListT.html">Pipes.ListT</a></li><li><a href="Pipes.Prelude.html">Pipes.Prelude</a></li><li><a href="Prelude.html">Prelude</a></li><li><a href="Prim.html">Prim</a></li><li><a href="Prim.Boolean.html">Prim.Boolean</a></li><li><a href="Prim.Coerce.html">Prim.Coerce</a></li><li><a href="Prim.Int.html">Prim.Int</a></li><li><a href="Prim.Ordering.html">Prim.Ordering</a></li><li><a href="Prim.Row.html">Prim.Row</a></li><li><a href="Prim.RowList.html">Prim.RowList</a></li><li><a href="Prim.Symbol.html">Prim.Symbol</a></li><li><a href="Prim.TypeError.html">Prim.TypeError</a></li><li><a href="Record.html">Record</a></li><li><a href="Record.Builder.html">Record.Builder</a></li><li><a href="Record.Studio.html">Record.Studio</a></li><li><a href="Record.Studio.Keys.html">Record.Studio.Keys</a></li><li><a href="Record.Studio.Map.html">Record.Studio.Map</a></li><li><a href="Record.Studio.MapKind.html">Record.Studio.MapKind</a></li><li><a href="Record.Studio.MapUniform.html">Record.Studio.MapUniform</a></li><li><a href="Record.Studio.Merge.html">Record.Studio.Merge</a></li><li><a href="Record.Studio.SameKeys.html">Record.Studio.SameKeys</a></li><li><a href="Record.Studio.Sequence.html">Record.Studio.Sequence</a></li><li><a href="Record.Studio.Shrink.html">Record.Studio.Shrink</a></li><li><a href="Record.Studio.SingletonRecord.html">Record.Studio.SingletonRecord</a></li><li><a href="Record.Unsafe.html">Record.Unsafe</a></li><li><a href="Record.Unsafe.Union.html">Record.Unsafe.Union</a></li><li><a href="Safe.Coerce.html">Safe.Coerce</a></li><li><a href="Spago.Generated.BuildInfo.html">Spago.Generated.BuildInfo</a></li><li><a href="Test.Spec.html">Test.Spec</a></li><li><a href="Test.Spec.Assertions.html">Test.Spec.Assertions</a></li><li><a href="Test.Spec.Assertions.String.html">Test.Spec.Assertions.String</a></li><li><a href="Test.Spec.Config.html">Test.Spec.Config</a></li><li><a href="Test.Spec.Console.html">Test.Spec.Console</a></li><li><a href="Test.Spec.Reporter.html">Test.Spec.Reporter</a></li><li><a href="Test.Spec.Reporter.Base.html">Test.Spec.Reporter.Base</a></li><li><a href="Test.Spec.Reporter.Console.html">Test.Spec.Reporter.Console</a></li><li><a href="Test.Spec.Reporter.Dot.html">Test.Spec.Reporter.Dot</a></li><li><a href="Test.Spec.Reporter.Spec.html">Test.Spec.Reporter.Spec</a></li><li><a href="Test.Spec.Reporter.Tap.html">Test.Spec.Reporter.Tap</a></li><li><a href="Test.Spec.Reporter.TeamCity.html">Test.Spec.Reporter.TeamCity</a></li><li><a href="Test.Spec.Result.html">Test.Spec.Result</a></li><li><a href="Test.Spec.Runner.html">Test.Spec.Runner</a></li><li><a href="Test.Spec.Runner.Event.html">Test.Spec.Runner.Event</a></li><li><a href="Test.Spec.Speed.html">Test.Spec.Speed</a></li><li><a href="Test.Spec.Style.html">Test.Spec.Style</a></li><li><a href="Test.Spec.Summary.html">Test.Spec.Summary</a></li><li><a href="Test.Spec.Tree.html">Test.Spec.Tree</a></li><li><a href="Type.Data.Boolean.html">Type.Data.Boolean</a></li><li><a href="Type.Data.Ordering.html">Type.Data.Ordering</a></li><li><a href="Type.Data.Symbol.html">Type.Data.Symbol</a></li><li><a href="Type.Equality.html">Type.Equality</a></li><li><a href="Type.Function.html">Type.Function</a></li><li><a href="Type.Prelude.html">Type.Prelude</a></li><li><a href="Type.Proxy.html">Type.Proxy</a></li><li><a href="Type.Row.html">Type.Row</a></li><li><a href="Type.Row.Homogeneous.html">Type.Row.Homogeneous</a></li><li><a href="Type.RowList.html">Type.RowList</a></li><li><a href="Uncurried.RWSE.html">Uncurried.RWSE</a></li><li><a href="Uncurried.RWSET.html">Uncurried.RWSET</a></li><li><a href="Uncurried.Reader.html">Uncurried.Reader</a></li><li><a href="Uncurried.ReaderT.html">Uncurried.ReaderT</a></li><li><a href="Uncurried.State.html">Uncurried.State</a></li><li><a href="Uncurried.StateT.html">Uncurried.StateT</a></li><li><a href="Uncurried.Writer.html">Uncurried.Writer</a></li><li><a href="Uncurried.WriterT.html">Uncurried.WriterT</a></li><li><a href="Unsafe.Coerce.html">Unsafe.Coerce</a></li><li><a href="Unsafe.Reference.html">Unsafe.Reference</a></li><li><a href="Web.DOM.html">Web.DOM</a></li><li><a href="Web.DOM.CharacterData.html">Web.DOM.CharacterData</a></li><li><a href="Web.DOM.ChildNode.html">Web.DOM.ChildNode</a></li><li><a href="Web.DOM.Comment.html">Web.DOM.Comment</a></li><li><a href="Web.DOM.DOMTokenList.html">Web.DOM.DOMTokenList</a></li><li><a href="Web.DOM.Document.html">Web.DOM.Document</a></li><li><a href="Web.DOM.DocumentFragment.html">Web.DOM.DocumentFragment</a></li><li><a href="Web.DOM.DocumentType.html">Web.DOM.DocumentType</a></li><li><a href="Web.DOM.Element.html">Web.DOM.Element</a></li><li><a href="Web.DOM.HTMLCollection.html">Web.DOM.HTMLCollection</a></li><li><a href="Web.DOM.Internal.Types.html">Web.DOM.Internal.Types</a></li><li><a href="Web.DOM.MutationObserver.html">Web.DOM.MutationObserver</a></li><li><a href="Web.DOM.MutationRecord.html">Web.DOM.MutationRecord</a></li><li><a href="Web.DOM.Node.html">Web.DOM.Node</a></li><li><a href="Web.DOM.NodeList.html">Web.DOM.NodeList</a></li><li><a href="Web.DOM.NodeType.html">Web.DOM.NodeType</a></li><li><a href="Web.DOM.NonDocumentTypeChildNode.html">Web.DOM.NonDocumentTypeChildNode</a></li><li><a href="Web.DOM.NonElementParentNode.html">Web.DOM.NonElementParentNode</a></li><li><a href="Web.DOM.ParentNode.html">Web.DOM.ParentNode</a></li><li><a href="Web.DOM.ProcessingInstruction.html">Web.DOM.ProcessingInstruction</a></li><li><a href="Web.DOM.ShadowRoot.html">Web.DOM.ShadowRoot</a></li><li><a href="Web.DOM.Text.html">Web.DOM.Text</a></li><li><a href="Web.Event.CustomEvent.html">Web.Event.CustomEvent</a></li><li><a href="Web.Event.Event.html">Web.Event.Event</a></li><li><a href="Web.Event.EventPhase.html">Web.Event.EventPhase</a></li><li><a href="Web.Event.EventTarget.html">Web.Event.EventTarget</a></li><li><a href="Web.Event.Internal.Types.html">Web.Event.Internal.Types</a></li><li><a href="Web.File.Blob.html">Web.File.Blob</a></li><li><a href="Web.File.File.html">Web.File.File</a></li><li><a href="Web.File.FileList.html">Web.File.FileList</a></li><li><a href="Web.File.FileReader.html">Web.File.FileReader</a></li><li><a href="Web.File.FileReader.ReadyState.html">Web.File.FileReader.ReadyState</a></li><li><a href="Web.File.Url.html">Web.File.Url</a></li><li><a href="Web.HTML.html">Web.HTML</a></li><li><a href="Web.HTML.Common.html">Web.HTML.Common</a></li><li><a href="Web.HTML.Event.BeforeUnloadEvent.html">Web.HTML.Event.BeforeUnloadEvent</a></li><li><a href="Web.HTML.Event.BeforeUnloadEvent.EventTypes.html">Web.HTML.Event.BeforeUnloadEvent.EventTypes</a></li><li><a href="Web.HTML.Event.DataTransfer.html">Web.HTML.Event.DataTransfer</a></li><li><a href="Web.HTML.Event.DataTransfer.DataTransferItem.html">Web.HTML.Event.DataTransfer.DataTransferItem</a></li><li><a href="Web.HTML.Event.DragEvent.html">Web.HTML.Event.DragEvent</a></li><li><a href="Web.HTML.Event.DragEvent.EventTypes.html">Web.HTML.Event.DragEvent.EventTypes</a></li><li><a href="Web.HTML.Event.ErrorEvent.html">Web.HTML.Event.ErrorEvent</a></li><li><a href="Web.HTML.Event.EventTypes.html">Web.HTML.Event.EventTypes</a></li><li><a href="Web.HTML.Event.HashChangeEvent.html">Web.HTML.Event.HashChangeEvent</a></li><li><a href="Web.HTML.Event.HashChangeEvent.EventTypes.html">Web.HTML.Event.HashChangeEvent.EventTypes</a></li><li><a href="Web.HTML.Event.PageTransitionEvent.html">Web.HTML.Event.PageTransitionEvent</a></li><li><a href="Web.HTML.Event.PageTransitionEvent.EventTypes.html">Web.HTML.Event.PageTransitionEvent.EventTypes</a></li><li><a href="Web.HTML.Event.PopStateEvent.html">Web.HTML.Event.PopStateEvent</a></li><li><a href="Web.HTML.Event.PopStateEvent.EventTypes.html">Web.HTML.Event.PopStateEvent.EventTypes</a></li><li><a href="Web.HTML.Event.TrackEvent.html">Web.HTML.Event.TrackEvent</a></li><li><a href="Web.HTML.Event.TrackEvent.EventTypes.html">Web.HTML.Event.TrackEvent.EventTypes</a></li><li><a href="Web.HTML.HTMLAnchorElement.html">Web.HTML.HTMLAnchorElement</a></li><li><a href="Web.HTML.HTMLAreaElement.html">Web.HTML.HTMLAreaElement</a></li><li><a href="Web.HTML.HTMLAudioElement.html">Web.HTML.HTMLAudioElement</a></li><li><a href="Web.HTML.HTMLBRElement.html">Web.HTML.HTMLBRElement</a></li><li><a href="Web.HTML.HTMLBaseElement.html">Web.HTML.HTMLBaseElement</a></li><li><a href="Web.HTML.HTMLBodyElement.html">Web.HTML.HTMLBodyElement</a></li><li><a href="Web.HTML.HTMLButtonElement.html">Web.HTML.HTMLButtonElement</a></li><li><a href="Web.HTML.HTMLCanvasElement.html">Web.HTML.HTMLCanvasElement</a></li><li><a href="Web.HTML.HTMLDListElement.html">Web.HTML.HTMLDListElement</a></li><li><a href="Web.HTML.HTMLDataElement.html">Web.HTML.HTMLDataElement</a></li><li><a href="Web.HTML.HTMLDataListElement.html">Web.HTML.HTMLDataListElement</a></li><li><a href="Web.HTML.HTMLDivElement.html">Web.HTML.HTMLDivElement</a></li><li><a href="Web.HTML.HTMLDocument.html">Web.HTML.HTMLDocument</a></li><li><a href="Web.HTML.HTMLDocument.ReadyState.html">Web.HTML.HTMLDocument.ReadyState</a></li><li><a href="Web.HTML.HTMLDocument.VisibilityState.html">Web.HTML.HTMLDocument.VisibilityState</a></li><li><a href="Web.HTML.HTMLElement.html">Web.HTML.HTMLElement</a></li><li><a href="Web.HTML.HTMLEmbedElement.html">Web.HTML.HTMLEmbedElement</a></li><li><a href="Web.HTML.HTMLFieldSetElement.html">Web.HTML.HTMLFieldSetElement</a></li><li><a href="Web.HTML.HTMLFormElement.html">Web.HTML.HTMLFormElement</a></li><li><a href="Web.HTML.HTMLHRElement.html">Web.HTML.HTMLHRElement</a></li><li><a href="Web.HTML.HTMLHeadElement.html">Web.HTML.HTMLHeadElement</a></li><li><a href="Web.HTML.HTMLHeadingElement.html">Web.HTML.HTMLHeadingElement</a></li><li><a href="Web.HTML.HTMLHtmlElement.html">Web.HTML.HTMLHtmlElement</a></li><li><a href="Web.HTML.HTMLHyperlinkElementUtils.html">Web.HTML.HTMLHyperlinkElementUtils</a></li><li><a href="Web.HTML.HTMLIFrameElement.html">Web.HTML.HTMLIFrameElement</a></li><li><a href="Web.HTML.HTMLImageElement.html">Web.HTML.HTMLImageElement</a></li><li><a href="Web.HTML.HTMLImageElement.CORSMode.html">Web.HTML.HTMLImageElement.CORSMode</a></li><li><a href="Web.HTML.HTMLImageElement.DecodingHint.html">Web.HTML.HTMLImageElement.DecodingHint</a></li><li><a href="Web.HTML.HTMLImageElement.Laziness.html">Web.HTML.HTMLImageElement.Laziness</a></li><li><a href="Web.HTML.HTMLInputElement.html">Web.HTML.HTMLInputElement</a></li><li><a href="Web.HTML.HTMLKeygenElement.html">Web.HTML.HTMLKeygenElement</a></li><li><a href="Web.HTML.HTMLLIElement.html">Web.HTML.HTMLLIElement</a></li><li><a href="Web.HTML.HTMLLabelElement.html">Web.HTML.HTMLLabelElement</a></li><li><a href="Web.HTML.HTMLLegendElement.html">Web.HTML.HTMLLegendElement</a></li><li><a href="Web.HTML.HTMLLinkElement.html">Web.HTML.HTMLLinkElement</a></li><li><a href="Web.HTML.HTMLMapElement.html">Web.HTML.HTMLMapElement</a></li><li><a href="Web.HTML.HTMLMediaElement.html">Web.HTML.HTMLMediaElement</a></li><li><a href="Web.HTML.HTMLMediaElement.CanPlayType.html">Web.HTML.HTMLMediaElement.CanPlayType</a></li><li><a href="Web.HTML.HTMLMediaElement.NetworkState.html">Web.HTML.HTMLMediaElement.NetworkState</a></li><li><a href="Web.HTML.HTMLMediaElement.ReadyState.html">Web.HTML.HTMLMediaElement.ReadyState</a></li><li><a href="Web.HTML.HTMLMetaElement.html">Web.HTML.HTMLMetaElement</a></li><li><a href="Web.HTML.HTMLMeterElement.html">Web.HTML.HTMLMeterElement</a></li><li><a href="Web.HTML.HTMLModElement.html">Web.HTML.HTMLModElement</a></li><li><a href="Web.HTML.HTMLOListElement.html">Web.HTML.HTMLOListElement</a></li><li><a href="Web.HTML.HTMLObjectElement.html">Web.HTML.HTMLObjectElement</a></li><li><a href="Web.HTML.HTMLOptGroupElement.html">Web.HTML.HTMLOptGroupElement</a></li><li><a href="Web.HTML.HTMLOptionElement.html">Web.HTML.HTMLOptionElement</a></li><li><a href="Web.HTML.HTMLOutputElement.html">Web.HTML.HTMLOutputElement</a></li><li><a href="Web.HTML.HTMLParagraphElement.html">Web.HTML.HTMLParagraphElement</a></li><li><a href="Web.HTML.HTMLParamElement.html">Web.HTML.HTMLParamElement</a></li><li><a href="Web.HTML.HTMLPreElement.html">Web.HTML.HTMLPreElement</a></li><li><a href="Web.HTML.HTMLProgressElement.html">Web.HTML.HTMLProgressElement</a></li><li><a href="Web.HTML.HTMLQuoteElement.html">Web.HTML.HTMLQuoteElement</a></li><li><a href="Web.HTML.HTMLScriptElement.html">Web.HTML.HTMLScriptElement</a></li><li><a href="Web.HTML.HTMLSelectElement.html">Web.HTML.HTMLSelectElement</a></li><li><a href="Web.HTML.HTMLSourceElement.html">Web.HTML.HTMLSourceElement</a></li><li><a href="Web.HTML.HTMLSpanElement.html">Web.HTML.HTMLSpanElement</a></li><li><a href="Web.HTML.HTMLStyleElement.html">Web.HTML.HTMLStyleElement</a></li><li><a href="Web.HTML.HTMLTableCaptionElement.html">Web.HTML.HTMLTableCaptionElement</a></li><li><a href="Web.HTML.HTMLTableCellElement.html">Web.HTML.HTMLTableCellElement</a></li><li><a href="Web.HTML.HTMLTableColElement.html">Web.HTML.HTMLTableColElement</a></li><li><a href="Web.HTML.HTMLTableDataCellElement.html">Web.HTML.HTMLTableDataCellElement</a></li><li><a href="Web.HTML.HTMLTableElement.html">Web.HTML.HTMLTableElement</a></li><li><a href="Web.HTML.HTMLTableHeaderCellElement.html">Web.HTML.HTMLTableHeaderCellElement</a></li><li><a href="Web.HTML.HTMLTableRowElement.html">Web.HTML.HTMLTableRowElement</a></li><li><a href="Web.HTML.HTMLTableSectionElement.html">Web.HTML.HTMLTableSectionElement</a></li><li><a href="Web.HTML.HTMLTemplateElement.html">Web.HTML.HTMLTemplateElement</a></li><li><a href="Web.HTML.HTMLTextAreaElement.html">Web.HTML.HTMLTextAreaElement</a></li><li><a href="Web.HTML.HTMLTimeElement.html">Web.HTML.HTMLTimeElement</a></li><li><a href="Web.HTML.HTMLTitleElement.html">Web.HTML.HTMLTitleElement</a></li><li><a href="Web.HTML.HTMLTrackElement.html">Web.HTML.HTMLTrackElement</a></li><li><a href="Web.HTML.HTMLTrackElement.ReadyState.html">Web.HTML.HTMLTrackElement.ReadyState</a></li><li><a href="Web.HTML.HTMLUListElement.html">Web.HTML.HTMLUListElement</a></li><li><a href="Web.HTML.HTMLVideoElement.html">Web.HTML.HTMLVideoElement</a></li><li><a href="Web.HTML.History.html">Web.HTML.History</a></li><li><a href="Web.HTML.Location.html">Web.HTML.Location</a></li><li><a href="Web.HTML.Navigator.html">Web.HTML.Navigator</a></li><li><a href="Web.HTML.SelectionMode.html">Web.HTML.SelectionMode</a></li><li><a href="Web.HTML.ValidityState.html">Web.HTML.ValidityState</a></li><li><a href="Web.HTML.Window.html">Web.HTML.Window</a></li><li><a href="Web.Internal.FFI.html">Web.Internal.FFI</a></li><li><a href="Web.Storage.Event.StorageEvent.html">Web.Storage.Event.StorageEvent</a></li><li><a href="Web.Storage.Storage.html">Web.Storage.Storage</a></li><li><a href="Web.UIEvent.CompositionEvent.html">Web.UIEvent.CompositionEvent</a></li><li><a href="Web.UIEvent.CompositionEvent.EventTypes.html">Web.UIEvent.CompositionEvent.EventTypes</a></li><li><a href="Web.UIEvent.EventTypes.html">Web.UIEvent.EventTypes</a></li><li><a href="Web.UIEvent.FocusEvent.html">Web.UIEvent.FocusEvent</a></li><li><a href="Web.UIEvent.FocusEvent.EventTypes.html">Web.UIEvent.FocusEvent.EventTypes</a></li><li><a href="Web.UIEvent.InputEvent.html">Web.UIEvent.InputEvent</a></li><li><a href="Web.UIEvent.InputEvent.EventTypes.html">Web.UIEvent.InputEvent.EventTypes</a></li><li><a href="Web.UIEvent.InputEvent.InputType.html">Web.UIEvent.InputEvent.InputType</a></li><li><a href="Web.UIEvent.KeyboardEvent.html">Web.UIEvent.KeyboardEvent</a></li><li><a href="Web.UIEvent.KeyboardEvent.EventTypes.html">Web.UIEvent.KeyboardEvent.EventTypes</a></li><li><a href="Web.UIEvent.MouseEvent.html">Web.UIEvent.MouseEvent</a></li><li><a href="Web.UIEvent.MouseEvent.EventTypes.html">Web.UIEvent.MouseEvent.EventTypes</a></li><li><a href="Web.UIEvent.UIEvent.html">Web.UIEvent.UIEvent</a></li><li><a href="Web.UIEvent.WheelEvent.html">Web.UIEvent.WheelEvent</a></li><li><a href="Web.UIEvent.WheelEvent.EventTypes.html">Web.UIEvent.WheelEvent.EventTypes</a></li></ul></div></main></div><div class="footer clearfix"><p>Generated by purs 0.15.15 [development build; commit: UNKNOWN]</p></div><!-- Docs search index. --><script type="text/javascript" src="./docs-search-app.js"></script><script type="text/javascript">window.DocsSearchTypeIndex = {};window.DocsSearchIndex = {};</script></body></html>
generated-docs/html/Control.Applicative.htmldeletedโ1427
@@ -1,1427 +0,0 @@
1โ<!DOCTYPE HTML>
2โ<html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1"><title>PureScript: Control.Applicative</title><link href="https://fonts.googleapis.com/css?family=Roboto+Mono|Roboto:300,400,400i,700,700i" type="text/css" rel="stylesheet"><style type="text/css">/*! normalize.css v3.0.2 | MIT License | git.io/normalize */
3โ
4โ/**
5โ * 1. Set default font family to sans-serif.
6โ * 2. Prevent iOS text size adjust after orientation change, without disabling
7โ * user zoom.
8โ */
9โ
10โhtml {
11โ font-family: sans-serif; /* 1 */
12โ -ms-text-size-adjust: 100%; /* 2 */
13โ -webkit-text-size-adjust: 100%; /* 2 */
14โ}
15โ
16โ/**
17โ * Remove default margin.
18โ */
19โ
20โbody {
21โ margin: 0;
22โ}
23โ
24โ/* HTML5 display definitions
25โ ========================================================================== */
26โ
27โ/**
28โ * Correct `block` display not defined for any HTML5 element in IE 8/9.
29โ * Correct `block` display not defined for `details` or `summary` in IE 10/11
30โ * and Firefox.
31โ * Correct `block` display not defined for `main` in IE 11.
32โ */
33โ
34โarticle,
35โaside,
36โdetails,
37โfigcaption,
38โfigure,
39โfooter,
40โheader,
41โhgroup,
42โmain,
43โmenu,
44โnav,
45โsection,
46โsummary {
47โ display: block;
48โ}
49โ
50โ/**
51โ * 1. Correct `inline-block` display not defined in IE 8/9.
52โ * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
53โ */
54โ
55โaudio,
56โcanvas,
57โprogress,
58โvideo {
59โ display: inline-block; /* 1 */
60โ vertical-align: baseline; /* 2 */
61โ}
62โ
63โ/**
64โ * Prevent modern browsers from displaying `audio` without controls.
65โ * Remove excess height in iOS 5 devices.
66โ */
67โ
68โaudio:not([controls]) {
69โ display: none;
70โ height: 0;
71โ}
72โ
73โ/**
74โ * Address `[hidden]` styling not present in IE 8/9/10.
75โ * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22.
76โ */
77โ
78โ[hidden],
79โtemplate {
80โ display: none;
81โ}
82โ
83โ/* Links
84โ ========================================================================== */
85โ
86โ/**
87โ * Remove the gray background color from active links in IE 10.
88โ */
89โ
90โa {
91โ background-color: transparent;
92โ}
93โ
94โ/**
95โ * Improve readability when focused and also mouse hovered in all browsers.
96โ */
97โ
98โa:active,
99โa:hover {
100โ outline: 0;
101โ}
102โ
103โ/* Text-level semantics
104โ ========================================================================== */
105โ
106โ/**
107โ * Address styling not present in IE 8/9/10/11, Safari, and Chrome.
108โ */
109โ
110โabbr[title] {
111โ border-bottom: 1px dotted;
112โ}
113โ
114โ/**
115โ * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
116โ */
117โ
118โb,
119โstrong {
120โ font-weight: bold;
121โ}
122โ
123โ/**
124โ * Address styling not present in Safari and Chrome.
125โ */
126โ
127โdfn {
128โ font-style: italic;
129โ}
130โ
131โ/**
132โ * Address variable `h1` font-size and margin within `section` and `article`
133โ * contexts in Firefox 4+, Safari, and Chrome.
134โ */
135โ
136โh1 {
137โ font-size: 2em;
138โ margin: 0.67em 0;
139โ}
140โ
141โ/**
142โ * Address styling not present in IE 8/9.
143โ */
144โ
145โmark {
146โ background: #ff0;
147โ color: #000;
148โ}
149โ
150โ/**
151โ * Address inconsistent and variable font size in all browsers.
152โ */
153โ
154โsmall {
155โ font-size: 80%;
156โ}
157โ
158โ/**
159โ * Prevent `sub` and `sup` affecting `line-height` in all browsers.
160โ */
161โ
162โsub,
163โsup {
164โ font-size: 75%;
165โ line-height: 0;
166โ position: relative;
167โ vertical-align: baseline;
168โ}
169โ
170โsup {
171โ top: -0.5em;
172โ}
173โ
174โsub {
175โ bottom: -0.25em;
176โ}
177โ
178โ/* Embedded content
179โ ========================================================================== */
180โ
181โ/**
182โ * Remove border when inside `a` element in IE 8/9/10.
183โ */
184โ
185โimg {
186โ border: 0;
187โ}
188โ
189โ/**
190โ * Correct overflow not hidden in IE 9/10/11.
191โ */
192โ
193โsvg:not(:root) {
194โ overflow: hidden;
195โ}
196โ
197โ/* Grouping content
198โ ========================================================================== */
199โ
200โ/**
201โ * Address margin not present in IE 8/9 and Safari.
202โ */
203โ
204โfigure {
205โ margin: 1em 40px;
206โ}
207โ
208โ/**
209โ * Address differences between Firefox and other browsers.
210โ */
211โ
212โhr {
213โ -moz-box-sizing: content-box;
214โ box-sizing: content-box;
215โ height: 0;
216โ}
217โ
218โ/**
219โ * Contain overflow in all browsers.
220โ */
221โ
222โpre {
223โ overflow: auto;
224โ}
225โ
226โ/**
227โ * Address odd `em`-unit font size rendering in all browsers.
228โ */
229โ
230โcode,
231โkbd,
232โpre,
233โsamp {
234โ font-family: monospace, monospace;
235โ font-size: 1em;
236โ}
237โ
238โ/* Forms
239โ ========================================================================== */
240โ
241โ/**
242โ * Known limitation: by default, Chrome and Safari on OS X allow very limited
243โ * styling of `select`, unless a `border` property is set.
244โ */
245โ
246โ/**
247โ * 1. Correct color not being inherited.
248โ * Known issue: affects color of disabled elements.
249โ * 2. Correct font properties not being inherited.
250โ * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
251โ */
252โ
253โbutton,
254โinput,
255โoptgroup,
256โselect,
257โtextarea {
258โ color: inherit; /* 1 */
259โ font: inherit; /* 2 */
260โ margin: 0; /* 3 */
261โ}
262โ
263โ/**
264โ * Address `overflow` set to `hidden` in IE 8/9/10/11.
265โ */
266โ
267โbutton {
268โ overflow: visible;
269โ}
270โ
271โ/**
272โ * Address inconsistent `text-transform` inheritance for `button` and `select`.
273โ * All other form control elements do not inherit `text-transform` values.
274โ * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
275โ * Correct `select` style inheritance in Firefox.
276โ */
277โ
278โbutton,
279โselect {
280โ text-transform: none;
281โ}
282โ
283โ/**
284โ * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
285โ * and `video` controls.
286โ * 2. Correct inability to style clickable `input` types in iOS.
287โ * 3. Improve usability and consistency of cursor style between image-type
288โ * `input` and others.
289โ */
290โ
291โbutton,
292โhtml input[type="button"], /* 1 */
293โinput[type="reset"],
294โinput[type="submit"] {
295โ -webkit-appearance: button; /* 2 */
296โ cursor: pointer; /* 3 */
297โ}
298โ
299โ/**
300โ * Re-set default cursor for disabled elements.
301โ */
302โ
303โbutton[disabled],
304โhtml input[disabled] {
305โ cursor: default;
306โ}
307โ
308โ/**
309โ * Remove inner padding and border in Firefox 4+.
310โ */
311โ
312โbutton::-moz-focus-inner,
313โinput::-moz-focus-inner {
314โ border: 0;
315โ padding: 0;
316โ}
317โ
318โ/**
319โ * Address Firefox 4+ setting `line-height` on `input` using `!important` in
320โ * the UA stylesheet.
321โ */
322โ
323โinput {
324โ line-height: normal;
325โ}
326โ
327โ/**
328โ * It's recommended that you don't attempt to style these elements.
329โ * Firefox's implementation doesn't respect box-sizing, padding, or width.
330โ *
331โ * 1. Address box sizing set to `content-box` in IE 8/9/10.
332โ * 2. Remove excess padding in IE 8/9/10.
333โ */
334โ
335โinput[type="checkbox"],
336โinput[type="radio"] {
337โ box-sizing: border-box; /* 1 */
338โ padding: 0; /* 2 */
339โ}
340โ
341โ/**
342โ * Fix the cursor style for Chrome's increment/decrement buttons. For certain
343โ * `font-size` values of the `input`, it causes the cursor style of the
344โ * decrement button to change from `default` to `text`.
345โ */
346โ
347โinput[type="number"]::-webkit-inner-spin-button,
348โinput[type="number"]::-webkit-outer-spin-button {
349โ height: auto;
350โ}
351โ
352โ/**
353โ * 1. Address `appearance` set to `searchfield` in Safari and Chrome.
354โ * 2. Address `box-sizing` set to `border-box` in Safari and Chrome
355โ * (include `-moz` to future-proof).
356โ */
357โ
358โinput[type="search"] {
359โ -webkit-appearance: textfield; /* 1 */
360โ -moz-box-sizing: content-box;
361โ -webkit-box-sizing: content-box; /* 2 */
362โ box-sizing: content-box;
363โ}
364โ
365โ/**
366โ * Remove inner padding and search cancel button in Safari and Chrome on OS X.
367โ * Safari (but not Chrome) clips the cancel button when the search input has
368โ * padding (and `textfield` appearance).
369โ */
370โ
371โinput[type="search"]::-webkit-search-cancel-button,
372โinput[type="search"]::-webkit-search-decoration {
373โ -webkit-appearance: none;
374โ}
375โ
376โ/**
377โ * Define consistent border, margin, and padding.
378โ */
379โ
380โfieldset {
381โ border: 1px solid #c0c0c0;
382โ margin: 0 2px;
383โ padding: 0.35em 0.625em 0.75em;
384โ}
385โ
386โ/**
387โ * 1. Correct `color` not being inherited in IE 8/9/10/11.
388โ * 2. Remove padding so people aren't caught out if they zero out fieldsets.
389โ */
390โ
391โlegend {
392โ border: 0; /* 1 */
393โ padding: 0; /* 2 */
394โ}
395โ
396โ/**
397โ * Remove default vertical scrollbar in IE 8/9/10/11.
398โ */
399โ
400โtextarea {
401โ overflow: auto;
402โ}
403โ
404โ/**
405โ * Don't inherit the `font-weight` (applied by a rule above).
406โ * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
407โ */
408โ
409โoptgroup {
410โ font-weight: bold;
411โ}
412โ
413โ/* Tables
414โ ========================================================================== */
415โ
416โ/**
417โ * Remove most spacing between table cells.
418โ */
419โ
420โtable {
421โ border-collapse: collapse;
422โ border-spacing: 0;
423โ}
424โ
425โtd,
426โth {
427โ padding: 0;
428โ}
429โ</style><style type="text/css">/** ************************************************************************* *
430โ ** CSS for HTML docs (e.g. Pursuit)
431โ **
432โ ** STRUCTURE
433โ **
434โ ** This CSS file is structured into several sections, from general to
435โ ** specific, and (mostly) alphabetically within the sections.
436โ **
437โ ** Several global element styles are used. This is not encouraged and should
438โ ** be kept to a minimum. If you want to add new styles you'll most likely
439โ ** want to add a new CSS component. See the Components section for examples.
440โ **
441โ ** CSS components use three simple naming ideas from the BEM system:
442โ ** - Block: `.my-component`
443โ ** - Element: `.my-component__item`
444โ ** - Modifier: `.my-component.my-component--highlighted`
445โ **
446โ ** Example:
447โ ** <div .my-component>
448โ ** <div .my-component__item>
449โ ** <div .my-component__item>
450โ ** ...
451โ ** <div .my-component.my-component--highlighted>
452โ ** <div .my-component__item>
453โ ** <div .my-component__item>
454โ **
455โ ** Components can be nested.
456โ **
457โ **
458โ ** TYPOGRAPHY
459โ **
460โ ** Typographic choices for sizes, line-heights and margins are based on a
461โ ** musical major third scale (4:5). This gives us a way to find numbers
462โ ** and relationships between them that are perceived as harmonic.
463โ **
464โ ** To make use of this modular scale, use a ratio of the form
465โ ** (5/4)^n
466โ ** where n โ โค, -6 โค n โค 8.
467โ **
468โ ** LESS
469โ **
470โ ** This CSS is generated by less. To compile it:
471โ **
472โ ** npm install [-g] less
473โ ** lessc app/static/pursuit.less > app/static/pursuit.css
474โ **
475โ ** ************************************************************************* */
476โ/* Section: Variables
477โ * ========================================================================== */
478โ/* Section: Document Styles
479โ * ========================================================================== */
480โ:root {
481โ color-scheme: light dark;
482โ}
483โhtml {
484โ box-sizing: border-box;
485โ /* This overflow rule prevents everything from shifting slightly to the side
486โ when moving from a page which isn't large enough to generate a scrollbar
487โ to one that is. */
488โ overflow-y: scroll;
489โ}
490โ*,
491โ*::before,
492โ*::after {
493โ box-sizing: inherit;
494โ}
495โbody {
496โ background-color: #ffffff;
497โ color: #000000;
498โ font-family: "Roboto", sans-serif;
499โ font-size: 87.5%;
500โ line-height: 1.563;
501โ}
502โ@media (prefers-color-scheme: dark) {
503โ body {
504โ background-color: #141417;
505โ color: #dedede;
506โ }
507โ}
508โ@media (min-width: 38em) {
509โ body {
510โ font-size: 100%;
511โ }
512โ}
513โ/* Section: Utility Classes
514โ * ========================================================================== */
515โ.clear-floats {
516โ clear: both;
517โ}
518โ.clearfix::before,
519โ.clearfix::after {
520โ content: " ";
521โ display: table;
522โ}
523โ.clearfix::after {
524โ clear: both;
525โ}
526โ/* Content hidden like this will still be read by a screen reader */
527โ.hide-visually {
528โ position: absolute;
529โ left: -10000px;
530โ top: auto;
531โ width: 1px;
532โ height: 1px;
533โ overflow: hidden;
534โ}
535โ/* Section: Layout
536โ * ========================================================================== */
537โ.container {
538โ display: block;
539โ max-width: 66em;
540โ margin-left: auto;
541โ margin-right: auto;
542โ padding-left: 20px;
543โ padding-right: 20px;
544โ}
545โ.col {
546โ display: block;
547โ position: relative;
548โ width: 100%;
549โ}
550โ.col.col--main {
551โ margin-bottom: 3.08em;
552โ}
553โ.col.col--aside {
554โ margin-bottom: 2.44em;
555โ}
556โ@media (min-width: 52em) {
557โ .container {
558โ padding-left: 30px;
559โ padding-right: 30px;
560โ }
561โ .col.col--main {
562โ float: left;
563โ width: 63.655%;
564โ /* 66.6โฆ% - 30px */
565โ }
566โ .col.col--aside {
567โ float: right;
568โ font-size: 87.5%;
569โ width: 33.333333%;
570โ }
571โ}
572โ@media (min-width: 66em) {
573โ .col.col--aside {
574โ font-size: inherit;
575โ }
576โ}
577โ/* Footer
578โ * Based on http://www.lwis.net/journal/2008/02/08/pure-css-sticky-footer/
579โ * Except we don't support IE6
580โ * -------------------------------------------------------------------------- */
581โhtml,
582โbody {
583โ height: 100%;
584โ}
585โ.everything-except-footer {
586โ min-height: 100%;
587โ padding-bottom: 3em;
588โ}
589โ.footer {
590โ position: relative;
591โ height: 3em;
592โ margin-top: -3em;
593โ width: 100%;
594โ text-align: center;
595โ background-color: #1d222d;
596โ color: #f0f0f0;
597โ}
598โ@media (prefers-color-scheme: dark) {
599โ .footer {
600โ background-color: #1d222d;
601โ color: #f0f0f0;
602โ }
603โ}
604โ.footer * {
605โ margin-bottom: 0;
606โ}
607โ/* Section: Element Styles
608โ *
609โ * Have as few of these as possible and keep them general, because they will
610โ * influence every component hereafter.
611โ * ========================================================================== */
612โ:target {
613โ background-color: #f1f5f9;
614โ}
615โ@media (prefers-color-scheme: dark) {
616โ :target {
617โ background-color: #232327;
618โ }
619โ}
620โa,
621โa:visited {
622โ color: #c4953a;
623โ text-decoration: none;
624โ font-weight: bold;
625โ}
626โ@media (prefers-color-scheme: dark) {
627โ a,
628โ a:visited {
629โ color: #d8ac55;
630โ }
631โ}
632โa:hover {
633โ color: #7b5904;
634โ text-decoration: none;
635โ}
636โ@media (prefers-color-scheme: dark) {
637โ a:hover {
638โ color: #f0dcab;
639โ }
640โ}
641โcode,
642โpre {
643โ background-color: #f1f5f9;
644โ border-radius: 3px;
645โ color: #194a5b;
646โ font-family: "Roboto Mono", monospace;
647โ font-size: 87.5%;
648โ}
649โ@media (prefers-color-scheme: dark) {
650โ code,
651โ pre {
652โ background-color: #232327;
653โ color: #c1d3da;
654โ }
655โ}
656โ:target code,
657โ:target pre {
658โ background-color: #dfe8f1;
659โ}
660โ@media (prefers-color-scheme: dark) {
661โ :target code,
662โ :target pre {
663โ background-color: #2f2f34;
664โ }
665โ}
666โcode {
667โ padding: 0.2em 0;
668โ margin: 0;
669โ white-space: pre-wrap;
670โ word-wrap: break-word;
671โ}
672โcode::before,
673โcode::after {
674โ letter-spacing: -0.2em;
675โ content: "\00a0";
676โ}
677โa > code {
678โ font-weight: normal;
679โ}
680โa > code::before {
681โ content: "๐ก";
682โ letter-spacing: 0.33em;
683โ}
684โa:hover > code {
685โ color: #c4953a;
686โ}
687โ@media (prefers-color-scheme: dark) {
688โ a:hover > code {
689โ color: #d8ac55;
690โ }
691โ}
692โpre {
693โ margin-top: 0;
694โ margin-bottom: 0;
695โ padding: 1em 1.25rem;
696โ /* Using rem here to align with lists etc. */
697โ overflow: auto;
698โ white-space: pre;
699โ word-wrap: normal;
700โ}
701โpre code {
702โ background-color: transparent;
703โ border: 0;
704โ font-size: 100%;
705โ max-width: auto;
706โ padding: 0;
707โ margin: 0;
708โ overflow: visible;
709โ line-height: inherit;
710โ white-space: pre;
711โ word-break: normal;
712โ word-wrap: normal;
713โ}
714โpre code::before,
715โpre code::after {
716โ content: normal;
717โ}
718โh1 {
719โ font-size: 3.052em;
720โ font-weight: 300;
721โ letter-spacing: -0.5px;
722โ line-height: 1.125;
723โ margin-top: 1.563rem;
724โ margin-bottom: 1.25rem;
725โ}
726โ@media (min-width: 52em) {
727โ h1 {
728โ font-size: 3.814em;
729โ margin-top: 5.96rem;
730โ }
731โ}
732โh2 {
733โ font-size: 1.953em;
734โ font-weight: normal;
735โ line-height: 1.25;
736โ margin-top: 3.052rem;
737โ margin-bottom: 1rem;
738โ}
739โh3 {
740โ font-size: 1.563em;
741โ font-weight: normal;
742โ line-height: 1.25;
743โ margin-top: 2.441rem;
744โ margin-bottom: 1rem;
745โ}
746โh4 {
747โ font-size: 1.25em;
748โ font-weight: normal;
749โ margin-top: 2.441rem;
750โ margin-bottom: 1rem;
751โ}
752โh1 + h2,
753โh1 + h3,
754โh1 + h4,
755โh2 + h3,
756โh2 + h4,
757โh3 + h4 {
758โ margin-top: 1rem;
759โ}
760โhr {
761โ border: none;
762โ height: 1px;
763โ background-color: #cccccc;
764โ}
765โ@media (prefers-color-scheme: dark) {
766โ hr {
767โ background-color: #43434e;
768โ }
769โ}
770โimg {
771โ border-style: none;
772โ max-width: 100%;
773โ}
774โp {
775โ font-size: 1em;
776โ margin-top: 1rem;
777โ margin-bottom: 1rem;
778โ}
779โtable {
780โ border-bottom: 1px solid #cccccc;
781โ border-collapse: collapse;
782โ border-spacing: 0;
783โ margin-top: 1rem;
784โ margin-bottom: 1rem;
785โ width: 100%;
786โ}
787โ@media (prefers-color-scheme: dark) {
788โ table {
789โ border-bottom-color: #43434e;
790โ }
791โ}
792โtd,
793โth {
794โ text-align: left;
795โ padding: 0.41em 0.51em;
796โ}
797โtd {
798โ border-top: 1px solid #cccccc;
799โ}
800โ@media (prefers-color-scheme: dark) {
801โ td {
802โ border-top-color: #43434e;
803โ }
804โ}
805โtd:first-child,
806โth:first-child {
807โ padding-left: 0;
808โ}
809โtd:last-child,
810โth:last-child {
811โ padding-right: 0;
812โ}
813โul {
814โ list-style-type: none;
815โ margin-top: 1rem;
816โ margin-bottom: 1rem;
817โ padding-left: 0;
818โ}
819โul li {
820โ position: relative;
821โ padding-left: 1.25em;
822โ}
823โul li::before {
824โ position: absolute;
825โ color: #a0a0a0;
826โ content: "โ";
827โ display: inline-block;
828โ margin-left: -1.25em;
829โ width: 1.25em;
830โ}
831โ@media (prefers-color-scheme: dark) {
832โ ul li::before {
833โ color: #a0a0a0;
834โ }
835โ}
836โ/* Tying this tightly to ul at the moment because it's a slight variation thereof */
837โul.ul--search li::before {
838โ content: "โฒ";
839โ top: -0.2em;
840โ transform: rotate(-45deg);
841โ}
842โol {
843โ margin-top: 1rem;
844โ margin-bottom: 1rem;
845โ padding-left: 1.25em;
846โ}
847โol li {
848โ position: relative;
849โ padding-left: 0;
850โ}
851โ/* Section: Components
852โ * ========================================================================== */
853โ/* Component: Badge
854โ * -------------------------------------------------------------------------- */
855โ.badge {
856โ position: relative;
857โ top: -0.1em;
858โ display: inline-block;
859โ background-color: #000000;
860โ border-radius: 1.3em;
861โ color: #ffffff;
862โ font-size: 77%;
863โ font-weight: bold;
864โ line-height: 1.563;
865โ text-align: center;
866โ height: 1.5em;
867โ width: 1.5em;
868โ}
869โ@media (prefers-color-scheme: dark) {
870โ .badge {
871โ background-color: #dedede;
872โ color: #141417;
873โ }
874โ}
875โ.badge.badge--package {
876โ background-color: #c4953a;
877โ letter-spacing: -0.1em;
878โ}
879โ@media (prefers-color-scheme: dark) {
880โ .badge.badge--package {
881โ background-color: #d8ac55;
882โ }
883โ}
884โ.badge.badge--module {
885โ background-color: #75B134;
886โ}
887โ/* Component: Declarations
888โ * -------------------------------------------------------------------------- */
889โ.decl__title {
890โ position: relative;
891โ padding-bottom: 0.328em;
892โ margin-bottom: 0.262em;
893โ}
894โ.decl__source {
895โ display: block;
896โ float: right;
897โ font-size: 64%;
898โ position: relative;
899โ top: 0.57em;
900โ}
901โ.decl__anchor,
902โ.decl__anchor:visited {
903โ position: absolute;
904โ left: -0.8em;
905โ color: #bababa;
906โ}
907โ@media (prefers-color-scheme: dark) {
908โ .decl__anchor,
909โ .decl__anchor:visited {
910โ color: #878787;
911โ }
912โ}
913โ.decl__anchor:hover {
914โ color: #c4953a;
915โ}
916โ@media (prefers-color-scheme: dark) {
917โ .decl__anchor:hover {
918โ color: #d8ac55;
919โ }
920โ}
921โ.decl__signature {
922โ background-color: transparent;
923โ border-radius: 0;
924โ border-top: 1px solid #cccccc;
925โ border-bottom: 1px solid #cccccc;
926โ padding: 0;
927โ}
928โ@media (prefers-color-scheme: dark) {
929โ .decl__signature {
930โ border-top-color: #43434e;
931โ border-bottom-color: #43434e;
932โ }
933โ}
934โ.decl__signature code {
935โ display: block;
936โ padding: 0.328em 0;
937โ padding-left: 2.441em;
938โ text-indent: -2.441em;
939โ white-space: normal;
940โ}
941โ.decl__role {
942โ font-family: "Roboto", sans-serif;
943โ font-style: italic;
944โ font-weight: normal;
945โ}
946โ/* See https://stackoverflow.com/a/32162038
947โ Content licensed under CC BY-SA 3.0
948โ*/
949โ.decl__role_hover[title] {
950โ /* Remove line that appears under abbr element */
951โ border-bottom: none;
952โ text-decoration: none;
953โ /* Ensure cursor doesn't change to question mark */
954โ cursor: inherit;
955โ}
956โ.decl__role_nominal::after {
957โ content: "nominal";
958โ}
959โ.decl__role_phantom::after {
960โ content: "phantom";
961โ}
962โ.decl__kind {
963โ border-bottom: 1px solid #cccccc;
964โ}
965โ@media (prefers-color-scheme: dark) {
966โ .decl__kind {
967โ border-bottom-color: #43434e;
968โ }
969โ}
970โ:target .decl__signature,
971โ:target .decl__signature code {
972โ /* We want the background to be transparent, even when the parent is a target */
973โ background-color: transparent;
974โ}
975โ.decl__body .keyword,
976โ.decl__body .syntax {
977โ color: #0b71b4;
978โ}
979โ@media (prefers-color-scheme: dark) {
980โ .decl__body .keyword,
981โ .decl__body .syntax {
982โ color: #3796d5;
983โ }
984โ}
985โ.decl__child_comments {
986โ margin-top: 1rem;
987โ margin-bottom: 1rem;
988โ}
989โ/* Component: Dependency Link
990โ * -------------------------------------------------------------------------- */
991โ.deplink {
992โ /* Currently no root styles, but keep the class as a namespace */
993โ}
994โ.deplink__link {
995โ display: inline-block;
996โ margin-right: 0.41em;
997โ}
998โ.deplink__version {
999โ color: #666666;
1000โ display: inline-block;
1001โ font-size: 0.8em;
1002โ line-height: 1;
1003โ}
1004โ@media (prefers-color-scheme: dark) {
1005โ .deplink__version {
1006โ color: #a0a0a0;
1007โ }
1008โ}
1009โ/* Component: Grouped List
1010โ * -------------------------------------------------------------------------- */
1011โ.grouped-list {
1012โ border-top: 1px solid #cccccc;
1013โ margin: 0 0 2.44em 0;
1014โ}
1015โ@media (prefers-color-scheme: dark) {
1016โ .grouped-list {
1017โ border-top-color: #43434e;
1018โ }
1019โ}
1020โ.grouped-list__title {
1021โ color: #666666;
1022โ font-size: 0.8em;
1023โ font-weight: 300;
1024โ letter-spacing: 1px;
1025โ margin: 0.8em 0 -0.1em 0;
1026โ text-transform: uppercase;
1027โ}
1028โ@media (prefers-color-scheme: dark) {
1029โ .grouped-list__title {
1030โ border-top-color: #a0a0a0;
1031โ }
1032โ}
1033โ.grouped-list__item {
1034โ margin: 0;
1035โ}
1036โ/* Component: Message
1037โ * -------------------------------------------------------------------------- */
1038โ.message {
1039โ border: 5px solid;
1040โ border-radius: 5px;
1041โ padding: 1em !important;
1042โ}
1043โ.message.message--error {
1044โ background-color: #fff0f0;
1045โ border-color: #c85050;
1046โ}
1047โ@media (prefers-color-scheme: dark) {
1048โ .message.message--error {
1049โ background-color: #6b0e0e;
1050โ border-color: #c85050;
1051โ }
1052โ}
1053โ.message.message--not-available {
1054โ background-color: #f0f096;
1055โ border-color: #e3e33d;
1056โ}
1057โ@media (prefers-color-scheme: dark) {
1058โ .message.message--not-available {
1059โ background-color: #56560b;
1060โ border-color: #b0b017;
1061โ }
1062โ}
1063โ/* Component: Multi Col
1064โ * Multiple columns side by side
1065โ * -------------------------------------------------------------------------- */
1066โ.multi-col {
1067โ margin-bottom: 2.44em;
1068โ}
1069โ.multi-col__col {
1070โ display: block;
1071โ padding-right: 1em;
1072โ position: relative;
1073โ width: 100%;
1074โ}
1075โ@media (min-width: 38em) and (max-width: 51.999999em) {
1076โ .multi-col__col {
1077โ float: left;
1078โ width: 50%;
1079โ }
1080โ .multi-col__col:nth-child(2n+3) {
1081โ clear: both;
1082โ }
1083โ}
1084โ@media (min-width: 52em) {
1085โ .multi-col__col {
1086โ float: left;
1087โ width: 33.333333%;
1088โ }
1089โ .multi-col__col:nth-child(3n+4) {
1090โ clear: both;
1091โ }
1092โ}
1093โ/* Component: Page Title
1094โ * -------------------------------------------------------------------------- */
1095โ.page-title {
1096โ margin: 4.77em 0 1.56em;
1097โ padding-bottom: 1.25em;
1098โ position: relative;
1099โ}
1100โ.page-title__title {
1101โ margin: 0 0 0 -0.05em;
1102โ /* Visually align on left edge */
1103โ}
1104โ.page-title__label {
1105โ position: relative;
1106โ color: #666666;
1107โ font-size: 0.8rem;
1108โ font-weight: 300;
1109โ letter-spacing: 1px;
1110โ margin-bottom: -0.8em;
1111โ text-transform: uppercase;
1112โ z-index: 1;
1113โ}
1114โ@media (prefers-color-scheme: dark) {
1115โ .page-title__label {
1116โ color: #a0a0a0;
1117โ }
1118โ}
1119โ/* Component: Top Banner
1120โ * -------------------------------------------------------------------------- */
1121โ.top-banner {
1122โ background-color: #1d222d;
1123โ color: #f0f0f0;
1124โ font-weight: normal;
1125โ}
1126โ@media (prefers-color-scheme: dark) {
1127โ .top-banner {
1128โ background-color: #1d222d;
1129โ color: #f0f0f0;
1130โ }
1131โ}
1132โ.top-banner__logo,
1133โ.top-banner__logo:visited {
1134โ float: left;
1135โ color: #f0f0f0;
1136โ font-size: 2.44em;
1137โ font-weight: 300;
1138โ line-height: 90px;
1139โ margin: 0;
1140โ}
1141โ@media (prefers-color-scheme: dark) {
1142โ .top-banner__logo,
1143โ .top-banner__logo:visited {
1144โ color: #f0f0f0;
1145โ }
1146โ}
1147โ.top-banner__logo:hover {
1148โ color: #c4953a;
1149โ text-decoration: none;
1150โ}
1151โ.top-banner__form {
1152โ margin-bottom: 1.25em;
1153โ}
1154โ.top-banner__form input {
1155โ border: 1px solid #1d222d;
1156โ border-radius: 3px;
1157โ background-color: #ffffff;
1158โ color: #1d222d;
1159โ font-weight: 300;
1160โ line-height: 2;
1161โ padding: 0.21em 0.512em;
1162โ width: 100%;
1163โ}
1164โ@media (prefers-color-scheme: dark) {
1165โ .top-banner__form input {
1166โ border-color: #1d222d;
1167โ background-color: #141417;
1168โ color: #dedede;
1169โ }
1170โ}
1171โ.top-banner__actions {
1172โ float: right;
1173โ text-align: right;
1174โ}
1175โ.top-banner__actions__item {
1176โ display: inline-block;
1177โ line-height: 90px;
1178โ margin: 0;
1179โ padding-left: 1.25em;
1180โ}
1181โ.top-banner__actions__item:first-child {
1182โ padding-left: 0;
1183โ}
1184โ.top-banner__actions__item a,
1185โ.top-banner__actions__item a:visited {
1186โ color: #f0f0f0;
1187โ}
1188โ@media (prefers-color-scheme: dark) {
1189โ .top-banner__actions__item a,
1190โ .top-banner__actions__item a:visited {
1191โ color: #f0f0f0;
1192โ }
1193โ}
1194โ.top-banner__actions__item a:hover {
1195โ color: #c4953a;
1196โ}
1197โ@media (prefers-color-scheme: dark) {
1198โ .top-banner__actions__item a:hover {
1199โ color: #d8ac55;
1200โ }
1201โ}
1202โ@media (min-width: 38em) {
1203โ .top-banner__logo {
1204โ float: left;
1205โ width: 25%;
1206โ }
1207โ .top-banner__form {
1208โ float: left;
1209โ line-height: 90px;
1210โ margin-bottom: 0;
1211โ width: 50%;
1212โ }
1213โ .top-banner__actions {
1214โ float: right;
1215โ width: 25%;
1216โ }
1217โ}
1218โ/* Component: Search Results
1219โ * -------------------------------------------------------------------------- */
1220โ.result.result--empty {
1221โ font-size: 1.25em;
1222โ}
1223โ.result__title {
1224โ font-size: 1.25em;
1225โ margin-bottom: 0.2rem;
1226โ}
1227โ.result__badge {
1228โ margin-left: -0.1em;
1229โ}
1230โ.result__body > *:first-child {
1231โ margin-top: 0!important;
1232โ}
1233โ.result__body > *:last-child {
1234โ margin-bottom: 0!important;
1235โ}
1236โ.result__signature {
1237โ background-color: transparent;
1238โ border-radius: 0;
1239โ border-top: 1px solid #cccccc;
1240โ border-bottom: 1px solid #cccccc;
1241โ padding: 0.328em 0;
1242โ}
1243โ@media (prefers-color-scheme: dark) {
1244โ .result__signature {
1245โ border-top-color: #43434e;
1246โ border-bottom-color: #43434e;
1247โ }
1248โ}
1249โ.result__signature code {
1250โ display: block;
1251โ padding-left: 2.441em;
1252โ text-indent: -2.441em;
1253โ white-space: normal;
1254โ}
1255โ.result__actions {
1256โ margin-top: 0.2rem;
1257โ}
1258โ.result__actions__item {
1259โ font-size: 80%;
1260โ}
1261โ.result__actions__item + .result__actions__item {
1262โ margin-left: 0.65em;
1263โ}
1264โ/* Component: Version Selector
1265โ * -------------------------------------------------------------------------- */
1266โ.version-selector {
1267โ margin-bottom: 0.8em;
1268โ}
1269โ@media (min-width: 38em) {
1270โ .version-selector {
1271โ position: absolute;
1272โ top: 0.8em;
1273โ right: 0;
1274โ margin-bottom: 0;
1275โ }
1276โ}
1277โ/* Section: FIXME
1278โ * These styles should be cleaned up
1279โ * ========================================================================== */
1280โ/* Help paragraphs */
1281โ.help {
1282โ padding: 5px 0;
1283โ}
1284โ.help h3 {
1285โ /* FIXME: target with class */
1286โ margin-top: 16px;
1287โ}
1288โ/* Section: Markdown
1289โ * Github rendered README
1290โ * ========================================================================== */
1291โ.markdown-body {
1292โ /*
1293โ Useful for narrow screens, such as mobiles. Documentation often contains URLs
1294โ which would otherwise force the page to become wider, and force creation of
1295โ horizontal scrollbars. Yuck.
1296โ */
1297โ word-wrap: break-word;
1298โ}
1299โ.markdown-body > *:first-child {
1300โ margin-top: 0 !important;
1301โ}
1302โ.markdown-body > *:last-child {
1303โ margin-bottom: 0 !important;
1304โ}
1305โ.markdown-body a:not([href]) {
1306โ color: inherit;
1307โ text-decoration: none;
1308โ}
1309โ.markdown-body blockquote {
1310โ margin: 0;
1311โ padding: 0 1em;
1312โ color: #777;
1313โ border-left: 0.25em solid #ddd;
1314โ}
1315โ@media (prefers-color-scheme: dark) {
1316โ .markdown-body blockquote {
1317โ border-left-color: #444;
1318โ }
1319โ}
1320โ.markdown-body blockquote > :first-child {
1321โ margin-top: 0;
1322โ}
1323โ.markdown-body blockquote > :last-child {
1324โ margin-bottom: 0;
1325โ}
1326โ.markdown-body .anchor {
1327โ /* We hide the anchor because the link doesn't point to a valid location */
1328โ display: none;
1329โ}
1330โ.markdown-body .pl-k {
1331โ /* Keyword */
1332โ color: #a0a0a0;
1333โ}
1334โ@media (prefers-color-scheme: dark) {
1335โ .markdown-body .pl-k {
1336โ color: #676767;
1337โ }
1338โ}
1339โ.markdown-body .pl-c1,
1340โ.markdown-body .pl-en {
1341โ /* Not really sure what this is */
1342โ color: #39d;
1343โ}
1344โ.markdown-body .pl-s {
1345โ /* String literals */
1346โ color: #1a1;
1347โ}
1348โ.markdown-body .pl-cce {
1349โ /* String literal escape sequences */
1350โ color: #921;
1351โ}
1352โ.markdown-body .pl-smi {
1353โ /* type variables? */
1354โ color: #62b;
1355โ}
1356โ</style></head><body><div class="everything-except-footer"><div class="top-banner clearfix"><div class="container clearfix"><div style="float: left; font-size: 2.44em; font-weight: 300; line-height: 90px; margin: 0">PureScript API documentation</div><div class="top-banner__actions"><div class="top-banner__actions__item"><a href="index.html">Index</a></div></div></div></div><main class="container clearfix" role="main"><div class="page-title clearfix"><div class="page-title__label">Module</div><h1 class="page-title__title">Control.Applicative</h1></div><div class="col col--main"><div class="decl" id="t:Applicative"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#t:Applicative">#</a><span>Applicative</span> </h3><div class="decl__body"><pre class="decl__signature"><code class="decl__kind"><span class="keyword">class</span> <a href="Control.Applicative.html#t:Applicative" title="Control.Applicative.Applicative"><span class="ctor">Applicative</span></a> <span class="syntax">::</span> <span class="syntax">(</span><a href="Prim.html#t:Type" title="Prim.Type"><span class="ctor">Type</span></a> <span class="syntax">-></span> <a href="Prim.html#t:Type" title="Prim.Type"><span class="ctor">Type</span></a><span class="syntax">)</span> <span class="syntax">-></span> <a href="Prim.html#t:Constraint" title="Prim.Constraint"><span class="ctor">Constraint</span></a></code><code><span class="keyword">class</span> <span class="syntax">(</span><a href="Control.Apply.html#t:Apply" title="Control.Apply.Apply"><span class="ctor">Apply</span></a> f<span class="syntax">)</span> <span class="syntax"><=</span> <a href="Control.Applicative.html#t:Applicative" title="Control.Applicative.Applicative"><span class="ctor">Applicative</span></a> f <span class="keyword">where</span></code></pre><p>The <code>Applicative</code> type class extends the <code>Apply</code> type class
1357โwith a <code>pure</code> function, which can be used to create values of type <code>f a</code>
1358โfrom values of type <code>a</code>.</p>
1359โ<p>Where <code>Apply</code> provides the ability to lift functions of two or
1360โmore arguments to functions whose arguments are wrapped using <code>f</code>, and
1361โ<code>Functor</code> provides the ability to lift functions of one
1362โargument, <code>pure</code> can be seen as the function which lifts functions of
1363โ<em>zero</em> arguments. That is, <code>Applicative</code> functors support a lifting
1364โoperation for any number of function arguments.</p>
1365โ<p>Instances must satisfy the following laws in addition to the <code>Apply</code>
1366โlaws:</p>
1367โ<ul>
1368โ<li>Identity: <code>(pure identity) <*> v = v</code></li>
1369โ<li>Composition: <code>pure (<<<) <*> f <*> g <*> h = f <*> (g <*> h)</code></li>
1370โ<li>Homomorphism: <code>(pure f) <*> (pure x) = pure (f x)</code></li>
1371โ<li>Interchange: <code>u <*> (pure y) = (pure (_ $ y)) <*> u</code></li>
1372โ</ul>
1373โ<h4>Members</h4><ul><li id="v:pure"><code><a href="Control.Applicative.html#v:pure" title="Control.Applicative.pure"><span class="ident">pure</span></a> <span class="syntax">::</span> <span class="keyword">forall</span> <span class="syntax"></span>a<span class="syntax">.</span> a <span class="syntax">-></span> f a</code></li></ul><h4>Instances</h4><ul><li id="v:applicativeFn"><code><a href="Control.Applicative.html#t:Applicative" title="Control.Applicative.Applicative"><span class="ctor">Applicative</span></a> <span class="syntax">(</span><a href="Prim.html#t:Function" title="Prim.Function"><span class="ctor">Function</span></a> r<span class="syntax">)</span></code></li><li id="v:applicativeArray"><code><a href="Control.Applicative.html#t:Applicative" title="Control.Applicative.Applicative"><span class="ctor">Applicative</span></a> <a href="Prim.html#t:Array" title="Prim.Array"><span class="ctor">Array</span></a></code></li><li id="v:applicativeProxy"><code><a href="Control.Applicative.html#t:Applicative" title="Control.Applicative.Applicative"><span class="ctor">Applicative</span></a> <a href="Type.Proxy.html#t:Proxy" title="Type.Proxy.Proxy"><span class="ctor">Proxy</span></a></code></li></ul></div></div><div class="decl" id="v:liftA1"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:liftA1">#</a><span>liftA1</span> </h3><div class="decl__body"><pre class="decl__signature"><code><a href="Control.Applicative.html#v:liftA1" title="Control.Applicative.liftA1"><span class="ident">liftA1</span></a> <span class="syntax">::</span> <span class="keyword">forall</span> <span class="syntax"></span>f <span class="syntax"></span>a <span class="syntax"></span>b<span class="syntax">.</span> <a href="Control.Applicative.html#t:Applicative" title="Control.Applicative.Applicative"><span class="ctor">Applicative</span></a> f <span class="syntax">=></span> <span class="syntax">(</span>a <span class="syntax">-></span> b<span class="syntax">)</span> <span class="syntax">-></span> f a <span class="syntax">-></span> f b</code></pre><p><code>liftA1</code> provides a default implementation of <code>(<$>)</code> for any
1374โ<code>Applicative</code> functor, without using <code>(<$>)</code> as provided
1375โby the <code>Functor</code>-<code>Applicative</code> superclass
1376โrelationship.</p>
1377โ<p><code>liftA1</code> can therefore be used to write <code>Functor</code> instances
1378โas follows:</p>
1379โ<pre class="purescript"><code>instance functorF :: Functor F where
1380โ map = liftA1
1381โ</code></pre>
1382โ</div></div><div class="decl" id="v:unless"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:unless">#</a><span>unless</span> </h3><div class="decl__body"><pre class="decl__signature"><code><a href="Control.Applicative.html#v:unless" title="Control.Applicative.unless"><span class="ident">unless</span></a> <span class="syntax">::</span> <span class="keyword">forall</span> <span class="syntax"></span>m<span class="syntax">.</span> <a href="Control.Applicative.html#t:Applicative" title="Control.Applicative.Applicative"><span class="ctor">Applicative</span></a> m <span class="syntax">=></span> <a href="Prim.html#t:Boolean" title="Prim.Boolean"><span class="ctor">Boolean</span></a> <span class="syntax">-></span> m <a href="Data.Unit.html#t:Unit" title="Data.Unit.Unit"><span class="ctor">Unit</span></a> <span class="syntax">-></span> m <a href="Data.Unit.html#t:Unit" title="Data.Unit.Unit"><span class="ctor">Unit</span></a></code></pre><p>Perform an applicative action unless a condition is true.</p>
1383โ</div></div><div class="decl" id="v:when"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:when">#</a><span>when</span> </h3><div class="decl__body"><pre class="decl__signature"><code><a href="Control.Applicative.html#v:when" title="Control.Applicative.when"><span class="ident">when</span></a> <span class="syntax">::</span> <span class="keyword">forall</span> <span class="syntax"></span>m<span class="syntax">.</span> <a href="Control.Applicative.html#t:Applicative" title="Control.Applicative.Applicative"><span class="ctor">Applicative</span></a> m <span class="syntax">=></span> <a href="Prim.html#t:Boolean" title="Prim.Boolean"><span class="ctor">Boolean</span></a> <span class="syntax">-></span> m <a href="Data.Unit.html#t:Unit" title="Data.Unit.Unit"><span class="ctor">Unit</span></a> <span class="syntax">-></span> m <a href="Data.Unit.html#t:Unit" title="Data.Unit.Unit"><span class="ctor">Unit</span></a></code></pre><p>Perform an applicative action when a condition is true.</p>
1384โ</div></div><h2 class="re-exports">Re-exports from <a href="Control.Apply.html">Control.Apply</a></h2><div class="decl" id="t:Apply"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#t:Apply">#</a><span>Apply</span> </h3><div class="decl__body"><pre class="decl__signature"><code class="decl__kind"><span class="keyword">class</span> <a href="Control.Applicative.html#t:Apply" title="Control.Applicative.Apply"><span class="ctor">Apply</span></a> <span class="syntax">::</span> <span class="syntax">(</span><a href="Prim.html#t:Type" title="Prim.Type"><span class="ctor">Type</span></a> <span class="syntax">-></span> <a href="Prim.html#t:Type" title="Prim.Type"><span class="ctor">Type</span></a><span class="syntax">)</span> <span class="syntax">-></span> <a href="Prim.html#t:Constraint" title="Prim.Constraint"><span class="ctor">Constraint</span></a></code><code><span class="keyword">class</span> <span class="syntax">(</span><a href="Data.Functor.html#t:Functor" title="Data.Functor.Functor"><span class="ctor">Functor</span></a> f<span class="syntax">)</span> <span class="syntax"><=</span> <a href="Control.Applicative.html#t:Apply" title="Control.Applicative.Apply"><span class="ctor">Apply</span></a> f <span class="keyword">where</span></code></pre><p>The <code>Apply</code> class provides the <code>(<*>)</code> which is used to apply a function
1385โto an argument under a type constructor.</p>
1386โ<p><code>Apply</code> can be used to lift functions of two or more arguments to work on
1387โvalues wrapped with the type constructor <code>f</code>. It might also be understood
1388โin terms of the <code>lift2</code> function:</p>
1389โ<pre class="purescript"><code>lift2 :: forall f a b c. Apply f => (a -> b -> c) -> f a -> f b -> f c
1390โlift2 f a b = f <$> a <*> b
1391โ</code></pre>
1392โ<p><code>(<*>)</code> is recovered from <code>lift2</code> as <code>lift2 ($)</code>. That is, <code>(<*>)</code> lifts
1393โthe function application operator <code>($)</code> to arguments wrapped with the
1394โtype constructor <code>f</code>.</p>
1395โ<p>Put differently...</p>
1396โ<pre><code>foo =
1397โ functionTakingNArguments <$> computationProducingArg1
1398โ <*> computationProducingArg2
1399โ <*> ...
1400โ <*> computationProducingArgN
1401โ</code></pre>
1402โ<p>Instances must satisfy the following law in addition to the <code>Functor</code>
1403โlaws:</p>
1404โ<ul>
1405โ<li>Associative composition: <code>(<<<) <$> f <*> g <*> h = f <*> (g <*> h)</code></li>
1406โ</ul>
1407โ<p>Formally, <code>Apply</code> represents a strong lax semi-monoidal endofunctor.</p>
1408โ<h4>Members</h4><ul><li id="v:apply"><code><a href="Control.Applicative.html#v:apply" title="Control.Applicative.apply"><span class="ident">apply</span></a> <span class="syntax">::</span> <span class="keyword">forall</span> <span class="syntax"></span>a <span class="syntax"></span>b<span class="syntax">.</span> f <span class="syntax">(</span>a <span class="syntax">-></span> b<span class="syntax">)</span> <span class="syntax">-></span> f a <span class="syntax">-></span> f b</code></li></ul><h4>Instances</h4><ul><li id="v:applyFn"><code><a href="Control.Apply.html#t:Apply" title="Control.Apply.Apply"><span class="ctor">Apply</span></a> <span class="syntax">(</span><a href="Prim.html#t:Function" title="Prim.Function"><span class="ctor">Function</span></a> r<span class="syntax">)</span></code></li><li id="v:applyArray"><code><a href="Control.Apply.html#t:Apply" title="Control.Apply.Apply"><span class="ctor">Apply</span></a> <a href="Prim.html#t:Array" title="Prim.Array"><span class="ctor">Array</span></a></code></li><li id="v:applyProxy"><code><a href="Control.Apply.html#t:Apply" title="Control.Apply.Apply"><span class="ctor">Apply</span></a> <a href="Type.Proxy.html#t:Proxy" title="Type.Proxy.Proxy"><span class="ctor">Proxy</span></a></code></li></ul></div></div><div class="decl" id="v:(<*>)"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:(<*>)">#</a><span>(<*>)</span> </h3><div class="decl__body"><p>Operator alias for Control.Apply.apply <em>(left-associative / precedence 4)</em></p></div></div><div class="decl" id="v:(<*)"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:(<*)">#</a><span>(<*)</span> </h3><div class="decl__body"><p>Operator alias for Control.Apply.applyFirst <em>(left-associative / precedence 4)</em></p></div></div><div class="decl" id="v:(*>)"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:(*>)">#</a><span>(*>)</span> </h3><div class="decl__body"><p>Operator alias for Control.Apply.applySecond <em>(left-associative / precedence 4)</em></p></div></div><h2 class="re-exports">Re-exports from <a href="Data.Functor.html">Data.Functor</a></h2><div class="decl" id="t:Functor"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#t:Functor">#</a><span>Functor</span> </h3><div class="decl__body"><pre class="decl__signature"><code class="decl__kind"><span class="keyword">class</span> <a href="Control.Applicative.html#t:Functor" title="Control.Applicative.Functor"><span class="ctor">Functor</span></a> <span class="syntax">::</span> <span class="syntax">(</span><a href="Prim.html#t:Type" title="Prim.Type"><span class="ctor">Type</span></a> <span class="syntax">-></span> <a href="Prim.html#t:Type" title="Prim.Type"><span class="ctor">Type</span></a><span class="syntax">)</span> <span class="syntax">-></span> <a href="Prim.html#t:Constraint" title="Prim.Constraint"><span class="ctor">Constraint</span></a></code><code><span class="keyword">class</span> <a href="Control.Applicative.html#t:Functor" title="Control.Applicative.Functor"><span class="ctor">Functor</span></a> f <span class="keyword">where</span></code></pre><p>A <code>Functor</code> is a type constructor which supports a mapping operation
1409โ<code>map</code>.</p>
1410โ<p><code>map</code> can be used to turn functions <code>a -> b</code> into functions
1411โ<code>f a -> f b</code> whose argument and return types use the type constructor <code>f</code>
1412โto represent some computational context.</p>
1413โ<p>Instances must satisfy the following laws:</p>
1414โ<ul>
1415โ<li>Identity: <code>map identity = identity</code></li>
1416โ<li>Composition: <code>map (f <<< g) = map f <<< map g</code></li>
1417โ</ul>
1418โ<h4>Members</h4><ul><li id="v:map"><code><a href="Control.Applicative.html#v:map" title="Control.Applicative.map"><span class="ident">map</span></a> <span class="syntax">::</span> <span class="keyword">forall</span> <span class="syntax"></span>a <span class="syntax"></span>b<span class="syntax">.</span> <span class="syntax">(</span>a <span class="syntax">-></span> b<span class="syntax">)</span> <span class="syntax">-></span> f a <span class="syntax">-></span> f b</code></li></ul><h4>Instances</h4><ul><li id="v:functorFn"><code><a href="Data.Functor.html#t:Functor" title="Data.Functor.Functor"><span class="ctor">Functor</span></a> <span class="syntax">(</span><a href="Prim.html#t:Function" title="Prim.Function"><span class="ctor">Function</span></a> r<span class="syntax">)</span></code></li><li id="v:functorArray"><code><a href="Data.Functor.html#t:Functor" title="Data.Functor.Functor"><span class="ctor">Functor</span></a> <a href="Prim.html#t:Array" title="Prim.Array"><span class="ctor">Array</span></a></code></li><li id="v:functorProxy"><code><a href="Data.Functor.html#t:Functor" title="Data.Functor.Functor"><span class="ctor">Functor</span></a> <a href="Type.Proxy.html#t:Proxy" title="Type.Proxy.Proxy"><span class="ctor">Proxy</span></a></code></li></ul></div></div><div class="decl" id="v:void"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:void">#</a><span>void</span> </h3><div class="decl__body"><pre class="decl__signature"><code><a href="Control.Applicative.html#v:void" title="Control.Applicative.void"><span class="ident">void</span></a> <span class="syntax">::</span> <span class="keyword">forall</span> <span class="syntax"></span>f <span class="syntax"></span>a<span class="syntax">.</span> <a href="Data.Functor.html#t:Functor" title="Data.Functor.Functor"><span class="ctor">Functor</span></a> f <span class="syntax">=></span> f a <span class="syntax">-></span> f <a href="Data.Unit.html#t:Unit" title="Data.Unit.Unit"><span class="ctor">Unit</span></a></code></pre><p>The <code>void</code> function is used to ignore the type wrapped by a
1419โ<code>Functor</code>, replacing it with <code>Unit</code> and keeping only the type
1420โinformation provided by the type constructor itself.</p>
1421โ<p><code>void</code> is often useful when using <code>do</code> notation to change the return type
1422โof a monadic computation:</p>
1423โ<pre class="purescript"><code>main = forE 1 10 \n -> void do
1424โ print n
1425โ print (n * n)
1426โ</code></pre>
1427โ</div></div><div class="decl" id="v:(<$>)"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:(<$>)">#</a><span>(<$>)</span> </h3><div class="decl__body"><p>Operator alias for Data.Functor.map <em>(left-associative / precedence 4)</em></p></div></div><div class="decl" id="v:(<$)"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:(<$)">#</a><span>(<$)</span> </h3><div class="decl__body"><p>Operator alias for Data.Functor.voidRight <em>(left-associative / precedence 4)</em></p></div></div><div class="decl" id="v:(<#>)"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:(<#>)">#</a><span>(<#>)</span> </h3><div class="decl__body"><p>Operator alias for Data.Functor.mapFlipped <em>(left-associative / precedence 1)</em></p></div></div><div class="decl" id="v:($>)"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:($>)">#</a><span>($>)</span> </h3><div class="decl__body"><p>Operator alias for Data.Functor.voidLeft <em>(left-associative / precedence 4)</em></p></div></div></div><div class="col col--aside"><h3>Modules</h3><ul><li><a href="Ansi.Codes.html">Ansi.Codes</a></li><li><a href="Ansi.Output.html">Ansi.Output</a></li><li><a href="Bolson.Control.html">Bolson.Control</a></li><li><a href="Bolson.Core.html">Bolson.Core</a></li><li><a href="Control.Alt.html">Control.Alt</a></li><li><a href="Control.Alternative.html">Control.Alternative</a></li><li><a href="Control.Applicative.html">Control.Applicative</a></li><li><a href="Control.Apply.html">Control.Apply</a></li><li><a href="Control.Biapplicative.html">Control.Biapplicative</a></li><li><a href="Control.Biapply.html">Control.Biapply</a></li><li><a href="Control.Bind.html">Control.Bind</a></li><li><a href="Control.Category.html">Control.Category</a></li><li><a href="Control.Comonad.html">Control.Comonad</a></li><li><a href="Control.Comonad.Cofree.html">Control.Comonad.Cofree</a></li><li><a href="Control.Comonad.Cofree.Class.html">Control.Comonad.Cofree.Class</a></li><li><a href="Control.Comonad.Env.html">Control.Comonad.Env</a></li><li><a href="Control.Comonad.Env.Class.html">Control.Comonad.Env.Class</a></li><li><a href="Control.Comonad.Env.Trans.html">Control.Comonad.Env.Trans</a></li><li><a href="Control.Comonad.Store.html">Control.Comonad.Store</a></li><li><a href="Control.Comonad.Store.Class.html">Control.Comonad.Store.Class</a></li><li><a href="Control.Comonad.Store.Trans.html">Control.Comonad.Store.Trans</a></li><li><a href="Control.Comonad.Traced.html">Control.Comonad.Traced</a></li><li><a href="Control.Comonad.Traced.Class.html">Control.Comonad.Traced.Class</a></li><li><a href="Control.Comonad.Traced.Trans.html">Control.Comonad.Traced.Trans</a></li><li><a href="Control.Comonad.Trans.Class.html">Control.Comonad.Trans.Class</a></li><li><a href="Control.Extend.html">Control.Extend</a></li><li><a href="Control.Lazy.html">Control.Lazy</a></li><li><a href="Control.Monad.html">Control.Monad</a></li><li><a href="Control.Monad.Cont.html">Control.Monad.Cont</a></li><li><a href="Control.Monad.Cont.Class.html">Control.Monad.Cont.Class</a></li><li><a href="Control.Monad.Cont.Trans.html">Control.Monad.Cont.Trans</a></li><li><a href="Control.Monad.Error.Class.html">Control.Monad.Error.Class</a></li><li><a href="Control.Monad.Except.html">Control.Monad.Except</a></li><li><a href="Control.Monad.Except.Trans.html">Control.Monad.Except.Trans</a></li><li><a href="Control.Monad.Fork.Class.html">Control.Monad.Fork.Class</a></li><li><a href="Control.Monad.Free.html">Control.Monad.Free</a></li><li><a href="Control.Monad.Free.Class.html">Control.Monad.Free.Class</a></li><li><a href="Control.Monad.Gen.html">Control.Monad.Gen</a></li><li><a href="Control.Monad.Gen.Class.html">Control.Monad.Gen.Class</a></li><li><a href="Control.Monad.Gen.Common.html">Control.Monad.Gen.Common</a></li><li><a href="Control.Monad.Identity.Trans.html">Control.Monad.Identity.Trans</a></li><li><a href="Control.Monad.List.Trans.html">Control.Monad.List.Trans</a></li><li><a href="Control.Monad.Maybe.Trans.html">Control.Monad.Maybe.Trans</a></li><li><a href="Control.Monad.Morph.html">Control.Monad.Morph</a></li><li><a href="Control.Monad.RWS.html">Control.Monad.RWS</a></li><li><a href="Control.Monad.RWS.Trans.html">Control.Monad.RWS.Trans</a></li><li><a href="Control.Monad.Reader.html">Control.Monad.Reader</a></li><li><a href="Control.Monad.Reader.Class.html">Control.Monad.Reader.Class</a></li><li><a href="Control.Monad.Reader.Trans.html">Control.Monad.Reader.Trans</a></li><li><a href="Control.Monad.Rec.Class.html">Control.Monad.Rec.Class</a></li><li><a href="Control.Monad.ST.html">Control.Monad.ST</a></li><li><a href="Control.Monad.ST.Class.html">Control.Monad.ST.Class</a></li><li><a href="Control.Monad.ST.Global.html">Control.Monad.ST.Global</a></li><li><a href="Control.Monad.ST.Internal.html">Control.Monad.ST.Internal</a></li><li><a href="Control.Monad.ST.Ref.html">Control.Monad.ST.Ref</a></li><li><a href="Control.Monad.ST.Uncurried.html">Control.Monad.ST.Uncurried</a></li><li><a href="Control.Monad.State.html">Control.Monad.State</a></li><li><a href="Control.Monad.State.Class.html">Control.Monad.State.Class</a></li><li><a href="Control.Monad.State.Trans.html">Control.Monad.State.Trans</a></li><li><a href="Control.Monad.Trampoline.html">Control.Monad.Trampoline</a></li><li><a href="Control.Monad.Trans.Class.html">Control.Monad.Trans.Class</a></li><li><a href="Control.Monad.Writer.html">Control.Monad.Writer</a></li><li><a href="Control.Monad.Writer.Class.html">Control.Monad.Writer.Class</a></li><li><a href="Control.Monad.Writer.Trans.html">Control.Monad.Writer.Trans</a></li><li><a href="Control.MonadPlus.html">Control.MonadPlus</a></li><li><a href="Control.Parallel.html">Control.Parallel</a></li><li><a href="Control.Parallel.Class.html">Control.Parallel.Class</a></li><li><a href="Control.Plus.html">Control.Plus</a></li><li><a href="Control.Semigroupoid.html">Control.Semigroupoid</a></li><li><a href="Data.Array.html">Data.Array</a></li><li><a href="Data.Array.NonEmpty.html">Data.Array.NonEmpty</a></li><li><a href="Data.Array.NonEmpty.Internal.html">Data.Array.NonEmpty.Internal</a></li><li><a href="Data.Array.Partial.html">Data.Array.Partial</a></li><li><a href="Data.Array.ST.html">Data.Array.ST</a></li><li><a href="Data.Array.ST.Iterator.html">Data.Array.ST.Iterator</a></li><li><a href="Data.Array.ST.Partial.html">Data.Array.ST.Partial</a></li><li><a href="Data.ArrayBuffer.Types.html">Data.ArrayBuffer.Types</a></li><li><a href="Data.Bifoldable.html">Data.Bifoldable</a></li><li><a href="Data.Bifunctor.html">Data.Bifunctor</a></li><li><a href="Data.Bifunctor.Join.html">Data.Bifunctor.Join</a></li><li><a href="Data.Bitraversable.html">Data.Bitraversable</a></li><li><a href="Data.Boolean.html">Data.Boolean</a></li><li><a href="Data.BooleanAlgebra.html">Data.BooleanAlgebra</a></li><li><a href="Data.Bounded.html">Data.Bounded</a></li><li><a href="Data.Bounded.Generic.html">Data.Bounded.Generic</a></li><li><a href="Data.CatList.html">Data.CatList</a></li><li><a href="Data.CatQueue.html">Data.CatQueue</a></li><li><a href="Data.Char.html">Data.Char</a></li><li><a href="Data.Char.Gen.html">Data.Char.Gen</a></li><li><a href="Data.CommutativeRing.html">Data.CommutativeRing</a></li><li><a href="Data.Compactable.html">Data.Compactable</a></li><li><a href="Data.Comparison.html">Data.Comparison</a></li><li><a href="Data.Const.html">Data.Const</a></li><li><a href="Data.Coyoneda.html">Data.Coyoneda</a></li><li><a href="Data.Date.html">Data.Date</a></li><li><a href="Data.Date.Component.html">Data.Date.Component</a></li><li><a href="Data.Date.Component.Gen.html">Data.Date.Component.Gen</a></li><li><a href="Data.Date.Gen.html">Data.Date.Gen</a></li><li><a href="Data.DateTime.html">Data.DateTime</a></li><li><a href="Data.DateTime.Gen.html">Data.DateTime.Gen</a></li><li><a href="Data.DateTime.Instant.html">Data.DateTime.Instant</a></li><li><a href="Data.Decidable.html">Data.Decidable</a></li><li><a href="Data.Decide.html">Data.Decide</a></li><li><a href="Data.Distributive.html">Data.Distributive</a></li><li><a href="Data.Divide.html">Data.Divide</a></li><li><a href="Data.Divisible.html">Data.Divisible</a></li><li><a href="Data.DivisionRing.html">Data.DivisionRing</a></li><li><a href="Data.Either.html">Data.Either</a></li><li><a href="Data.Either.Inject.html">Data.Either.Inject</a></li><li><a href="Data.Either.Nested.html">Data.Either.Nested</a></li><li><a href="Data.Enum.html">Data.Enum</a></li><li><a href="Data.Enum.Gen.html">Data.Enum.Gen</a></li><li><a href="Data.Enum.Generic.html">Data.Enum.Generic</a></li><li><a href="Data.Eq.html">Data.Eq</a></li><li><a href="Data.Eq.Generic.html">Data.Eq.Generic</a></li><li><a href="Data.Equivalence.html">Data.Equivalence</a></li><li><a href="Data.EuclideanRing.html">Data.EuclideanRing</a></li><li><a href="Data.Exists.html">Data.Exists</a></li><li><a href="Data.FastVect.Common.html">Data.FastVect.Common</a></li><li><a href="Data.FastVect.Common.Matrix.html">Data.FastVect.Common.Matrix</a></li><li><a href="Data.FastVect.FastVect.html">Data.FastVect.FastVect</a></li><li><a href="Data.FastVect.FastVect.Matrix.html">Data.FastVect.FastVect.Matrix</a></li><li><a href="Data.FastVect.MinLenVect.html">Data.FastVect.MinLenVect</a></li><li><a href="Data.FastVect.Sparse.Read.html">Data.FastVect.Sparse.Read</a></li><li><a href="Data.FastVect.Sparse.Write.html">Data.FastVect.Sparse.Write</a></li><li><a href="Data.Field.html">Data.Field</a></li><li><a href="Data.Filterable.html">Data.Filterable</a></li><li><a href="Data.Foldable.html">Data.Foldable</a></li><li><a href="Data.FoldableWithIndex.html">Data.FoldableWithIndex</a></li><li><a href="Data.Function.html">Data.Function</a></li><li><a href="Data.Function.Uncurried.html">Data.Function.Uncurried</a></li><li><a href="Data.Functor.html">Data.Functor</a></li><li><a href="Data.Functor.App.html">Data.Functor.App</a></li><li><a href="Data.Functor.Clown.html">Data.Functor.Clown</a></li><li><a href="Data.Functor.Compose.html">Data.Functor.Compose</a></li><li><a href="Data.Functor.Contravariant.html">Data.Functor.Contravariant</a></li><li><a href="Data.Functor.Coproduct.html">Data.Functor.Coproduct</a></li><li><a href="Data.Functor.Coproduct.Inject.html">Data.Functor.Coproduct.Inject</a></li><li><a href="Data.Functor.Coproduct.Nested.html">Data.Functor.Coproduct.Nested</a></li><li><a href="Data.Functor.Costar.html">Data.Functor.Costar</a></li><li><a href="Data.Functor.Flip.html">Data.Functor.Flip</a></li><li><a href="Data.Functor.Invariant.html">Data.Functor.Invariant</a></li><li><a href="Data.Functor.Joker.html">Data.Functor.Joker</a></li><li><a href="Data.Functor.Product.html">Data.Functor.Product</a></li><li><a href="Data.Functor.Product.Nested.html">Data.Functor.Product.Nested</a></li><li><a href="Data.Functor.Product2.html">Data.Functor.Product2</a></li><li><a href="Data.Functor.Variant.html">Data.Functor.Variant</a></li><li><a href="Data.FunctorWithIndex.html">Data.FunctorWithIndex</a></li><li><a href="Data.Generic.Rep.html">Data.Generic.Rep</a></li><li><a href="Data.HeytingAlgebra.html">Data.HeytingAlgebra</a></li><li><a href="Data.HeytingAlgebra.Generic.html">Data.HeytingAlgebra.Generic</a></li><li><a href="Data.Identity.html">Data.Identity</a></li><li><a href="Data.Int.html">Data.Int</a></li><li><a href="Data.Int.Bits.html">Data.Int.Bits</a></li><li><a href="Data.Interval.html">Data.Interval</a></li><li><a href="Data.Interval.Duration.html">Data.Interval.Duration</a></li><li><a href="Data.Interval.Duration.Iso.html">Data.Interval.Duration.Iso</a></li><li><a href="Data.JSDate.html">Data.JSDate</a></li><li><a href="Data.Lazy.html">Data.Lazy</a></li><li><a href="Data.List.html">Data.List</a></li><li><a href="Data.List.Internal.html">Data.List.Internal</a></li><li><a href="Data.List.Lazy.html">Data.List.Lazy</a></li><li><a href="Data.List.Lazy.NonEmpty.html">Data.List.Lazy.NonEmpty</a></li><li><a href="Data.List.Lazy.Types.html">Data.List.Lazy.Types</a></li><li><a href="Data.List.NonEmpty.html">Data.List.NonEmpty</a></li><li><a href="Data.List.Partial.html">Data.List.Partial</a></li><li><a href="Data.List.Types.html">Data.List.Types</a></li><li><a href="Data.List.ZipList.html">Data.List.ZipList</a></li><li><a href="Data.Map.html">Data.Map</a></li><li><a href="Data.Map.Gen.html">Data.Map.Gen</a></li><li><a href="Data.Map.Internal.html">Data.Map.Internal</a></li><li><a href="Data.Maybe.html">Data.Maybe</a></li><li><a href="Data.Maybe.First.html">Data.Maybe.First</a></li><li><a href="Data.Maybe.Last.html">Data.Maybe.Last</a></li><li><a href="Data.MediaType.html">Data.MediaType</a></li><li><a href="Data.MediaType.Common.html">Data.MediaType.Common</a></li><li><a href="Data.Monoid.html">Data.Monoid</a></li><li><a href="Data.Monoid.Additive.html">Data.Monoid.Additive</a></li><li><a href="Data.Monoid.Alternate.html">Data.Monoid.Alternate</a></li><li><a href="Data.Monoid.Conj.html">Data.Monoid.Conj</a></li><li><a href="Data.Monoid.Disj.html">Data.Monoid.Disj</a></li><li><a href="Data.Monoid.Dual.html">Data.Monoid.Dual</a></li><li><a href="Data.Monoid.Endo.html">Data.Monoid.Endo</a></li><li><a href="Data.Monoid.Generic.html">Data.Monoid.Generic</a></li><li><a href="Data.Monoid.Multiplicative.html">Data.Monoid.Multiplicative</a></li><li><a href="Data.NaturalTransformation.html">Data.NaturalTransformation</a></li><li><a href="Data.Newtype.html">Data.Newtype</a></li><li><a href="Data.NonEmpty.html">Data.NonEmpty</a></li><li><a href="Data.Nullable.html">Data.Nullable</a></li><li><a href="Data.Number.html">Data.Number</a></li><li><a href="Data.Number.Approximate.html">Data.Number.Approximate</a></li><li><a href="Data.Number.Format.html">Data.Number.Format</a></li><li><a href="Data.Op.html">Data.Op</a></li><li><a href="Data.Ord.html">Data.Ord</a></li><li><a href="Data.Ord.Down.html">Data.Ord.Down</a></li><li><a href="Data.Ord.Generic.html">Data.Ord.Generic</a></li><li><a href="Data.Ord.Max.html">Data.Ord.Max</a></li><li><a href="Data.Ord.Min.html">Data.Ord.Min</a></li><li><a href="Data.Ordering.html">Data.Ordering</a></li><li><a href="Data.Posix.html">Data.Posix</a></li><li><a href="Data.Posix.Signal.html">Data.Posix.Signal</a></li><li><a href="Data.Predicate.html">Data.Predicate</a></li><li><a href="Data.Profunctor.html">Data.Profunctor</a></li><li><a href="Data.Profunctor.Choice.html">Data.Profunctor.Choice</a></li><li><a href="Data.Profunctor.Closed.html">Data.Profunctor.Closed</a></li><li><a href="Data.Profunctor.Cochoice.html">Data.Profunctor.Cochoice</a></li><li><a href="Data.Profunctor.Costrong.html">Data.Profunctor.Costrong</a></li><li><a href="Data.Profunctor.Join.html">Data.Profunctor.Join</a></li><li><a href="Data.Profunctor.Split.html">Data.Profunctor.Split</a></li><li><a href="Data.Profunctor.Star.html">Data.Profunctor.Star</a></li><li><a href="Data.Profunctor.Strong.html">Data.Profunctor.Strong</a></li><li><a href="Data.Reflectable.html">Data.Reflectable</a></li><li><a href="Data.Ring.html">Data.Ring</a></li><li><a href="Data.Ring.Generic.html">Data.Ring.Generic</a></li><li><a href="Data.Semigroup.html">Data.Semigroup</a></li><li><a href="Data.Semigroup.First.html">Data.Semigroup.First</a></li><li><a href="Data.Semigroup.Foldable.html">Data.Semigroup.Foldable</a></li><li><a href="Data.Semigroup.Generic.html">Data.Semigroup.Generic</a></li><li><a href="Data.Semigroup.Last.html">Data.Semigroup.Last</a></li><li><a href="Data.Semigroup.Traversable.html">Data.Semigroup.Traversable</a></li><li><a href="Data.Semiring.html">Data.Semiring</a></li><li><a href="Data.Semiring.Generic.html">Data.Semiring.Generic</a></li><li><a href="Data.Set.html">Data.Set</a></li><li><a href="Data.Set.NonEmpty.html">Data.Set.NonEmpty</a></li><li><a href="Data.Show.html">Data.Show</a></li><li><a href="Data.Show.Generic.html">Data.Show.Generic</a></li><li><a href="Data.String.html">Data.String</a></li><li><a href="Data.String.CaseInsensitive.html">Data.String.CaseInsensitive</a></li><li><a href="Data.String.CodePoints.html">Data.String.CodePoints</a></li><li><a href="Data.String.CodeUnits.html">Data.String.CodeUnits</a></li><li><a href="Data.String.Common.html">Data.String.Common</a></li><li><a href="Data.String.Gen.html">Data.String.Gen</a></li><li><a href="Data.String.NonEmpty.html">Data.String.NonEmpty</a></li><li><a href="Data.String.NonEmpty.CaseInsensitive.html">Data.String.NonEmpty.CaseInsensitive</a></li><li><a href="Data.String.NonEmpty.CodePoints.html">Data.String.NonEmpty.CodePoints</a></li><li><a href="Data.String.NonEmpty.CodeUnits.html">Data.String.NonEmpty.CodeUnits</a></li><li><a href="Data.String.NonEmpty.Internal.html">Data.String.NonEmpty.Internal</a></li><li><a href="Data.String.Pattern.html">Data.String.Pattern</a></li><li><a href="Data.String.Regex.html">Data.String.Regex</a></li><li><a href="Data.String.Regex.Flags.html">Data.String.Regex.Flags</a></li><li><a href="Data.String.Regex.Unsafe.html">Data.String.Regex.Unsafe</a></li><li><a href="Data.String.Unsafe.html">Data.String.Unsafe</a></li><li><a href="Data.Symbol.html">Data.Symbol</a></li><li><a href="Data.Time.html">Data.Time</a></li><li><a href="Data.Time.Component.html">Data.Time.Component</a></li><li><a href="Data.Time.Component.Gen.html">Data.Time.Component.Gen</a></li><li><a href="Data.Time.Duration.html">Data.Time.Duration</a></li><li><a href="Data.Time.Duration.Gen.html">Data.Time.Duration.Gen</a></li><li><a href="Data.Time.Gen.html">Data.Time.Gen</a></li><li><a href="Data.Traversable.html">Data.Traversable</a></li><li><a href="Data.Traversable.Accum.html">Data.Traversable.Accum</a></li><li><a href="Data.Traversable.Accum.Internal.html">Data.Traversable.Accum.Internal</a></li><li><a href="Data.TraversableWithIndex.html">Data.TraversableWithIndex</a></li><li><a href="Data.Tuple.html">Data.Tuple</a></li><li><a href="Data.Tuple.Nested.html">Data.Tuple.Nested</a></li><li><a href="Data.Unfoldable.html">Data.Unfoldable</a></li><li><a href="Data.Unfoldable1.html">Data.Unfoldable1</a></li><li><a href="Data.Unit.html">Data.Unit</a></li><li><a href="Data.Variant.html">Data.Variant</a></li><li><a href="Data.Variant.Internal.html">Data.Variant.Internal</a></li><li><a href="Data.Void.html">Data.Void</a></li><li><a href="Data.Witherable.html">Data.Witherable</a></li><li><a href="Data.Yoneda.html">Data.Yoneda</a></li><li><a href="Effect.html">Effect</a></li><li><a href="Effect.AVar.html">Effect.AVar</a></li><li><a href="Effect.Aff.html">Effect.Aff</a></li><li><a href="Effect.Aff.AVar.html">Effect.Aff.AVar</a></li><li><a href="Effect.Aff.Class.html">Effect.Aff.Class</a></li><li><a href="Effect.Aff.Compat.html">Effect.Aff.Compat</a></li><li><a href="Effect.Class.html">Effect.Class</a></li><li><a href="Effect.Class.Console.html">Effect.Class.Console</a></li><li><a href="Effect.Console.html">Effect.Console</a></li><li><a href="Effect.Exception.html">Effect.Exception</a></li><li><a href="Effect.Exception.Unsafe.html">Effect.Exception.Unsafe</a></li><li><a href="Effect.Now.html">Effect.Now</a></li><li><a href="Effect.Ref.html">Effect.Ref</a></li><li><a href="Effect.Timer.html">Effect.Timer</a></li><li><a href="Effect.Uncurried.html">Effect.Uncurried</a></li><li><a href="Effect.Unsafe.html">Effect.Unsafe</a></li><li><a href="FRP.Behavior.html">FRP.Behavior</a></li><li><a href="FRP.Behavior.Keyboard.html">FRP.Behavior.Keyboard</a></li><li><a href="FRP.Behavior.Mouse.html">FRP.Behavior.Mouse</a></li><li><a href="FRP.Behavior.Time.html">FRP.Behavior.Time</a></li><li><a href="FRP.Event.html">FRP.Event</a></li><li><a href="FRP.Event.AnimationFrame.html">FRP.Event.AnimationFrame</a></li><li><a href="FRP.Event.Class.html">FRP.Event.Class</a></li><li><a href="FRP.Event.Keyboard.html">FRP.Event.Keyboard</a></li><li><a href="FRP.Event.Mouse.html">FRP.Event.Mouse</a></li><li><a href="FRP.Event.Time.html">FRP.Event.Time</a></li><li><a href="FRP.Event.VBus.html">FRP.Event.VBus</a></li><li><a href="Foreign.html">Foreign</a></li><li><a href="Foreign.Index.html">Foreign.Index</a></li><li><a href="Foreign.Keys.html">Foreign.Keys</a></li><li><a href="Foreign.Object.html">Foreign.Object</a></li><li><a href="Foreign.Object.Gen.html">Foreign.Object.Gen</a></li><li><a href="Foreign.Object.ST.html">Foreign.Object.ST</a></li><li><a href="Foreign.Object.ST.Unsafe.html">Foreign.Object.ST.Unsafe</a></li><li><a href="Foreign.Object.Unsafe.html">Foreign.Object.Unsafe</a></li><li><a href="Heterogeneous.Folding.html">Heterogeneous.Folding</a></li><li><a href="Heterogeneous.Mapping.html">Heterogeneous.Mapping</a></li><li><a href="Node.Buffer.html">Node.Buffer</a></li><li><a href="Node.Buffer.Class.html">Node.Buffer.Class</a></li><li><a href="Node.Buffer.Constants.html">Node.Buffer.Constants</a></li><li><a href="Node.Buffer.Immutable.html">Node.Buffer.Immutable</a></li><li><a href="Node.Buffer.ST.html">Node.Buffer.ST</a></li><li><a href="Node.Buffer.Types.html">Node.Buffer.Types</a></li><li><a href="Node.Encoding.html">Node.Encoding</a></li><li><a href="Node.EventEmitter.html">Node.EventEmitter</a></li><li><a href="Node.EventEmitter.UtilTypes.html">Node.EventEmitter.UtilTypes</a></li><li><a href="Node.FS.html">Node.FS</a></li><li><a href="Node.FS.Aff.html">Node.FS.Aff</a></li><li><a href="Node.FS.Async.html">Node.FS.Async</a></li><li><a href="Node.FS.Constants.html">Node.FS.Constants</a></li><li><a href="Node.FS.Perms.html">Node.FS.Perms</a></li><li><a href="Node.FS.Stats.html">Node.FS.Stats</a></li><li><a href="Node.FS.Stream.html">Node.FS.Stream</a></li><li><a href="Node.FS.Sync.html">Node.FS.Sync</a></li><li><a href="Node.Path.html">Node.Path</a></li><li><a href="Node.Platform.html">Node.Platform</a></li><li><a href="Node.Process.html">Node.Process</a></li><li><a href="Node.Stream.html">Node.Stream</a></li><li><a href="Node.Stream.Aff.html">Node.Stream.Aff</a></li><li><a href="Node.Symbol.html">Node.Symbol</a></li><li><a href="Partial.html">Partial</a></li><li><a href="Partial.Unsafe.html">Partial.Unsafe</a></li><li><a href="Performance.Minibench.html">Performance.Minibench</a></li><li><a href="Pipes.html">Pipes</a></li><li><a href="Pipes.Core.html">Pipes.Core</a></li><li><a href="Pipes.Internal.html">Pipes.Internal</a></li><li><a href="Pipes.ListT.html">Pipes.ListT</a></li><li><a href="Pipes.Prelude.html">Pipes.Prelude</a></li><li><a href="Prelude.html">Prelude</a></li><li><a href="Prim.html">Prim</a></li><li><a href="Prim.Boolean.html">Prim.Boolean</a></li><li><a href="Prim.Coerce.html">Prim.Coerce</a></li><li><a href="Prim.Int.html">Prim.Int</a></li><li><a href="Prim.Ordering.html">Prim.Ordering</a></li><li><a href="Prim.Row.html">Prim.Row</a></li><li><a href="Prim.RowList.html">Prim.RowList</a></li><li><a href="Prim.Symbol.html">Prim.Symbol</a></li><li><a href="Prim.TypeError.html">Prim.TypeError</a></li><li><a href="Record.html">Record</a></li><li><a href="Record.Builder.html">Record.Builder</a></li><li><a href="Record.Studio.html">Record.Studio</a></li><li><a href="Record.Studio.Keys.html">Record.Studio.Keys</a></li><li><a href="Record.Studio.Map.html">Record.Studio.Map</a></li><li><a href="Record.Studio.MapKind.html">Record.Studio.MapKind</a></li><li><a href="Record.Studio.MapUniform.html">Record.Studio.MapUniform</a></li><li><a href="Record.Studio.Merge.html">Record.Studio.Merge</a></li><li><a href="Record.Studio.SameKeys.html">Record.Studio.SameKeys</a></li><li><a href="Record.Studio.Sequence.html">Record.Studio.Sequence</a></li><li><a href="Record.Studio.Shrink.html">Record.Studio.Shrink</a></li><li><a href="Record.Studio.SingletonRecord.html">Record.Studio.SingletonRecord</a></li><li><a href="Record.Unsafe.html">Record.Unsafe</a></li><li><a href="Record.Unsafe.Union.html">Record.Unsafe.Union</a></li><li><a href="Safe.Coerce.html">Safe.Coerce</a></li><li><a href="Spago.Generated.BuildInfo.html">Spago.Generated.BuildInfo</a></li><li><a href="Test.Spec.html">Test.Spec</a></li><li><a href="Test.Spec.Assertions.html">Test.Spec.Assertions</a></li><li><a href="Test.Spec.Assertions.String.html">Test.Spec.Assertions.String</a></li><li><a href="Test.Spec.Config.html">Test.Spec.Config</a></li><li><a href="Test.Spec.Console.html">Test.Spec.Console</a></li><li><a href="Test.Spec.Reporter.html">Test.Spec.Reporter</a></li><li><a href="Test.Spec.Reporter.Base.html">Test.Spec.Reporter.Base</a></li><li><a href="Test.Spec.Reporter.Console.html">Test.Spec.Reporter.Console</a></li><li><a href="Test.Spec.Reporter.Dot.html">Test.Spec.Reporter.Dot</a></li><li><a href="Test.Spec.Reporter.Spec.html">Test.Spec.Reporter.Spec</a></li><li><a href="Test.Spec.Reporter.Tap.html">Test.Spec.Reporter.Tap</a></li><li><a href="Test.Spec.Reporter.TeamCity.html">Test.Spec.Reporter.TeamCity</a></li><li><a href="Test.Spec.Result.html">Test.Spec.Result</a></li><li><a href="Test.Spec.Runner.html">Test.Spec.Runner</a></li><li><a href="Test.Spec.Runner.Event.html">Test.Spec.Runner.Event</a></li><li><a href="Test.Spec.Speed.html">Test.Spec.Speed</a></li><li><a href="Test.Spec.Style.html">Test.Spec.Style</a></li><li><a href="Test.Spec.Summary.html">Test.Spec.Summary</a></li><li><a href="Test.Spec.Tree.html">Test.Spec.Tree</a></li><li><a href="Type.Data.Boolean.html">Type.Data.Boolean</a></li><li><a href="Type.Data.Ordering.html">Type.Data.Ordering</a></li><li><a href="Type.Data.Symbol.html">Type.Data.Symbol</a></li><li><a href="Type.Equality.html">Type.Equality</a></li><li><a href="Type.Function.html">Type.Function</a></li><li><a href="Type.Prelude.html">Type.Prelude</a></li><li><a href="Type.Proxy.html">Type.Proxy</a></li><li><a href="Type.Row.html">Type.Row</a></li><li><a href="Type.Row.Homogeneous.html">Type.Row.Homogeneous</a></li><li><a href="Type.RowList.html">Type.RowList</a></li><li><a href="Uncurried.RWSE.html">Uncurried.RWSE</a></li><li><a href="Uncurried.RWSET.html">Uncurried.RWSET</a></li><li><a href="Uncurried.Reader.html">Uncurried.Reader</a></li><li><a href="Uncurried.ReaderT.html">Uncurried.ReaderT</a></li><li><a href="Uncurried.State.html">Uncurried.State</a></li><li><a href="Uncurried.StateT.html">Uncurried.StateT</a></li><li><a href="Uncurried.Writer.html">Uncurried.Writer</a></li><li><a href="Uncurried.WriterT.html">Uncurried.WriterT</a></li><li><a href="Unsafe.Coerce.html">Unsafe.Coerce</a></li><li><a href="Unsafe.Reference.html">Unsafe.Reference</a></li><li><a href="Web.DOM.html">Web.DOM</a></li><li><a href="Web.DOM.CharacterData.html">Web.DOM.CharacterData</a></li><li><a href="Web.DOM.ChildNode.html">Web.DOM.ChildNode</a></li><li><a href="Web.DOM.Comment.html">Web.DOM.Comment</a></li><li><a href="Web.DOM.DOMTokenList.html">Web.DOM.DOMTokenList</a></li><li><a href="Web.DOM.Document.html">Web.DOM.Document</a></li><li><a href="Web.DOM.DocumentFragment.html">Web.DOM.DocumentFragment</a></li><li><a href="Web.DOM.DocumentType.html">Web.DOM.DocumentType</a></li><li><a href="Web.DOM.Element.html">Web.DOM.Element</a></li><li><a href="Web.DOM.HTMLCollection.html">Web.DOM.HTMLCollection</a></li><li><a href="Web.DOM.Internal.Types.html">Web.DOM.Internal.Types</a></li><li><a href="Web.DOM.MutationObserver.html">Web.DOM.MutationObserver</a></li><li><a href="Web.DOM.MutationRecord.html">Web.DOM.MutationRecord</a></li><li><a href="Web.DOM.Node.html">Web.DOM.Node</a></li><li><a href="Web.DOM.NodeList.html">Web.DOM.NodeList</a></li><li><a href="Web.DOM.NodeType.html">Web.DOM.NodeType</a></li><li><a href="Web.DOM.NonDocumentTypeChildNode.html">Web.DOM.NonDocumentTypeChildNode</a></li><li><a href="Web.DOM.NonElementParentNode.html">Web.DOM.NonElementParentNode</a></li><li><a href="Web.DOM.ParentNode.html">Web.DOM.ParentNode</a></li><li><a href="Web.DOM.ProcessingInstruction.html">Web.DOM.ProcessingInstruction</a></li><li><a href="Web.DOM.ShadowRoot.html">Web.DOM.ShadowRoot</a></li><li><a href="Web.DOM.Text.html">Web.DOM.Text</a></li><li><a href="Web.Event.CustomEvent.html">Web.Event.CustomEvent</a></li><li><a href="Web.Event.Event.html">Web.Event.Event</a></li><li><a href="Web.Event.EventPhase.html">Web.Event.EventPhase</a></li><li><a href="Web.Event.EventTarget.html">Web.Event.EventTarget</a></li><li><a href="Web.Event.Internal.Types.html">Web.Event.Internal.Types</a></li><li><a href="Web.File.Blob.html">Web.File.Blob</a></li><li><a href="Web.File.File.html">Web.File.File</a></li><li><a href="Web.File.FileList.html">Web.File.FileList</a></li><li><a href="Web.File.FileReader.html">Web.File.FileReader</a></li><li><a href="Web.File.FileReader.ReadyState.html">Web.File.FileReader.ReadyState</a></li><li><a href="Web.File.Url.html">Web.File.Url</a></li><li><a href="Web.HTML.html">Web.HTML</a></li><li><a href="Web.HTML.Common.html">Web.HTML.Common</a></li><li><a href="Web.HTML.Event.BeforeUnloadEvent.html">Web.HTML.Event.BeforeUnloadEvent</a></li><li><a href="Web.HTML.Event.BeforeUnloadEvent.EventTypes.html">Web.HTML.Event.BeforeUnloadEvent.EventTypes</a></li><li><a href="Web.HTML.Event.DataTransfer.html">Web.HTML.Event.DataTransfer</a></li><li><a href="Web.HTML.Event.DataTransfer.DataTransferItem.html">Web.HTML.Event.DataTransfer.DataTransferItem</a></li><li><a href="Web.HTML.Event.DragEvent.html">Web.HTML.Event.DragEvent</a></li><li><a href="Web.HTML.Event.DragEvent.EventTypes.html">Web.HTML.Event.DragEvent.EventTypes</a></li><li><a href="Web.HTML.Event.ErrorEvent.html">Web.HTML.Event.ErrorEvent</a></li><li><a href="Web.HTML.Event.EventTypes.html">Web.HTML.Event.EventTypes</a></li><li><a href="Web.HTML.Event.HashChangeEvent.html">Web.HTML.Event.HashChangeEvent</a></li><li><a href="Web.HTML.Event.HashChangeEvent.EventTypes.html">Web.HTML.Event.HashChangeEvent.EventTypes</a></li><li><a href="Web.HTML.Event.PageTransitionEvent.html">Web.HTML.Event.PageTransitionEvent</a></li><li><a href="Web.HTML.Event.PageTransitionEvent.EventTypes.html">Web.HTML.Event.PageTransitionEvent.EventTypes</a></li><li><a href="Web.HTML.Event.PopStateEvent.html">Web.HTML.Event.PopStateEvent</a></li><li><a href="Web.HTML.Event.PopStateEvent.EventTypes.html">Web.HTML.Event.PopStateEvent.EventTypes</a></li><li><a href="Web.HTML.Event.TrackEvent.html">Web.HTML.Event.TrackEvent</a></li><li><a href="Web.HTML.Event.TrackEvent.EventTypes.html">Web.HTML.Event.TrackEvent.EventTypes</a></li><li><a href="Web.HTML.HTMLAnchorElement.html">Web.HTML.HTMLAnchorElement</a></li><li><a href="Web.HTML.HTMLAreaElement.html">Web.HTML.HTMLAreaElement</a></li><li><a href="Web.HTML.HTMLAudioElement.html">Web.HTML.HTMLAudioElement</a></li><li><a href="Web.HTML.HTMLBRElement.html">Web.HTML.HTMLBRElement</a></li><li><a href="Web.HTML.HTMLBaseElement.html">Web.HTML.HTMLBaseElement</a></li><li><a href="Web.HTML.HTMLBodyElement.html">Web.HTML.HTMLBodyElement</a></li><li><a href="Web.HTML.HTMLButtonElement.html">Web.HTML.HTMLButtonElement</a></li><li><a href="Web.HTML.HTMLCanvasElement.html">Web.HTML.HTMLCanvasElement</a></li><li><a href="Web.HTML.HTMLDListElement.html">Web.HTML.HTMLDListElement</a></li><li><a href="Web.HTML.HTMLDataElement.html">Web.HTML.HTMLDataElement</a></li><li><a href="Web.HTML.HTMLDataListElement.html">Web.HTML.HTMLDataListElement</a></li><li><a href="Web.HTML.HTMLDivElement.html">Web.HTML.HTMLDivElement</a></li><li><a href="Web.HTML.HTMLDocument.html">Web.HTML.HTMLDocument</a></li><li><a href="Web.HTML.HTMLDocument.ReadyState.html">Web.HTML.HTMLDocument.ReadyState</a></li><li><a href="Web.HTML.HTMLDocument.VisibilityState.html">Web.HTML.HTMLDocument.VisibilityState</a></li><li><a href="Web.HTML.HTMLElement.html">Web.HTML.HTMLElement</a></li><li><a href="Web.HTML.HTMLEmbedElement.html">Web.HTML.HTMLEmbedElement</a></li><li><a href="Web.HTML.HTMLFieldSetElement.html">Web.HTML.HTMLFieldSetElement</a></li><li><a href="Web.HTML.HTMLFormElement.html">Web.HTML.HTMLFormElement</a></li><li><a href="Web.HTML.HTMLHRElement.html">Web.HTML.HTMLHRElement</a></li><li><a href="Web.HTML.HTMLHeadElement.html">Web.HTML.HTMLHeadElement</a></li><li><a href="Web.HTML.HTMLHeadingElement.html">Web.HTML.HTMLHeadingElement</a></li><li><a href="Web.HTML.HTMLHtmlElement.html">Web.HTML.HTMLHtmlElement</a></li><li><a href="Web.HTML.HTMLHyperlinkElementUtils.html">Web.HTML.HTMLHyperlinkElementUtils</a></li><li><a href="Web.HTML.HTMLIFrameElement.html">Web.HTML.HTMLIFrameElement</a></li><li><a href="Web.HTML.HTMLImageElement.html">Web.HTML.HTMLImageElement</a></li><li><a href="Web.HTML.HTMLImageElement.CORSMode.html">Web.HTML.HTMLImageElement.CORSMode</a></li><li><a href="Web.HTML.HTMLImageElement.DecodingHint.html">Web.HTML.HTMLImageElement.DecodingHint</a></li><li><a href="Web.HTML.HTMLImageElement.Laziness.html">Web.HTML.HTMLImageElement.Laziness</a></li><li><a href="Web.HTML.HTMLInputElement.html">Web.HTML.HTMLInputElement</a></li><li><a href="Web.HTML.HTMLKeygenElement.html">Web.HTML.HTMLKeygenElement</a></li><li><a href="Web.HTML.HTMLLIElement.html">Web.HTML.HTMLLIElement</a></li><li><a href="Web.HTML.HTMLLabelElement.html">Web.HTML.HTMLLabelElement</a></li><li><a href="Web.HTML.HTMLLegendElement.html">Web.HTML.HTMLLegendElement</a></li><li><a href="Web.HTML.HTMLLinkElement.html">Web.HTML.HTMLLinkElement</a></li><li><a href="Web.HTML.HTMLMapElement.html">Web.HTML.HTMLMapElement</a></li><li><a href="Web.HTML.HTMLMediaElement.html">Web.HTML.HTMLMediaElement</a></li><li><a href="Web.HTML.HTMLMediaElement.CanPlayType.html">Web.HTML.HTMLMediaElement.CanPlayType</a></li><li><a href="Web.HTML.HTMLMediaElement.NetworkState.html">Web.HTML.HTMLMediaElement.NetworkState</a></li><li><a href="Web.HTML.HTMLMediaElement.ReadyState.html">Web.HTML.HTMLMediaElement.ReadyState</a></li><li><a href="Web.HTML.HTMLMetaElement.html">Web.HTML.HTMLMetaElement</a></li><li><a href="Web.HTML.HTMLMeterElement.html">Web.HTML.HTMLMeterElement</a></li><li><a href="Web.HTML.HTMLModElement.html">Web.HTML.HTMLModElement</a></li><li><a href="Web.HTML.HTMLOListElement.html">Web.HTML.HTMLOListElement</a></li><li><a href="Web.HTML.HTMLObjectElement.html">Web.HTML.HTMLObjectElement</a></li><li><a href="Web.HTML.HTMLOptGroupElement.html">Web.HTML.HTMLOptGroupElement</a></li><li><a href="Web.HTML.HTMLOptionElement.html">Web.HTML.HTMLOptionElement</a></li><li><a href="Web.HTML.HTMLOutputElement.html">Web.HTML.HTMLOutputElement</a></li><li><a href="Web.HTML.HTMLParagraphElement.html">Web.HTML.HTMLParagraphElement</a></li><li><a href="Web.HTML.HTMLParamElement.html">Web.HTML.HTMLParamElement</a></li><li><a href="Web.HTML.HTMLPreElement.html">Web.HTML.HTMLPreElement</a></li><li><a href="Web.HTML.HTMLProgressElement.html">Web.HTML.HTMLProgressElement</a></li><li><a href="Web.HTML.HTMLQuoteElement.html">Web.HTML.HTMLQuoteElement</a></li><li><a href="Web.HTML.HTMLScriptElement.html">Web.HTML.HTMLScriptElement</a></li><li><a href="Web.HTML.HTMLSelectElement.html">Web.HTML.HTMLSelectElement</a></li><li><a href="Web.HTML.HTMLSourceElement.html">Web.HTML.HTMLSourceElement</a></li><li><a href="Web.HTML.HTMLSpanElement.html">Web.HTML.HTMLSpanElement</a></li><li><a href="Web.HTML.HTMLStyleElement.html">Web.HTML.HTMLStyleElement</a></li><li><a href="Web.HTML.HTMLTableCaptionElement.html">Web.HTML.HTMLTableCaptionElement</a></li><li><a href="Web.HTML.HTMLTableCellElement.html">Web.HTML.HTMLTableCellElement</a></li><li><a href="Web.HTML.HTMLTableColElement.html">Web.HTML.HTMLTableColElement</a></li><li><a href="Web.HTML.HTMLTableDataCellElement.html">Web.HTML.HTMLTableDataCellElement</a></li><li><a href="Web.HTML.HTMLTableElement.html">Web.HTML.HTMLTableElement</a></li><li><a href="Web.HTML.HTMLTableHeaderCellElement.html">Web.HTML.HTMLTableHeaderCellElement</a></li><li><a href="Web.HTML.HTMLTableRowElement.html">Web.HTML.HTMLTableRowElement</a></li><li><a href="Web.HTML.HTMLTableSectionElement.html">Web.HTML.HTMLTableSectionElement</a></li><li><a href="Web.HTML.HTMLTemplateElement.html">Web.HTML.HTMLTemplateElement</a></li><li><a href="Web.HTML.HTMLTextAreaElement.html">Web.HTML.HTMLTextAreaElement</a></li><li><a href="Web.HTML.HTMLTimeElement.html">Web.HTML.HTMLTimeElement</a></li><li><a href="Web.HTML.HTMLTitleElement.html">Web.HTML.HTMLTitleElement</a></li><li><a href="Web.HTML.HTMLTrackElement.html">Web.HTML.HTMLTrackElement</a></li><li><a href="Web.HTML.HTMLTrackElement.ReadyState.html">Web.HTML.HTMLTrackElement.ReadyState</a></li><li><a href="Web.HTML.HTMLUListElement.html">Web.HTML.HTMLUListElement</a></li><li><a href="Web.HTML.HTMLVideoElement.html">Web.HTML.HTMLVideoElement</a></li><li><a href="Web.HTML.History.html">Web.HTML.History</a></li><li><a href="Web.HTML.Location.html">Web.HTML.Location</a></li><li><a href="Web.HTML.Navigator.html">Web.HTML.Navigator</a></li><li><a href="Web.HTML.SelectionMode.html">Web.HTML.SelectionMode</a></li><li><a href="Web.HTML.ValidityState.html">Web.HTML.ValidityState</a></li><li><a href="Web.HTML.Window.html">Web.HTML.Window</a></li><li><a href="Web.Internal.FFI.html">Web.Internal.FFI</a></li><li><a href="Web.Storage.Event.StorageEvent.html">Web.Storage.Event.StorageEvent</a></li><li><a href="Web.Storage.Storage.html">Web.Storage.Storage</a></li><li><a href="Web.UIEvent.CompositionEvent.html">Web.UIEvent.CompositionEvent</a></li><li><a href="Web.UIEvent.CompositionEvent.EventTypes.html">Web.UIEvent.CompositionEvent.EventTypes</a></li><li><a href="Web.UIEvent.EventTypes.html">Web.UIEvent.EventTypes</a></li><li><a href="Web.UIEvent.FocusEvent.html">Web.UIEvent.FocusEvent</a></li><li><a href="Web.UIEvent.FocusEvent.EventTypes.html">Web.UIEvent.FocusEvent.EventTypes</a></li><li><a href="Web.UIEvent.InputEvent.html">Web.UIEvent.InputEvent</a></li><li><a href="Web.UIEvent.InputEvent.EventTypes.html">Web.UIEvent.InputEvent.EventTypes</a></li><li><a href="Web.UIEvent.InputEvent.InputType.html">Web.UIEvent.InputEvent.InputType</a></li><li><a href="Web.UIEvent.KeyboardEvent.html">Web.UIEvent.KeyboardEvent</a></li><li><a href="Web.UIEvent.KeyboardEvent.EventTypes.html">Web.UIEvent.KeyboardEvent.EventTypes</a></li><li><a href="Web.UIEvent.MouseEvent.html">Web.UIEvent.MouseEvent</a></li><li><a href="Web.UIEvent.MouseEvent.EventTypes.html">Web.UIEvent.MouseEvent.EventTypes</a></li><li><a href="Web.UIEvent.UIEvent.html">Web.UIEvent.UIEvent</a></li><li><a href="Web.UIEvent.WheelEvent.html">Web.UIEvent.WheelEvent</a></li><li><a href="Web.UIEvent.WheelEvent.EventTypes.html">Web.UIEvent.WheelEvent.EventTypes</a></li></ul></div></main></div><div class="footer clearfix"><p>Generated by purs 0.15.15 [development build; commit: UNKNOWN]</p></div><!-- Docs search index. --><script type="text/javascript" src="./docs-search-app.js"></script><script type="text/javascript">window.DocsSearchTypeIndex = {};window.DocsSearchIndex = {};</script></body></html>
generated-docs/html/Control.Apply.htmldeletedโ1412
@@ -1,1412 +0,0 @@
1โ<!DOCTYPE HTML>
2โ<html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1"><title>PureScript: Control.Apply</title><link href="https://fonts.googleapis.com/css?family=Roboto+Mono|Roboto:300,400,400i,700,700i" type="text/css" rel="stylesheet"><style type="text/css">/*! normalize.css v3.0.2 | MIT License | git.io/normalize */
3โ
4โ/**
5โ * 1. Set default font family to sans-serif.
6โ * 2. Prevent iOS text size adjust after orientation change, without disabling
7โ * user zoom.
8โ */
9โ
10โhtml {
11โ font-family: sans-serif; /* 1 */
12โ -ms-text-size-adjust: 100%; /* 2 */
13โ -webkit-text-size-adjust: 100%; /* 2 */
14โ}
15โ
16โ/**
17โ * Remove default margin.
18โ */
19โ
20โbody {
21โ margin: 0;
22โ}
23โ
24โ/* HTML5 display definitions
25โ ========================================================================== */
26โ
27โ/**
28โ * Correct `block` display not defined for any HTML5 element in IE 8/9.
29โ * Correct `block` display not defined for `details` or `summary` in IE 10/11
30โ * and Firefox.
31โ * Correct `block` display not defined for `main` in IE 11.
32โ */
33โ
34โarticle,
35โaside,
36โdetails,
37โfigcaption,
38โfigure,
39โfooter,
40โheader,
41โhgroup,
42โmain,
43โmenu,
44โnav,
45โsection,
46โsummary {
47โ display: block;
48โ}
49โ
50โ/**
51โ * 1. Correct `inline-block` display not defined in IE 8/9.
52โ * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
53โ */
54โ
55โaudio,
56โcanvas,
57โprogress,
58โvideo {
59โ display: inline-block; /* 1 */
60โ vertical-align: baseline; /* 2 */
61โ}
62โ
63โ/**
64โ * Prevent modern browsers from displaying `audio` without controls.
65โ * Remove excess height in iOS 5 devices.
66โ */
67โ
68โaudio:not([controls]) {
69โ display: none;
70โ height: 0;
71โ}
72โ
73โ/**
74โ * Address `[hidden]` styling not present in IE 8/9/10.
75โ * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22.
76โ */
77โ
78โ[hidden],
79โtemplate {
80โ display: none;
81โ}
82โ
83โ/* Links
84โ ========================================================================== */
85โ
86โ/**
87โ * Remove the gray background color from active links in IE 10.
88โ */
89โ
90โa {
91โ background-color: transparent;
92โ}
93โ
94โ/**
95โ * Improve readability when focused and also mouse hovered in all browsers.
96โ */
97โ
98โa:active,
99โa:hover {
100โ outline: 0;
101โ}
102โ
103โ/* Text-level semantics
104โ ========================================================================== */
105โ
106โ/**
107โ * Address styling not present in IE 8/9/10/11, Safari, and Chrome.
108โ */
109โ
110โabbr[title] {
111โ border-bottom: 1px dotted;
112โ}
113โ
114โ/**
115โ * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
116โ */
117โ
118โb,
119โstrong {
120โ font-weight: bold;
121โ}
122โ
123โ/**
124โ * Address styling not present in Safari and Chrome.
125โ */
126โ
127โdfn {
128โ font-style: italic;
129โ}
130โ
131โ/**
132โ * Address variable `h1` font-size and margin within `section` and `article`
133โ * contexts in Firefox 4+, Safari, and Chrome.
134โ */
135โ
136โh1 {
137โ font-size: 2em;
138โ margin: 0.67em 0;
139โ}
140โ
141โ/**
142โ * Address styling not present in IE 8/9.
143โ */
144โ
145โmark {
146โ background: #ff0;
147โ color: #000;
148โ}
149โ
150โ/**
151โ * Address inconsistent and variable font size in all browsers.
152โ */
153โ
154โsmall {
155โ font-size: 80%;
156โ}
157โ
158โ/**
159โ * Prevent `sub` and `sup` affecting `line-height` in all browsers.
160โ */
161โ
162โsub,
163โsup {
164โ font-size: 75%;
165โ line-height: 0;
166โ position: relative;
167โ vertical-align: baseline;
168โ}
169โ
170โsup {
171โ top: -0.5em;
172โ}
173โ
174โsub {
175โ bottom: -0.25em;
176โ}
177โ
178โ/* Embedded content
179โ ========================================================================== */
180โ
181โ/**
182โ * Remove border when inside `a` element in IE 8/9/10.
183โ */
184โ
185โimg {
186โ border: 0;
187โ}
188โ
189โ/**
190โ * Correct overflow not hidden in IE 9/10/11.
191โ */
192โ
193โsvg:not(:root) {
194โ overflow: hidden;
195โ}
196โ
197โ/* Grouping content
198โ ========================================================================== */
199โ
200โ/**
201โ * Address margin not present in IE 8/9 and Safari.
202โ */
203โ
204โfigure {
205โ margin: 1em 40px;
206โ}
207โ
208โ/**
209โ * Address differences between Firefox and other browsers.
210โ */
211โ
212โhr {
213โ -moz-box-sizing: content-box;
214โ box-sizing: content-box;
215โ height: 0;
216โ}
217โ
218โ/**
219โ * Contain overflow in all browsers.
220โ */
221โ
222โpre {
223โ overflow: auto;
224โ}
225โ
226โ/**
227โ * Address odd `em`-unit font size rendering in all browsers.
228โ */
229โ
230โcode,
231โkbd,
232โpre,
233โsamp {
234โ font-family: monospace, monospace;
235โ font-size: 1em;
236โ}
237โ
238โ/* Forms
239โ ========================================================================== */
240โ
241โ/**
242โ * Known limitation: by default, Chrome and Safari on OS X allow very limited
243โ * styling of `select`, unless a `border` property is set.
244โ */
245โ
246โ/**
247โ * 1. Correct color not being inherited.
248โ * Known issue: affects color of disabled elements.
249โ * 2. Correct font properties not being inherited.
250โ * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
251โ */
252โ
253โbutton,
254โinput,
255โoptgroup,
256โselect,
257โtextarea {
258โ color: inherit; /* 1 */
259โ font: inherit; /* 2 */
260โ margin: 0; /* 3 */
261โ}
262โ
263โ/**
264โ * Address `overflow` set to `hidden` in IE 8/9/10/11.
265โ */
266โ
267โbutton {
268โ overflow: visible;
269โ}
270โ
271โ/**
272โ * Address inconsistent `text-transform` inheritance for `button` and `select`.
273โ * All other form control elements do not inherit `text-transform` values.
274โ * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
275โ * Correct `select` style inheritance in Firefox.
276โ */
277โ
278โbutton,
279โselect {
280โ text-transform: none;
281โ}
282โ
283โ/**
284โ * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
285โ * and `video` controls.
286โ * 2. Correct inability to style clickable `input` types in iOS.
287โ * 3. Improve usability and consistency of cursor style between image-type
288โ * `input` and others.
289โ */
290โ
291โbutton,
292โhtml input[type="button"], /* 1 */
293โinput[type="reset"],
294โinput[type="submit"] {
295โ -webkit-appearance: button; /* 2 */
296โ cursor: pointer; /* 3 */
297โ}
298โ
299โ/**
300โ * Re-set default cursor for disabled elements.
301โ */
302โ
303โbutton[disabled],
304โhtml input[disabled] {
305โ cursor: default;
306โ}
307โ
308โ/**
309โ * Remove inner padding and border in Firefox 4+.
310โ */
311โ
312โbutton::-moz-focus-inner,
313โinput::-moz-focus-inner {
314โ border: 0;
315โ padding: 0;
316โ}
317โ
318โ/**
319โ * Address Firefox 4+ setting `line-height` on `input` using `!important` in
320โ * the UA stylesheet.
321โ */
322โ
323โinput {
324โ line-height: normal;
325โ}
326โ
327โ/**
328โ * It's recommended that you don't attempt to style these elements.
329โ * Firefox's implementation doesn't respect box-sizing, padding, or width.
330โ *
331โ * 1. Address box sizing set to `content-box` in IE 8/9/10.
332โ * 2. Remove excess padding in IE 8/9/10.
333โ */
334โ
335โinput[type="checkbox"],
336โinput[type="radio"] {
337โ box-sizing: border-box; /* 1 */
338โ padding: 0; /* 2 */
339โ}
340โ
341โ/**
342โ * Fix the cursor style for Chrome's increment/decrement buttons. For certain
343โ * `font-size` values of the `input`, it causes the cursor style of the
344โ * decrement button to change from `default` to `text`.
345โ */
346โ
347โinput[type="number"]::-webkit-inner-spin-button,
348โinput[type="number"]::-webkit-outer-spin-button {
349โ height: auto;
350โ}
351โ
352โ/**
353โ * 1. Address `appearance` set to `searchfield` in Safari and Chrome.
354โ * 2. Address `box-sizing` set to `border-box` in Safari and Chrome
355โ * (include `-moz` to future-proof).
356โ */
357โ
358โinput[type="search"] {
359โ -webkit-appearance: textfield; /* 1 */
360โ -moz-box-sizing: content-box;
361โ -webkit-box-sizing: content-box; /* 2 */
362โ box-sizing: content-box;
363โ}
364โ
365โ/**
366โ * Remove inner padding and search cancel button in Safari and Chrome on OS X.
367โ * Safari (but not Chrome) clips the cancel button when the search input has
368โ * padding (and `textfield` appearance).
369โ */
370โ
371โinput[type="search"]::-webkit-search-cancel-button,
372โinput[type="search"]::-webkit-search-decoration {
373โ -webkit-appearance: none;
374โ}
375โ
376โ/**
377โ * Define consistent border, margin, and padding.
378โ */
379โ
380โfieldset {
381โ border: 1px solid #c0c0c0;
382โ margin: 0 2px;
383โ padding: 0.35em 0.625em 0.75em;
384โ}
385โ
386โ/**
387โ * 1. Correct `color` not being inherited in IE 8/9/10/11.
388โ * 2. Remove padding so people aren't caught out if they zero out fieldsets.
389โ */
390โ
391โlegend {
392โ border: 0; /* 1 */
393โ padding: 0; /* 2 */
394โ}
395โ
396โ/**
397โ * Remove default vertical scrollbar in IE 8/9/10/11.
398โ */
399โ
400โtextarea {
401โ overflow: auto;
402โ}
403โ
404โ/**
405โ * Don't inherit the `font-weight` (applied by a rule above).
406โ * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
407โ */
408โ
409โoptgroup {
410โ font-weight: bold;
411โ}
412โ
413โ/* Tables
414โ ========================================================================== */
415โ
416โ/**
417โ * Remove most spacing between table cells.
418โ */
419โ
420โtable {
421โ border-collapse: collapse;
422โ border-spacing: 0;
423โ}
424โ
425โtd,
426โth {
427โ padding: 0;
428โ}
429โ</style><style type="text/css">/** ************************************************************************* *
430โ ** CSS for HTML docs (e.g. Pursuit)
431โ **
432โ ** STRUCTURE
433โ **
434โ ** This CSS file is structured into several sections, from general to
435โ ** specific, and (mostly) alphabetically within the sections.
436โ **
437โ ** Several global element styles are used. This is not encouraged and should
438โ ** be kept to a minimum. If you want to add new styles you'll most likely
439โ ** want to add a new CSS component. See the Components section for examples.
440โ **
441โ ** CSS components use three simple naming ideas from the BEM system:
442โ ** - Block: `.my-component`
443โ ** - Element: `.my-component__item`
444โ ** - Modifier: `.my-component.my-component--highlighted`
445โ **
446โ ** Example:
447โ ** <div .my-component>
448โ ** <div .my-component__item>
449โ ** <div .my-component__item>
450โ ** ...
451โ ** <div .my-component.my-component--highlighted>
452โ ** <div .my-component__item>
453โ ** <div .my-component__item>
454โ **
455โ ** Components can be nested.
456โ **
457โ **
458โ ** TYPOGRAPHY
459โ **
460โ ** Typographic choices for sizes, line-heights and margins are based on a
461โ ** musical major third scale (4:5). This gives us a way to find numbers
462โ ** and relationships between them that are perceived as harmonic.
463โ **
464โ ** To make use of this modular scale, use a ratio of the form
465โ ** (5/4)^n
466โ ** where n โ โค, -6 โค n โค 8.
467โ **
468โ ** LESS
469โ **
470โ ** This CSS is generated by less. To compile it:
471โ **
472โ ** npm install [-g] less
473โ ** lessc app/static/pursuit.less > app/static/pursuit.css
474โ **
475โ ** ************************************************************************* */
476โ/* Section: Variables
477โ * ========================================================================== */
478โ/* Section: Document Styles
479โ * ========================================================================== */
480โ:root {
481โ color-scheme: light dark;
482โ}
483โhtml {
484โ box-sizing: border-box;
485โ /* This overflow rule prevents everything from shifting slightly to the side
486โ when moving from a page which isn't large enough to generate a scrollbar
487โ to one that is. */
488โ overflow-y: scroll;
489โ}
490โ*,
491โ*::before,
492โ*::after {
493โ box-sizing: inherit;
494โ}
495โbody {
496โ background-color: #ffffff;
497โ color: #000000;
498โ font-family: "Roboto", sans-serif;
499โ font-size: 87.5%;
500โ line-height: 1.563;
501โ}
502โ@media (prefers-color-scheme: dark) {
503โ body {
504โ background-color: #141417;
505โ color: #dedede;
506โ }
507โ}
508โ@media (min-width: 38em) {
509โ body {
510โ font-size: 100%;
511โ }
512โ}
513โ/* Section: Utility Classes
514โ * ========================================================================== */
515โ.clear-floats {
516โ clear: both;
517โ}
518โ.clearfix::before,
519โ.clearfix::after {
520โ content: " ";
521โ display: table;
522โ}
523โ.clearfix::after {
524โ clear: both;
525โ}
526โ/* Content hidden like this will still be read by a screen reader */
527โ.hide-visually {
528โ position: absolute;
529โ left: -10000px;
530โ top: auto;
531โ width: 1px;
532โ height: 1px;
533โ overflow: hidden;
534โ}
535โ/* Section: Layout
536โ * ========================================================================== */
537โ.container {
538โ display: block;
539โ max-width: 66em;
540โ margin-left: auto;
541โ margin-right: auto;
542โ padding-left: 20px;
543โ padding-right: 20px;
544โ}
545โ.col {
546โ display: block;
547โ position: relative;
548โ width: 100%;
549โ}
550โ.col.col--main {
551โ margin-bottom: 3.08em;
552โ}
553โ.col.col--aside {
554โ margin-bottom: 2.44em;
555โ}
556โ@media (min-width: 52em) {
557โ .container {
558โ padding-left: 30px;
559โ padding-right: 30px;
560โ }
561โ .col.col--main {
562โ float: left;
563โ width: 63.655%;
564โ /* 66.6โฆ% - 30px */
565โ }
566โ .col.col--aside {
567โ float: right;
568โ font-size: 87.5%;
569โ width: 33.333333%;
570โ }
571โ}
572โ@media (min-width: 66em) {
573โ .col.col--aside {
574โ font-size: inherit;
575โ }
576โ}
577โ/* Footer
578โ * Based on http://www.lwis.net/journal/2008/02/08/pure-css-sticky-footer/
579โ * Except we don't support IE6
580โ * -------------------------------------------------------------------------- */
581โhtml,
582โbody {
583โ height: 100%;
584โ}
585โ.everything-except-footer {
586โ min-height: 100%;
587โ padding-bottom: 3em;
588โ}
589โ.footer {
590โ position: relative;
591โ height: 3em;
592โ margin-top: -3em;
593โ width: 100%;
594โ text-align: center;
595โ background-color: #1d222d;
596โ color: #f0f0f0;
597โ}
598โ@media (prefers-color-scheme: dark) {
599โ .footer {
600โ background-color: #1d222d;
601โ color: #f0f0f0;
602โ }
603โ}
604โ.footer * {
605โ margin-bottom: 0;
606โ}
607โ/* Section: Element Styles
608โ *
609โ * Have as few of these as possible and keep them general, because they will
610โ * influence every component hereafter.
611โ * ========================================================================== */
612โ:target {
613โ background-color: #f1f5f9;
614โ}
615โ@media (prefers-color-scheme: dark) {
616โ :target {
617โ background-color: #232327;
618โ }
619โ}
620โa,
621โa:visited {
622โ color: #c4953a;
623โ text-decoration: none;
624โ font-weight: bold;
625โ}
626โ@media (prefers-color-scheme: dark) {
627โ a,
628โ a:visited {
629โ color: #d8ac55;
630โ }
631โ}
632โa:hover {
633โ color: #7b5904;
634โ text-decoration: none;
635โ}
636โ@media (prefers-color-scheme: dark) {
637โ a:hover {
638โ color: #f0dcab;
639โ }
640โ}
641โcode,
642โpre {
643โ background-color: #f1f5f9;
644โ border-radius: 3px;
645โ color: #194a5b;
646โ font-family: "Roboto Mono", monospace;
647โ font-size: 87.5%;
648โ}
649โ@media (prefers-color-scheme: dark) {
650โ code,
651โ pre {
652โ background-color: #232327;
653โ color: #c1d3da;
654โ }
655โ}
656โ:target code,
657โ:target pre {
658โ background-color: #dfe8f1;
659โ}
660โ@media (prefers-color-scheme: dark) {
661โ :target code,
662โ :target pre {
663โ background-color: #2f2f34;
664โ }
665โ}
666โcode {
667โ padding: 0.2em 0;
668โ margin: 0;
669โ white-space: pre-wrap;
670โ word-wrap: break-word;
671โ}
672โcode::before,
673โcode::after {
674โ letter-spacing: -0.2em;
675โ content: "\00a0";
676โ}
677โa > code {
678โ font-weight: normal;
679โ}
680โa > code::before {
681โ content: "๐ก";
682โ letter-spacing: 0.33em;
683โ}
684โa:hover > code {
685โ color: #c4953a;
686โ}
687โ@media (prefers-color-scheme: dark) {
688โ a:hover > code {
689โ color: #d8ac55;
690โ }
691โ}
692โpre {
693โ margin-top: 0;
694โ margin-bottom: 0;
695โ padding: 1em 1.25rem;
696โ /* Using rem here to align with lists etc. */
697โ overflow: auto;
698โ white-space: pre;
699โ word-wrap: normal;
700โ}
701โpre code {
702โ background-color: transparent;
703โ border: 0;
704โ font-size: 100%;
705โ max-width: auto;
706โ padding: 0;
707โ margin: 0;
708โ overflow: visible;
709โ line-height: inherit;
710โ white-space: pre;
711โ word-break: normal;
712โ word-wrap: normal;
713โ}
714โpre code::before,
715โpre code::after {
716โ content: normal;
717โ}
718โh1 {
719โ font-size: 3.052em;
720โ font-weight: 300;
721โ letter-spacing: -0.5px;
722โ line-height: 1.125;
723โ margin-top: 1.563rem;
724โ margin-bottom: 1.25rem;
725โ}
726โ@media (min-width: 52em) {
727โ h1 {
728โ font-size: 3.814em;
729โ margin-top: 5.96rem;
730โ }
731โ}
732โh2 {
733โ font-size: 1.953em;
734โ font-weight: normal;
735โ line-height: 1.25;
736โ margin-top: 3.052rem;
737โ margin-bottom: 1rem;
738โ}
739โh3 {
740โ font-size: 1.563em;
741โ font-weight: normal;
742โ line-height: 1.25;
743โ margin-top: 2.441rem;
744โ margin-bottom: 1rem;
745โ}
746โh4 {
747โ font-size: 1.25em;
748โ font-weight: normal;
749โ margin-top: 2.441rem;
750โ margin-bottom: 1rem;
751โ}
752โh1 + h2,
753โh1 + h3,
754โh1 + h4,
755โh2 + h3,
756โh2 + h4,
757โh3 + h4 {
758โ margin-top: 1rem;
759โ}
760โhr {
761โ border: none;
762โ height: 1px;
763โ background-color: #cccccc;
764โ}
765โ@media (prefers-color-scheme: dark) {
766โ hr {
767โ background-color: #43434e;
768โ }
769โ}
770โimg {
771โ border-style: none;
772โ max-width: 100%;
773โ}
774โp {
775โ font-size: 1em;
776โ margin-top: 1rem;
777โ margin-bottom: 1rem;
778โ}
779โtable {
780โ border-bottom: 1px solid #cccccc;
781โ border-collapse: collapse;
782โ border-spacing: 0;
783โ margin-top: 1rem;
784โ margin-bottom: 1rem;
785โ width: 100%;
786โ}
787โ@media (prefers-color-scheme: dark) {
788โ table {
789โ border-bottom-color: #43434e;
790โ }
791โ}
792โtd,
793โth {
794โ text-align: left;
795โ padding: 0.41em 0.51em;
796โ}
797โtd {
798โ border-top: 1px solid #cccccc;
799โ}
800โ@media (prefers-color-scheme: dark) {
801โ td {
802โ border-top-color: #43434e;
803โ }
804โ}
805โtd:first-child,
806โth:first-child {
807โ padding-left: 0;
808โ}
809โtd:last-child,
810โth:last-child {
811โ padding-right: 0;
812โ}
813โul {
814โ list-style-type: none;
815โ margin-top: 1rem;
816โ margin-bottom: 1rem;
817โ padding-left: 0;
818โ}
819โul li {
820โ position: relative;
821โ padding-left: 1.25em;
822โ}
823โul li::before {
824โ position: absolute;
825โ color: #a0a0a0;
826โ content: "โ";
827โ display: inline-block;
828โ margin-left: -1.25em;
829โ width: 1.25em;
830โ}
831โ@media (prefers-color-scheme: dark) {
832โ ul li::before {
833โ color: #a0a0a0;
834โ }
835โ}
836โ/* Tying this tightly to ul at the moment because it's a slight variation thereof */
837โul.ul--search li::before {
838โ content: "โฒ";
839โ top: -0.2em;
840โ transform: rotate(-45deg);
841โ}
842โol {
843โ margin-top: 1rem;
844โ margin-bottom: 1rem;
845โ padding-left: 1.25em;
846โ}
847โol li {
848โ position: relative;
849โ padding-left: 0;
850โ}
851โ/* Section: Components
852โ * ========================================================================== */
853โ/* Component: Badge
854โ * -------------------------------------------------------------------------- */
855โ.badge {
856โ position: relative;
857โ top: -0.1em;
858โ display: inline-block;
859โ background-color: #000000;
860โ border-radius: 1.3em;
861โ color: #ffffff;
862โ font-size: 77%;
863โ font-weight: bold;
864โ line-height: 1.563;
865โ text-align: center;
866โ height: 1.5em;
867โ width: 1.5em;
868โ}
869โ@media (prefers-color-scheme: dark) {
870โ .badge {
871โ background-color: #dedede;
872โ color: #141417;
873โ }
874โ}
875โ.badge.badge--package {
876โ background-color: #c4953a;
877โ letter-spacing: -0.1em;
878โ}
879โ@media (prefers-color-scheme: dark) {
880โ .badge.badge--package {
881โ background-color: #d8ac55;
882โ }
883โ}
884โ.badge.badge--module {
885โ background-color: #75B134;
886โ}
887โ/* Component: Declarations
888โ * -------------------------------------------------------------------------- */
889โ.decl__title {
890โ position: relative;
891โ padding-bottom: 0.328em;
892โ margin-bottom: 0.262em;
893โ}
894โ.decl__source {
895โ display: block;
896โ float: right;
897โ font-size: 64%;
898โ position: relative;
899โ top: 0.57em;
900โ}
901โ.decl__anchor,
902โ.decl__anchor:visited {
903โ position: absolute;
904โ left: -0.8em;
905โ color: #bababa;
906โ}
907โ@media (prefers-color-scheme: dark) {
908โ .decl__anchor,
909โ .decl__anchor:visited {
910โ color: #878787;
911โ }
912โ}
913โ.decl__anchor:hover {
914โ color: #c4953a;
915โ}
916โ@media (prefers-color-scheme: dark) {
917โ .decl__anchor:hover {
918โ color: #d8ac55;
919โ }
920โ}
921โ.decl__signature {
922โ background-color: transparent;
923โ border-radius: 0;
924โ border-top: 1px solid #cccccc;
925โ border-bottom: 1px solid #cccccc;
926โ padding: 0;
927โ}
928โ@media (prefers-color-scheme: dark) {
929โ .decl__signature {
930โ border-top-color: #43434e;
931โ border-bottom-color: #43434e;
932โ }
933โ}
934โ.decl__signature code {
935โ display: block;
936โ padding: 0.328em 0;
937โ padding-left: 2.441em;
938โ text-indent: -2.441em;
939โ white-space: normal;
940โ}
941โ.decl__role {
942โ font-family: "Roboto", sans-serif;
943โ font-style: italic;
944โ font-weight: normal;
945โ}
946โ/* See https://stackoverflow.com/a/32162038
947โ Content licensed under CC BY-SA 3.0
948โ*/
949โ.decl__role_hover[title] {
950โ /* Remove line that appears under abbr element */
951โ border-bottom: none;
952โ text-decoration: none;
953โ /* Ensure cursor doesn't change to question mark */
954โ cursor: inherit;
955โ}
956โ.decl__role_nominal::after {
957โ content: "nominal";
958โ}
959โ.decl__role_phantom::after {
960โ content: "phantom";
961โ}
962โ.decl__kind {
963โ border-bottom: 1px solid #cccccc;
964โ}
965โ@media (prefers-color-scheme: dark) {
966โ .decl__kind {
967โ border-bottom-color: #43434e;
968โ }
969โ}
970โ:target .decl__signature,
971โ:target .decl__signature code {
972โ /* We want the background to be transparent, even when the parent is a target */
973โ background-color: transparent;
974โ}
975โ.decl__body .keyword,
976โ.decl__body .syntax {
977โ color: #0b71b4;
978โ}
979โ@media (prefers-color-scheme: dark) {
980โ .decl__body .keyword,
981โ .decl__body .syntax {
982โ color: #3796d5;
983โ }
984โ}
985โ.decl__child_comments {
986โ margin-top: 1rem;
987โ margin-bottom: 1rem;
988โ}
989โ/* Component: Dependency Link
990โ * -------------------------------------------------------------------------- */
991โ.deplink {
992โ /* Currently no root styles, but keep the class as a namespace */
993โ}
994โ.deplink__link {
995โ display: inline-block;
996โ margin-right: 0.41em;
997โ}
998โ.deplink__version {
999โ color: #666666;
1000โ display: inline-block;
1001โ font-size: 0.8em;
1002โ line-height: 1;
1003โ}
1004โ@media (prefers-color-scheme: dark) {
1005โ .deplink__version {
1006โ color: #a0a0a0;
1007โ }
1008โ}
1009โ/* Component: Grouped List
1010โ * -------------------------------------------------------------------------- */
1011โ.grouped-list {
1012โ border-top: 1px solid #cccccc;
1013โ margin: 0 0 2.44em 0;
1014โ}
1015โ@media (prefers-color-scheme: dark) {
1016โ .grouped-list {
1017โ border-top-color: #43434e;
1018โ }
1019โ}
1020โ.grouped-list__title {
1021โ color: #666666;
1022โ font-size: 0.8em;
1023โ font-weight: 300;
1024โ letter-spacing: 1px;
1025โ margin: 0.8em 0 -0.1em 0;
1026โ text-transform: uppercase;
1027โ}
1028โ@media (prefers-color-scheme: dark) {
1029โ .grouped-list__title {
1030โ border-top-color: #a0a0a0;
1031โ }
1032โ}
1033โ.grouped-list__item {
1034โ margin: 0;
1035โ}
1036โ/* Component: Message
1037โ * -------------------------------------------------------------------------- */
1038โ.message {
1039โ border: 5px solid;
1040โ border-radius: 5px;
1041โ padding: 1em !important;
1042โ}
1043โ.message.message--error {
1044โ background-color: #fff0f0;
1045โ border-color: #c85050;
1046โ}
1047โ@media (prefers-color-scheme: dark) {
1048โ .message.message--error {
1049โ background-color: #6b0e0e;
1050โ border-color: #c85050;
1051โ }
1052โ}
1053โ.message.message--not-available {
1054โ background-color: #f0f096;
1055โ border-color: #e3e33d;
1056โ}
1057โ@media (prefers-color-scheme: dark) {
1058โ .message.message--not-available {
1059โ background-color: #56560b;
1060โ border-color: #b0b017;
1061โ }
1062โ}
1063โ/* Component: Multi Col
1064โ * Multiple columns side by side
1065โ * -------------------------------------------------------------------------- */
1066โ.multi-col {
1067โ margin-bottom: 2.44em;
1068โ}
1069โ.multi-col__col {
1070โ display: block;
1071โ padding-right: 1em;
1072โ position: relative;
1073โ width: 100%;
1074โ}
1075โ@media (min-width: 38em) and (max-width: 51.999999em) {
1076โ .multi-col__col {
1077โ float: left;
1078โ width: 50%;
1079โ }
1080โ .multi-col__col:nth-child(2n+3) {
1081โ clear: both;
1082โ }
1083โ}
1084โ@media (min-width: 52em) {
1085โ .multi-col__col {
1086โ float: left;
1087โ width: 33.333333%;
1088โ }
1089โ .multi-col__col:nth-child(3n+4) {
1090โ clear: both;
1091โ }
1092โ}
1093โ/* Component: Page Title
1094โ * -------------------------------------------------------------------------- */
1095โ.page-title {
1096โ margin: 4.77em 0 1.56em;
1097โ padding-bottom: 1.25em;
1098โ position: relative;
1099โ}
1100โ.page-title__title {
1101โ margin: 0 0 0 -0.05em;
1102โ /* Visually align on left edge */
1103โ}
1104โ.page-title__label {
1105โ position: relative;
1106โ color: #666666;
1107โ font-size: 0.8rem;
1108โ font-weight: 300;
1109โ letter-spacing: 1px;
1110โ margin-bottom: -0.8em;
1111โ text-transform: uppercase;
1112โ z-index: 1;
1113โ}
1114โ@media (prefers-color-scheme: dark) {
1115โ .page-title__label {
1116โ color: #a0a0a0;
1117โ }
1118โ}
1119โ/* Component: Top Banner
1120โ * -------------------------------------------------------------------------- */
1121โ.top-banner {
1122โ background-color: #1d222d;
1123โ color: #f0f0f0;
1124โ font-weight: normal;
1125โ}
1126โ@media (prefers-color-scheme: dark) {
1127โ .top-banner {
1128โ background-color: #1d222d;
1129โ color: #f0f0f0;
1130โ }
1131โ}
1132โ.top-banner__logo,
1133โ.top-banner__logo:visited {
1134โ float: left;
1135โ color: #f0f0f0;
1136โ font-size: 2.44em;
1137โ font-weight: 300;
1138โ line-height: 90px;
1139โ margin: 0;
1140โ}
1141โ@media (prefers-color-scheme: dark) {
1142โ .top-banner__logo,
1143โ .top-banner__logo:visited {
1144โ color: #f0f0f0;
1145โ }
1146โ}
1147โ.top-banner__logo:hover {
1148โ color: #c4953a;
1149โ text-decoration: none;
1150โ}
1151โ.top-banner__form {
1152โ margin-bottom: 1.25em;
1153โ}
1154โ.top-banner__form input {
1155โ border: 1px solid #1d222d;
1156โ border-radius: 3px;
1157โ background-color: #ffffff;
1158โ color: #1d222d;
1159โ font-weight: 300;
1160โ line-height: 2;
1161โ padding: 0.21em 0.512em;
1162โ width: 100%;
1163โ}
1164โ@media (prefers-color-scheme: dark) {
1165โ .top-banner__form input {
1166โ border-color: #1d222d;
1167โ background-color: #141417;
1168โ color: #dedede;
1169โ }
1170โ}
1171โ.top-banner__actions {
1172โ float: right;
1173โ text-align: right;
1174โ}
1175โ.top-banner__actions__item {
1176โ display: inline-block;
1177โ line-height: 90px;
1178โ margin: 0;
1179โ padding-left: 1.25em;
1180โ}
1181โ.top-banner__actions__item:first-child {
1182โ padding-left: 0;
1183โ}
1184โ.top-banner__actions__item a,
1185โ.top-banner__actions__item a:visited {
1186โ color: #f0f0f0;
1187โ}
1188โ@media (prefers-color-scheme: dark) {
1189โ .top-banner__actions__item a,
1190โ .top-banner__actions__item a:visited {
1191โ color: #f0f0f0;
1192โ }
1193โ}
1194โ.top-banner__actions__item a:hover {
1195โ color: #c4953a;
1196โ}
1197โ@media (prefers-color-scheme: dark) {
1198โ .top-banner__actions__item a:hover {
1199โ color: #d8ac55;
1200โ }
1201โ}
1202โ@media (min-width: 38em) {
1203โ .top-banner__logo {
1204โ float: left;
1205โ width: 25%;
1206โ }
1207โ .top-banner__form {
1208โ float: left;
1209โ line-height: 90px;
1210โ margin-bottom: 0;
1211โ width: 50%;
1212โ }
1213โ .top-banner__actions {
1214โ float: right;
1215โ width: 25%;
1216โ }
1217โ}
1218โ/* Component: Search Results
1219โ * -------------------------------------------------------------------------- */
1220โ.result.result--empty {
1221โ font-size: 1.25em;
1222โ}
1223โ.result__title {
1224โ font-size: 1.25em;
1225โ margin-bottom: 0.2rem;
1226โ}
1227โ.result__badge {
1228โ margin-left: -0.1em;
1229โ}
1230โ.result__body > *:first-child {
1231โ margin-top: 0!important;
1232โ}
1233โ.result__body > *:last-child {
1234โ margin-bottom: 0!important;
1235โ}
1236โ.result__signature {
1237โ background-color: transparent;
1238โ border-radius: 0;
1239โ border-top: 1px solid #cccccc;
1240โ border-bottom: 1px solid #cccccc;
1241โ padding: 0.328em 0;
1242โ}
1243โ@media (prefers-color-scheme: dark) {
1244โ .result__signature {
1245โ border-top-color: #43434e;
1246โ border-bottom-color: #43434e;
1247โ }
1248โ}
1249โ.result__signature code {
1250โ display: block;
1251โ padding-left: 2.441em;
1252โ text-indent: -2.441em;
1253โ white-space: normal;
1254โ}
1255โ.result__actions {
1256โ margin-top: 0.2rem;
1257โ}
1258โ.result__actions__item {
1259โ font-size: 80%;
1260โ}
1261โ.result__actions__item + .result__actions__item {
1262โ margin-left: 0.65em;
1263โ}
1264โ/* Component: Version Selector
1265โ * -------------------------------------------------------------------------- */
1266โ.version-selector {
1267โ margin-bottom: 0.8em;
1268โ}
1269โ@media (min-width: 38em) {
1270โ .version-selector {
1271โ position: absolute;
1272โ top: 0.8em;
1273โ right: 0;
1274โ margin-bottom: 0;
1275โ }
1276โ}
1277โ/* Section: FIXME
1278โ * These styles should be cleaned up
1279โ * ========================================================================== */
1280โ/* Help paragraphs */
1281โ.help {
1282โ padding: 5px 0;
1283โ}
1284โ.help h3 {
1285โ /* FIXME: target with class */
1286โ margin-top: 16px;
1287โ}
1288โ/* Section: Markdown
1289โ * Github rendered README
1290โ * ========================================================================== */
1291โ.markdown-body {
1292โ /*
1293โ Useful for narrow screens, such as mobiles. Documentation often contains URLs
1294โ which would otherwise force the page to become wider, and force creation of
1295โ horizontal scrollbars. Yuck.
1296โ */
1297โ word-wrap: break-word;
1298โ}
1299โ.markdown-body > *:first-child {
1300โ margin-top: 0 !important;
1301โ}
1302โ.markdown-body > *:last-child {
1303โ margin-bottom: 0 !important;
1304โ}
1305โ.markdown-body a:not([href]) {
1306โ color: inherit;
1307โ text-decoration: none;
1308โ}
1309โ.markdown-body blockquote {
1310โ margin: 0;
1311โ padding: 0 1em;
1312โ color: #777;
1313โ border-left: 0.25em solid #ddd;
1314โ}
1315โ@media (prefers-color-scheme: dark) {
1316โ .markdown-body blockquote {
1317โ border-left-color: #444;
1318โ }
1319โ}
1320โ.markdown-body blockquote > :first-child {
1321โ margin-top: 0;
1322โ}
1323โ.markdown-body blockquote > :last-child {
1324โ margin-bottom: 0;
1325โ}
1326โ.markdown-body .anchor {
1327โ /* We hide the anchor because the link doesn't point to a valid location */
1328โ display: none;
1329โ}
1330โ.markdown-body .pl-k {
1331โ /* Keyword */
1332โ color: #a0a0a0;
1333โ}
1334โ@media (prefers-color-scheme: dark) {
1335โ .markdown-body .pl-k {
1336โ color: #676767;
1337โ }
1338โ}
1339โ.markdown-body .pl-c1,
1340โ.markdown-body .pl-en {
1341โ /* Not really sure what this is */
1342โ color: #39d;
1343โ}
1344โ.markdown-body .pl-s {
1345โ /* String literals */
1346โ color: #1a1;
1347โ}
1348โ.markdown-body .pl-cce {
1349โ /* String literal escape sequences */
1350โ color: #921;
1351โ}
1352โ.markdown-body .pl-smi {
1353โ /* type variables? */
1354โ color: #62b;
1355โ}
1356โ</style></head><body><div class="everything-except-footer"><div class="top-banner clearfix"><div class="container clearfix"><div style="float: left; font-size: 2.44em; font-weight: 300; line-height: 90px; margin: 0">PureScript API documentation</div><div class="top-banner__actions"><div class="top-banner__actions__item"><a href="index.html">Index</a></div></div></div></div><main class="container clearfix" role="main"><div class="page-title clearfix"><div class="page-title__label">Module</div><h1 class="page-title__title">Control.Apply</h1></div><div class="col col--main"><div class="decl" id="t:Apply"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#t:Apply">#</a><span>Apply</span> </h3><div class="decl__body"><pre class="decl__signature"><code class="decl__kind"><span class="keyword">class</span> <a href="Control.Apply.html#t:Apply" title="Control.Apply.Apply"><span class="ctor">Apply</span></a> <span class="syntax">::</span> <span class="syntax">(</span><a href="Prim.html#t:Type" title="Prim.Type"><span class="ctor">Type</span></a> <span class="syntax">-></span> <a href="Prim.html#t:Type" title="Prim.Type"><span class="ctor">Type</span></a><span class="syntax">)</span> <span class="syntax">-></span> <a href="Prim.html#t:Constraint" title="Prim.Constraint"><span class="ctor">Constraint</span></a></code><code><span class="keyword">class</span> <span class="syntax">(</span><a href="Data.Functor.html#t:Functor" title="Data.Functor.Functor"><span class="ctor">Functor</span></a> f<span class="syntax">)</span> <span class="syntax"><=</span> <a href="Control.Apply.html#t:Apply" title="Control.Apply.Apply"><span class="ctor">Apply</span></a> f <span class="keyword">where</span></code></pre><p>The <code>Apply</code> class provides the <code>(<*>)</code> which is used to apply a function
1357โto an argument under a type constructor.</p>
1358โ<p><code>Apply</code> can be used to lift functions of two or more arguments to work on
1359โvalues wrapped with the type constructor <code>f</code>. It might also be understood
1360โin terms of the <code>lift2</code> function:</p>
1361โ<pre class="purescript"><code>lift2 :: forall f a b c. Apply f => (a -> b -> c) -> f a -> f b -> f c
1362โlift2 f a b = f <$> a <*> b
1363โ</code></pre>
1364โ<p><code>(<*>)</code> is recovered from <code>lift2</code> as <code>lift2 ($)</code>. That is, <code>(<*>)</code> lifts
1365โthe function application operator <code>($)</code> to arguments wrapped with the
1366โtype constructor <code>f</code>.</p>
1367โ<p>Put differently...</p>
1368โ<pre><code>foo =
1369โ functionTakingNArguments <$> computationProducingArg1
1370โ <*> computationProducingArg2
1371โ <*> ...
1372โ <*> computationProducingArgN
1373โ</code></pre>
1374โ<p>Instances must satisfy the following law in addition to the <code>Functor</code>
1375โlaws:</p>
1376โ<ul>
1377โ<li>Associative composition: <code>(<<<) <$> f <*> g <*> h = f <*> (g <*> h)</code></li>
1378โ</ul>
1379โ<p>Formally, <code>Apply</code> represents a strong lax semi-monoidal endofunctor.</p>
1380โ<h4>Members</h4><ul><li id="v:apply"><code><a href="Control.Apply.html#v:apply" title="Control.Apply.apply"><span class="ident">apply</span></a> <span class="syntax">::</span> <span class="keyword">forall</span> <span class="syntax"></span>a <span class="syntax"></span>b<span class="syntax">.</span> f <span class="syntax">(</span>a <span class="syntax">-></span> b<span class="syntax">)</span> <span class="syntax">-></span> f a <span class="syntax">-></span> f b</code></li></ul><h4>Instances</h4><ul><li id="v:applyFn"><code><a href="Control.Apply.html#t:Apply" title="Control.Apply.Apply"><span class="ctor">Apply</span></a> <span class="syntax">(</span><a href="Prim.html#t:Function" title="Prim.Function"><span class="ctor">Function</span></a> r<span class="syntax">)</span></code></li><li id="v:applyArray"><code><a href="Control.Apply.html#t:Apply" title="Control.Apply.Apply"><span class="ctor">Apply</span></a> <a href="Prim.html#t:Array" title="Prim.Array"><span class="ctor">Array</span></a></code></li><li id="v:applyProxy"><code><a href="Control.Apply.html#t:Apply" title="Control.Apply.Apply"><span class="ctor">Apply</span></a> <a href="Type.Proxy.html#t:Proxy" title="Type.Proxy.Proxy"><span class="ctor">Proxy</span></a></code></li></ul></div></div><div class="decl" id="v:(<*>)"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:(<*>)">#</a><span>(<*>)</span> </h3><div class="decl__body"><p>Operator alias for Control.Apply.apply <em>(left-associative / precedence 4)</em></p></div></div><div class="decl" id="v:applyFirst"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:applyFirst">#</a><span>applyFirst</span> </h3><div class="decl__body"><pre class="decl__signature"><code><a href="Control.Apply.html#v:applyFirst" title="Control.Apply.applyFirst"><span class="ident">applyFirst</span></a> <span class="syntax">::</span> <span class="keyword">forall</span> <span class="syntax"></span>a <span class="syntax"></span>b <span class="syntax"></span>f<span class="syntax">.</span> <a href="Control.Apply.html#t:Apply" title="Control.Apply.Apply"><span class="ctor">Apply</span></a> f <span class="syntax">=></span> f a <span class="syntax">-></span> f b <span class="syntax">-></span> f a</code></pre><p>Combine two effectful actions, keeping only the result of the first.</p>
1381โ</div></div><div class="decl" id="v:(<*)"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:(<*)">#</a><span>(<*)</span> </h3><div class="decl__body"><p>Operator alias for Control.Apply.applyFirst <em>(left-associative / precedence 4)</em></p></div></div><div class="decl" id="v:applySecond"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:applySecond">#</a><span>applySecond</span> </h3><div class="decl__body"><pre class="decl__signature"><code><a href="Control.Apply.html#v:applySecond" title="Control.Apply.applySecond"><span class="ident">applySecond</span></a> <span class="syntax">::</span> <span class="keyword">forall</span> <span class="syntax"></span>a <span class="syntax"></span>b <span class="syntax"></span>f<span class="syntax">.</span> <a href="Control.Apply.html#t:Apply" title="Control.Apply.Apply"><span class="ctor">Apply</span></a> f <span class="syntax">=></span> f a <span class="syntax">-></span> f b <span class="syntax">-></span> f b</code></pre><p>Combine two effectful actions, keeping only the result of the second.</p>
1382โ</div></div><div class="decl" id="v:(*>)"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:(*>)">#</a><span>(*>)</span> </h3><div class="decl__body"><p>Operator alias for Control.Apply.applySecond <em>(left-associative / precedence 4)</em></p></div></div><div class="decl" id="v:lift2"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:lift2">#</a><span>lift2</span> </h3><div class="decl__body"><pre class="decl__signature"><code><a href="Control.Apply.html#v:lift2" title="Control.Apply.lift2"><span class="ident">lift2</span></a> <span class="syntax">::</span> <span class="keyword">forall</span> <span class="syntax"></span>a <span class="syntax"></span>b <span class="syntax"></span>c <span class="syntax"></span>f<span class="syntax">.</span> <a href="Control.Apply.html#t:Apply" title="Control.Apply.Apply"><span class="ctor">Apply</span></a> f <span class="syntax">=></span> <span class="syntax">(</span>a <span class="syntax">-></span> b <span class="syntax">-></span> c<span class="syntax">)</span> <span class="syntax">-></span> f a <span class="syntax">-></span> f b <span class="syntax">-></span> f c</code></pre><p>Lift a function of two arguments to a function which accepts and returns
1383โvalues wrapped with the type constructor <code>f</code>.</p>
1384โ<pre class="purescript"><code>lift2 add (Just 1) (Just 2) == Just 3
1385โlift2 add Nothing (Just 2) == Nothing
1386โ</code></pre>
1387โ</div></div><div class="decl" id="v:lift3"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:lift3">#</a><span>lift3</span> </h3><div class="decl__body"><pre class="decl__signature"><code><a href="Control.Apply.html#v:lift3" title="Control.Apply.lift3"><span class="ident">lift3</span></a> <span class="syntax">::</span> <span class="keyword">forall</span> <span class="syntax"></span>a <span class="syntax"></span>b <span class="syntax"></span>c <span class="syntax"></span>d <span class="syntax"></span>f<span class="syntax">.</span> <a href="Control.Apply.html#t:Apply" title="Control.Apply.Apply"><span class="ctor">Apply</span></a> f <span class="syntax">=></span> <span class="syntax">(</span>a <span class="syntax">-></span> b <span class="syntax">-></span> c <span class="syntax">-></span> d<span class="syntax">)</span> <span class="syntax">-></span> f a <span class="syntax">-></span> f b <span class="syntax">-></span> f c <span class="syntax">-></span> f d</code></pre><p>Lift a function of three arguments to a function which accepts and returns
1388โvalues wrapped with the type constructor <code>f</code>.</p>
1389โ</div></div><div class="decl" id="v:lift4"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:lift4">#</a><span>lift4</span> </h3><div class="decl__body"><pre class="decl__signature"><code><a href="Control.Apply.html#v:lift4" title="Control.Apply.lift4"><span class="ident">lift4</span></a> <span class="syntax">::</span> <span class="keyword">forall</span> <span class="syntax"></span>a <span class="syntax"></span>b <span class="syntax"></span>c <span class="syntax"></span>d <span class="syntax"></span>e <span class="syntax"></span>f<span class="syntax">.</span> <a href="Control.Apply.html#t:Apply" title="Control.Apply.Apply"><span class="ctor">Apply</span></a> f <span class="syntax">=></span> <span class="syntax">(</span>a <span class="syntax">-></span> b <span class="syntax">-></span> c <span class="syntax">-></span> d <span class="syntax">-></span> e<span class="syntax">)</span> <span class="syntax">-></span> f a <span class="syntax">-></span> f b <span class="syntax">-></span> f c <span class="syntax">-></span> f d <span class="syntax">-></span> f e</code></pre><p>Lift a function of four arguments to a function which accepts and returns
1390โvalues wrapped with the type constructor <code>f</code>.</p>
1391โ</div></div><div class="decl" id="v:lift5"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:lift5">#</a><span>lift5</span> </h3><div class="decl__body"><pre class="decl__signature"><code><a href="Control.Apply.html#v:lift5" title="Control.Apply.lift5"><span class="ident">lift5</span></a> <span class="syntax">::</span> <span class="keyword">forall</span> <span class="syntax"></span>a <span class="syntax"></span>b <span class="syntax"></span>c <span class="syntax"></span>d <span class="syntax"></span>e <span class="syntax"></span>f <span class="syntax"></span>g<span class="syntax">.</span> <a href="Control.Apply.html#t:Apply" title="Control.Apply.Apply"><span class="ctor">Apply</span></a> f <span class="syntax">=></span> <span class="syntax">(</span>a <span class="syntax">-></span> b <span class="syntax">-></span> c <span class="syntax">-></span> d <span class="syntax">-></span> e <span class="syntax">-></span> g<span class="syntax">)</span> <span class="syntax">-></span> f a <span class="syntax">-></span> f b <span class="syntax">-></span> f c <span class="syntax">-></span> f d <span class="syntax">-></span> f e <span class="syntax">-></span> f g</code></pre><p>Lift a function of five arguments to a function which accepts and returns
1392โvalues wrapped with the type constructor <code>f</code>.</p>
1393โ</div></div><h2 class="re-exports">Re-exports from <a href="Data.Functor.html">Data.Functor</a></h2><div class="decl" id="t:Functor"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#t:Functor">#</a><span>Functor</span> </h3><div class="decl__body"><pre class="decl__signature"><code class="decl__kind"><span class="keyword">class</span> <a href="Control.Apply.html#t:Functor" title="Control.Apply.Functor"><span class="ctor">Functor</span></a> <span class="syntax">::</span> <span class="syntax">(</span><a href="Prim.html#t:Type" title="Prim.Type"><span class="ctor">Type</span></a> <span class="syntax">-></span> <a href="Prim.html#t:Type" title="Prim.Type"><span class="ctor">Type</span></a><span class="syntax">)</span> <span class="syntax">-></span> <a href="Prim.html#t:Constraint" title="Prim.Constraint"><span class="ctor">Constraint</span></a></code><code><span class="keyword">class</span> <a href="Control.Apply.html#t:Functor" title="Control.Apply.Functor"><span class="ctor">Functor</span></a> f <span class="keyword">where</span></code></pre><p>A <code>Functor</code> is a type constructor which supports a mapping operation
1394โ<code>map</code>.</p>
1395โ<p><code>map</code> can be used to turn functions <code>a -> b</code> into functions
1396โ<code>f a -> f b</code> whose argument and return types use the type constructor <code>f</code>
1397โto represent some computational context.</p>
1398โ<p>Instances must satisfy the following laws:</p>
1399โ<ul>
1400โ<li>Identity: <code>map identity = identity</code></li>
1401โ<li>Composition: <code>map (f <<< g) = map f <<< map g</code></li>
1402โ</ul>
1403โ<h4>Members</h4><ul><li id="v:map"><code><a href="Control.Apply.html#v:map" title="Control.Apply.map"><span class="ident">map</span></a> <span class="syntax">::</span> <span class="keyword">forall</span> <span class="syntax"></span>a <span class="syntax"></span>b<span class="syntax">.</span> <span class="syntax">(</span>a <span class="syntax">-></span> b<span class="syntax">)</span> <span class="syntax">-></span> f a <span class="syntax">-></span> f b</code></li></ul><h4>Instances</h4><ul><li id="v:functorFn"><code><a href="Data.Functor.html#t:Functor" title="Data.Functor.Functor"><span class="ctor">Functor</span></a> <span class="syntax">(</span><a href="Prim.html#t:Function" title="Prim.Function"><span class="ctor">Function</span></a> r<span class="syntax">)</span></code></li><li id="v:functorArray"><code><a href="Data.Functor.html#t:Functor" title="Data.Functor.Functor"><span class="ctor">Functor</span></a> <a href="Prim.html#t:Array" title="Prim.Array"><span class="ctor">Array</span></a></code></li><li id="v:functorProxy"><code><a href="Data.Functor.html#t:Functor" title="Data.Functor.Functor"><span class="ctor">Functor</span></a> <a href="Type.Proxy.html#t:Proxy" title="Type.Proxy.Proxy"><span class="ctor">Proxy</span></a></code></li></ul></div></div><div class="decl" id="v:void"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:void">#</a><span>void</span> </h3><div class="decl__body"><pre class="decl__signature"><code><a href="Control.Apply.html#v:void" title="Control.Apply.void"><span class="ident">void</span></a> <span class="syntax">::</span> <span class="keyword">forall</span> <span class="syntax"></span>f <span class="syntax"></span>a<span class="syntax">.</span> <a href="Data.Functor.html#t:Functor" title="Data.Functor.Functor"><span class="ctor">Functor</span></a> f <span class="syntax">=></span> f a <span class="syntax">-></span> f <a href="Data.Unit.html#t:Unit" title="Data.Unit.Unit"><span class="ctor">Unit</span></a></code></pre><p>The <code>void</code> function is used to ignore the type wrapped by a
1404โ<code>Functor</code>, replacing it with <code>Unit</code> and keeping only the type
1405โinformation provided by the type constructor itself.</p>
1406โ<p><code>void</code> is often useful when using <code>do</code> notation to change the return type
1407โof a monadic computation:</p>
1408โ<pre class="purescript"><code>main = forE 1 10 \n -> void do
1409โ print n
1410โ print (n * n)
1411โ</code></pre>
1412โ</div></div><div class="decl" id="v:(<$>)"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:(<$>)">#</a><span>(<$>)</span> </h3><div class="decl__body"><p>Operator alias for Data.Functor.map <em>(left-associative / precedence 4)</em></p></div></div><div class="decl" id="v:(<$)"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:(<$)">#</a><span>(<$)</span> </h3><div class="decl__body"><p>Operator alias for Data.Functor.voidRight <em>(left-associative / precedence 4)</em></p></div></div><div class="decl" id="v:(<#>)"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:(<#>)">#</a><span>(<#>)</span> </h3><div class="decl__body"><p>Operator alias for Data.Functor.mapFlipped <em>(left-associative / precedence 1)</em></p></div></div><div class="decl" id="v:($>)"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:($>)">#</a><span>($>)</span> </h3><div class="decl__body"><p>Operator alias for Data.Functor.voidLeft <em>(left-associative / precedence 4)</em></p></div></div></div><div class="col col--aside"><h3>Modules</h3><ul><li><a href="Ansi.Codes.html">Ansi.Codes</a></li><li><a href="Ansi.Output.html">Ansi.Output</a></li><li><a href="Bolson.Control.html">Bolson.Control</a></li><li><a href="Bolson.Core.html">Bolson.Core</a></li><li><a href="Control.Alt.html">Control.Alt</a></li><li><a href="Control.Alternative.html">Control.Alternative</a></li><li><a href="Control.Applicative.html">Control.Applicative</a></li><li><a href="Control.Apply.html">Control.Apply</a></li><li><a href="Control.Biapplicative.html">Control.Biapplicative</a></li><li><a href="Control.Biapply.html">Control.Biapply</a></li><li><a href="Control.Bind.html">Control.Bind</a></li><li><a href="Control.Category.html">Control.Category</a></li><li><a href="Control.Comonad.html">Control.Comonad</a></li><li><a href="Control.Comonad.Cofree.html">Control.Comonad.Cofree</a></li><li><a href="Control.Comonad.Cofree.Class.html">Control.Comonad.Cofree.Class</a></li><li><a href="Control.Comonad.Env.html">Control.Comonad.Env</a></li><li><a href="Control.Comonad.Env.Class.html">Control.Comonad.Env.Class</a></li><li><a href="Control.Comonad.Env.Trans.html">Control.Comonad.Env.Trans</a></li><li><a href="Control.Comonad.Store.html">Control.Comonad.Store</a></li><li><a href="Control.Comonad.Store.Class.html">Control.Comonad.Store.Class</a></li><li><a href="Control.Comonad.Store.Trans.html">Control.Comonad.Store.Trans</a></li><li><a href="Control.Comonad.Traced.html">Control.Comonad.Traced</a></li><li><a href="Control.Comonad.Traced.Class.html">Control.Comonad.Traced.Class</a></li><li><a href="Control.Comonad.Traced.Trans.html">Control.Comonad.Traced.Trans</a></li><li><a href="Control.Comonad.Trans.Class.html">Control.Comonad.Trans.Class</a></li><li><a href="Control.Extend.html">Control.Extend</a></li><li><a href="Control.Lazy.html">Control.Lazy</a></li><li><a href="Control.Monad.html">Control.Monad</a></li><li><a href="Control.Monad.Cont.html">Control.Monad.Cont</a></li><li><a href="Control.Monad.Cont.Class.html">Control.Monad.Cont.Class</a></li><li><a href="Control.Monad.Cont.Trans.html">Control.Monad.Cont.Trans</a></li><li><a href="Control.Monad.Error.Class.html">Control.Monad.Error.Class</a></li><li><a href="Control.Monad.Except.html">Control.Monad.Except</a></li><li><a href="Control.Monad.Except.Trans.html">Control.Monad.Except.Trans</a></li><li><a href="Control.Monad.Fork.Class.html">Control.Monad.Fork.Class</a></li><li><a href="Control.Monad.Free.html">Control.Monad.Free</a></li><li><a href="Control.Monad.Free.Class.html">Control.Monad.Free.Class</a></li><li><a href="Control.Monad.Gen.html">Control.Monad.Gen</a></li><li><a href="Control.Monad.Gen.Class.html">Control.Monad.Gen.Class</a></li><li><a href="Control.Monad.Gen.Common.html">Control.Monad.Gen.Common</a></li><li><a href="Control.Monad.Identity.Trans.html">Control.Monad.Identity.Trans</a></li><li><a href="Control.Monad.List.Trans.html">Control.Monad.List.Trans</a></li><li><a href="Control.Monad.Maybe.Trans.html">Control.Monad.Maybe.Trans</a></li><li><a href="Control.Monad.Morph.html">Control.Monad.Morph</a></li><li><a href="Control.Monad.RWS.html">Control.Monad.RWS</a></li><li><a href="Control.Monad.RWS.Trans.html">Control.Monad.RWS.Trans</a></li><li><a href="Control.Monad.Reader.html">Control.Monad.Reader</a></li><li><a href="Control.Monad.Reader.Class.html">Control.Monad.Reader.Class</a></li><li><a href="Control.Monad.Reader.Trans.html">Control.Monad.Reader.Trans</a></li><li><a href="Control.Monad.Rec.Class.html">Control.Monad.Rec.Class</a></li><li><a href="Control.Monad.ST.html">Control.Monad.ST</a></li><li><a href="Control.Monad.ST.Class.html">Control.Monad.ST.Class</a></li><li><a href="Control.Monad.ST.Global.html">Control.Monad.ST.Global</a></li><li><a href="Control.Monad.ST.Internal.html">Control.Monad.ST.Internal</a></li><li><a href="Control.Monad.ST.Ref.html">Control.Monad.ST.Ref</a></li><li><a href="Control.Monad.ST.Uncurried.html">Control.Monad.ST.Uncurried</a></li><li><a href="Control.Monad.State.html">Control.Monad.State</a></li><li><a href="Control.Monad.State.Class.html">Control.Monad.State.Class</a></li><li><a href="Control.Monad.State.Trans.html">Control.Monad.State.Trans</a></li><li><a href="Control.Monad.Trampoline.html">Control.Monad.Trampoline</a></li><li><a href="Control.Monad.Trans.Class.html">Control.Monad.Trans.Class</a></li><li><a href="Control.Monad.Writer.html">Control.Monad.Writer</a></li><li><a href="Control.Monad.Writer.Class.html">Control.Monad.Writer.Class</a></li><li><a href="Control.Monad.Writer.Trans.html">Control.Monad.Writer.Trans</a></li><li><a href="Control.MonadPlus.html">Control.MonadPlus</a></li><li><a href="Control.Parallel.html">Control.Parallel</a></li><li><a href="Control.Parallel.Class.html">Control.Parallel.Class</a></li><li><a href="Control.Plus.html">Control.Plus</a></li><li><a href="Control.Semigroupoid.html">Control.Semigroupoid</a></li><li><a href="Data.Array.html">Data.Array</a></li><li><a href="Data.Array.NonEmpty.html">Data.Array.NonEmpty</a></li><li><a href="Data.Array.NonEmpty.Internal.html">Data.Array.NonEmpty.Internal</a></li><li><a href="Data.Array.Partial.html">Data.Array.Partial</a></li><li><a href="Data.Array.ST.html">Data.Array.ST</a></li><li><a href="Data.Array.ST.Iterator.html">Data.Array.ST.Iterator</a></li><li><a href="Data.Array.ST.Partial.html">Data.Array.ST.Partial</a></li><li><a href="Data.ArrayBuffer.Types.html">Data.ArrayBuffer.Types</a></li><li><a href="Data.Bifoldable.html">Data.Bifoldable</a></li><li><a href="Data.Bifunctor.html">Data.Bifunctor</a></li><li><a href="Data.Bifunctor.Join.html">Data.Bifunctor.Join</a></li><li><a href="Data.Bitraversable.html">Data.Bitraversable</a></li><li><a href="Data.Boolean.html">Data.Boolean</a></li><li><a href="Data.BooleanAlgebra.html">Data.BooleanAlgebra</a></li><li><a href="Data.Bounded.html">Data.Bounded</a></li><li><a href="Data.Bounded.Generic.html">Data.Bounded.Generic</a></li><li><a href="Data.CatList.html">Data.CatList</a></li><li><a href="Data.CatQueue.html">Data.CatQueue</a></li><li><a href="Data.Char.html">Data.Char</a></li><li><a href="Data.Char.Gen.html">Data.Char.Gen</a></li><li><a href="Data.CommutativeRing.html">Data.CommutativeRing</a></li><li><a href="Data.Compactable.html">Data.Compactable</a></li><li><a href="Data.Comparison.html">Data.Comparison</a></li><li><a href="Data.Const.html">Data.Const</a></li><li><a href="Data.Coyoneda.html">Data.Coyoneda</a></li><li><a href="Data.Date.html">Data.Date</a></li><li><a href="Data.Date.Component.html">Data.Date.Component</a></li><li><a href="Data.Date.Component.Gen.html">Data.Date.Component.Gen</a></li><li><a href="Data.Date.Gen.html">Data.Date.Gen</a></li><li><a href="Data.DateTime.html">Data.DateTime</a></li><li><a href="Data.DateTime.Gen.html">Data.DateTime.Gen</a></li><li><a href="Data.DateTime.Instant.html">Data.DateTime.Instant</a></li><li><a href="Data.Decidable.html">Data.Decidable</a></li><li><a href="Data.Decide.html">Data.Decide</a></li><li><a href="Data.Distributive.html">Data.Distributive</a></li><li><a href="Data.Divide.html">Data.Divide</a></li><li><a href="Data.Divisible.html">Data.Divisible</a></li><li><a href="Data.DivisionRing.html">Data.DivisionRing</a></li><li><a href="Data.Either.html">Data.Either</a></li><li><a href="Data.Either.Inject.html">Data.Either.Inject</a></li><li><a href="Data.Either.Nested.html">Data.Either.Nested</a></li><li><a href="Data.Enum.html">Data.Enum</a></li><li><a href="Data.Enum.Gen.html">Data.Enum.Gen</a></li><li><a href="Data.Enum.Generic.html">Data.Enum.Generic</a></li><li><a href="Data.Eq.html">Data.Eq</a></li><li><a href="Data.Eq.Generic.html">Data.Eq.Generic</a></li><li><a href="Data.Equivalence.html">Data.Equivalence</a></li><li><a href="Data.EuclideanRing.html">Data.EuclideanRing</a></li><li><a href="Data.Exists.html">Data.Exists</a></li><li><a href="Data.FastVect.Common.html">Data.FastVect.Common</a></li><li><a href="Data.FastVect.Common.Matrix.html">Data.FastVect.Common.Matrix</a></li><li><a href="Data.FastVect.FastVect.html">Data.FastVect.FastVect</a></li><li><a href="Data.FastVect.FastVect.Matrix.html">Data.FastVect.FastVect.Matrix</a></li><li><a href="Data.FastVect.MinLenVect.html">Data.FastVect.MinLenVect</a></li><li><a href="Data.FastVect.Sparse.Read.html">Data.FastVect.Sparse.Read</a></li><li><a href="Data.FastVect.Sparse.Write.html">Data.FastVect.Sparse.Write</a></li><li><a href="Data.Field.html">Data.Field</a></li><li><a href="Data.Filterable.html">Data.Filterable</a></li><li><a href="Data.Foldable.html">Data.Foldable</a></li><li><a href="Data.FoldableWithIndex.html">Data.FoldableWithIndex</a></li><li><a href="Data.Function.html">Data.Function</a></li><li><a href="Data.Function.Uncurried.html">Data.Function.Uncurried</a></li><li><a href="Data.Functor.html">Data.Functor</a></li><li><a href="Data.Functor.App.html">Data.Functor.App</a></li><li><a href="Data.Functor.Clown.html">Data.Functor.Clown</a></li><li><a href="Data.Functor.Compose.html">Data.Functor.Compose</a></li><li><a href="Data.Functor.Contravariant.html">Data.Functor.Contravariant</a></li><li><a href="Data.Functor.Coproduct.html">Data.Functor.Coproduct</a></li><li><a href="Data.Functor.Coproduct.Inject.html">Data.Functor.Coproduct.Inject</a></li><li><a href="Data.Functor.Coproduct.Nested.html">Data.Functor.Coproduct.Nested</a></li><li><a href="Data.Functor.Costar.html">Data.Functor.Costar</a></li><li><a href="Data.Functor.Flip.html">Data.Functor.Flip</a></li><li><a href="Data.Functor.Invariant.html">Data.Functor.Invariant</a></li><li><a href="Data.Functor.Joker.html">Data.Functor.Joker</a></li><li><a href="Data.Functor.Product.html">Data.Functor.Product</a></li><li><a href="Data.Functor.Product.Nested.html">Data.Functor.Product.Nested</a></li><li><a href="Data.Functor.Product2.html">Data.Functor.Product2</a></li><li><a href="Data.Functor.Variant.html">Data.Functor.Variant</a></li><li><a href="Data.FunctorWithIndex.html">Data.FunctorWithIndex</a></li><li><a href="Data.Generic.Rep.html">Data.Generic.Rep</a></li><li><a href="Data.HeytingAlgebra.html">Data.HeytingAlgebra</a></li><li><a href="Data.HeytingAlgebra.Generic.html">Data.HeytingAlgebra.Generic</a></li><li><a href="Data.Identity.html">Data.Identity</a></li><li><a href="Data.Int.html">Data.Int</a></li><li><a href="Data.Int.Bits.html">Data.Int.Bits</a></li><li><a href="Data.Interval.html">Data.Interval</a></li><li><a href="Data.Interval.Duration.html">Data.Interval.Duration</a></li><li><a href="Data.Interval.Duration.Iso.html">Data.Interval.Duration.Iso</a></li><li><a href="Data.JSDate.html">Data.JSDate</a></li><li><a href="Data.Lazy.html">Data.Lazy</a></li><li><a href="Data.List.html">Data.List</a></li><li><a href="Data.List.Internal.html">Data.List.Internal</a></li><li><a href="Data.List.Lazy.html">Data.List.Lazy</a></li><li><a href="Data.List.Lazy.NonEmpty.html">Data.List.Lazy.NonEmpty</a></li><li><a href="Data.List.Lazy.Types.html">Data.List.Lazy.Types</a></li><li><a href="Data.List.NonEmpty.html">Data.List.NonEmpty</a></li><li><a href="Data.List.Partial.html">Data.List.Partial</a></li><li><a href="Data.List.Types.html">Data.List.Types</a></li><li><a href="Data.List.ZipList.html">Data.List.ZipList</a></li><li><a href="Data.Map.html">Data.Map</a></li><li><a href="Data.Map.Gen.html">Data.Map.Gen</a></li><li><a href="Data.Map.Internal.html">Data.Map.Internal</a></li><li><a href="Data.Maybe.html">Data.Maybe</a></li><li><a href="Data.Maybe.First.html">Data.Maybe.First</a></li><li><a href="Data.Maybe.Last.html">Data.Maybe.Last</a></li><li><a href="Data.MediaType.html">Data.MediaType</a></li><li><a href="Data.MediaType.Common.html">Data.MediaType.Common</a></li><li><a href="Data.Monoid.html">Data.Monoid</a></li><li><a href="Data.Monoid.Additive.html">Data.Monoid.Additive</a></li><li><a href="Data.Monoid.Alternate.html">Data.Monoid.Alternate</a></li><li><a href="Data.Monoid.Conj.html">Data.Monoid.Conj</a></li><li><a href="Data.Monoid.Disj.html">Data.Monoid.Disj</a></li><li><a href="Data.Monoid.Dual.html">Data.Monoid.Dual</a></li><li><a href="Data.Monoid.Endo.html">Data.Monoid.Endo</a></li><li><a href="Data.Monoid.Generic.html">Data.Monoid.Generic</a></li><li><a href="Data.Monoid.Multiplicative.html">Data.Monoid.Multiplicative</a></li><li><a href="Data.NaturalTransformation.html">Data.NaturalTransformation</a></li><li><a href="Data.Newtype.html">Data.Newtype</a></li><li><a href="Data.NonEmpty.html">Data.NonEmpty</a></li><li><a href="Data.Nullable.html">Data.Nullable</a></li><li><a href="Data.Number.html">Data.Number</a></li><li><a href="Data.Number.Approximate.html">Data.Number.Approximate</a></li><li><a href="Data.Number.Format.html">Data.Number.Format</a></li><li><a href="Data.Op.html">Data.Op</a></li><li><a href="Data.Ord.html">Data.Ord</a></li><li><a href="Data.Ord.Down.html">Data.Ord.Down</a></li><li><a href="Data.Ord.Generic.html">Data.Ord.Generic</a></li><li><a href="Data.Ord.Max.html">Data.Ord.Max</a></li><li><a href="Data.Ord.Min.html">Data.Ord.Min</a></li><li><a href="Data.Ordering.html">Data.Ordering</a></li><li><a href="Data.Posix.html">Data.Posix</a></li><li><a href="Data.Posix.Signal.html">Data.Posix.Signal</a></li><li><a href="Data.Predicate.html">Data.Predicate</a></li><li><a href="Data.Profunctor.html">Data.Profunctor</a></li><li><a href="Data.Profunctor.Choice.html">Data.Profunctor.Choice</a></li><li><a href="Data.Profunctor.Closed.html">Data.Profunctor.Closed</a></li><li><a href="Data.Profunctor.Cochoice.html">Data.Profunctor.Cochoice</a></li><li><a href="Data.Profunctor.Costrong.html">Data.Profunctor.Costrong</a></li><li><a href="Data.Profunctor.Join.html">Data.Profunctor.Join</a></li><li><a href="Data.Profunctor.Split.html">Data.Profunctor.Split</a></li><li><a href="Data.Profunctor.Star.html">Data.Profunctor.Star</a></li><li><a href="Data.Profunctor.Strong.html">Data.Profunctor.Strong</a></li><li><a href="Data.Reflectable.html">Data.Reflectable</a></li><li><a href="Data.Ring.html">Data.Ring</a></li><li><a href="Data.Ring.Generic.html">Data.Ring.Generic</a></li><li><a href="Data.Semigroup.html">Data.Semigroup</a></li><li><a href="Data.Semigroup.First.html">Data.Semigroup.First</a></li><li><a href="Data.Semigroup.Foldable.html">Data.Semigroup.Foldable</a></li><li><a href="Data.Semigroup.Generic.html">Data.Semigroup.Generic</a></li><li><a href="Data.Semigroup.Last.html">Data.Semigroup.Last</a></li><li><a href="Data.Semigroup.Traversable.html">Data.Semigroup.Traversable</a></li><li><a href="Data.Semiring.html">Data.Semiring</a></li><li><a href="Data.Semiring.Generic.html">Data.Semiring.Generic</a></li><li><a href="Data.Set.html">Data.Set</a></li><li><a href="Data.Set.NonEmpty.html">Data.Set.NonEmpty</a></li><li><a href="Data.Show.html">Data.Show</a></li><li><a href="Data.Show.Generic.html">Data.Show.Generic</a></li><li><a href="Data.String.html">Data.String</a></li><li><a href="Data.String.CaseInsensitive.html">Data.String.CaseInsensitive</a></li><li><a href="Data.String.CodePoints.html">Data.String.CodePoints</a></li><li><a href="Data.String.CodeUnits.html">Data.String.CodeUnits</a></li><li><a href="Data.String.Common.html">Data.String.Common</a></li><li><a href="Data.String.Gen.html">Data.String.Gen</a></li><li><a href="Data.String.NonEmpty.html">Data.String.NonEmpty</a></li><li><a href="Data.String.NonEmpty.CaseInsensitive.html">Data.String.NonEmpty.CaseInsensitive</a></li><li><a href="Data.String.NonEmpty.CodePoints.html">Data.String.NonEmpty.CodePoints</a></li><li><a href="Data.String.NonEmpty.CodeUnits.html">Data.String.NonEmpty.CodeUnits</a></li><li><a href="Data.String.NonEmpty.Internal.html">Data.String.NonEmpty.Internal</a></li><li><a href="Data.String.Pattern.html">Data.String.Pattern</a></li><li><a href="Data.String.Regex.html">Data.String.Regex</a></li><li><a href="Data.String.Regex.Flags.html">Data.String.Regex.Flags</a></li><li><a href="Data.String.Regex.Unsafe.html">Data.String.Regex.Unsafe</a></li><li><a href="Data.String.Unsafe.html">Data.String.Unsafe</a></li><li><a href="Data.Symbol.html">Data.Symbol</a></li><li><a href="Data.Time.html">Data.Time</a></li><li><a href="Data.Time.Component.html">Data.Time.Component</a></li><li><a href="Data.Time.Component.Gen.html">Data.Time.Component.Gen</a></li><li><a href="Data.Time.Duration.html">Data.Time.Duration</a></li><li><a href="Data.Time.Duration.Gen.html">Data.Time.Duration.Gen</a></li><li><a href="Data.Time.Gen.html">Data.Time.Gen</a></li><li><a href="Data.Traversable.html">Data.Traversable</a></li><li><a href="Data.Traversable.Accum.html">Data.Traversable.Accum</a></li><li><a href="Data.Traversable.Accum.Internal.html">Data.Traversable.Accum.Internal</a></li><li><a href="Data.TraversableWithIndex.html">Data.TraversableWithIndex</a></li><li><a href="Data.Tuple.html">Data.Tuple</a></li><li><a href="Data.Tuple.Nested.html">Data.Tuple.Nested</a></li><li><a href="Data.Unfoldable.html">Data.Unfoldable</a></li><li><a href="Data.Unfoldable1.html">Data.Unfoldable1</a></li><li><a href="Data.Unit.html">Data.Unit</a></li><li><a href="Data.Variant.html">Data.Variant</a></li><li><a href="Data.Variant.Internal.html">Data.Variant.Internal</a></li><li><a href="Data.Void.html">Data.Void</a></li><li><a href="Data.Witherable.html">Data.Witherable</a></li><li><a href="Data.Yoneda.html">Data.Yoneda</a></li><li><a href="Effect.html">Effect</a></li><li><a href="Effect.AVar.html">Effect.AVar</a></li><li><a href="Effect.Aff.html">Effect.Aff</a></li><li><a href="Effect.Aff.AVar.html">Effect.Aff.AVar</a></li><li><a href="Effect.Aff.Class.html">Effect.Aff.Class</a></li><li><a href="Effect.Aff.Compat.html">Effect.Aff.Compat</a></li><li><a href="Effect.Class.html">Effect.Class</a></li><li><a href="Effect.Class.Console.html">Effect.Class.Console</a></li><li><a href="Effect.Console.html">Effect.Console</a></li><li><a href="Effect.Exception.html">Effect.Exception</a></li><li><a href="Effect.Exception.Unsafe.html">Effect.Exception.Unsafe</a></li><li><a href="Effect.Now.html">Effect.Now</a></li><li><a href="Effect.Ref.html">Effect.Ref</a></li><li><a href="Effect.Timer.html">Effect.Timer</a></li><li><a href="Effect.Uncurried.html">Effect.Uncurried</a></li><li><a href="Effect.Unsafe.html">Effect.Unsafe</a></li><li><a href="FRP.Behavior.html">FRP.Behavior</a></li><li><a href="FRP.Behavior.Keyboard.html">FRP.Behavior.Keyboard</a></li><li><a href="FRP.Behavior.Mouse.html">FRP.Behavior.Mouse</a></li><li><a href="FRP.Behavior.Time.html">FRP.Behavior.Time</a></li><li><a href="FRP.Event.html">FRP.Event</a></li><li><a href="FRP.Event.AnimationFrame.html">FRP.Event.AnimationFrame</a></li><li><a href="FRP.Event.Class.html">FRP.Event.Class</a></li><li><a href="FRP.Event.Keyboard.html">FRP.Event.Keyboard</a></li><li><a href="FRP.Event.Mouse.html">FRP.Event.Mouse</a></li><li><a href="FRP.Event.Time.html">FRP.Event.Time</a></li><li><a href="FRP.Event.VBus.html">FRP.Event.VBus</a></li><li><a href="Foreign.html">Foreign</a></li><li><a href="Foreign.Index.html">Foreign.Index</a></li><li><a href="Foreign.Keys.html">Foreign.Keys</a></li><li><a href="Foreign.Object.html">Foreign.Object</a></li><li><a href="Foreign.Object.Gen.html">Foreign.Object.Gen</a></li><li><a href="Foreign.Object.ST.html">Foreign.Object.ST</a></li><li><a href="Foreign.Object.ST.Unsafe.html">Foreign.Object.ST.Unsafe</a></li><li><a href="Foreign.Object.Unsafe.html">Foreign.Object.Unsafe</a></li><li><a href="Heterogeneous.Folding.html">Heterogeneous.Folding</a></li><li><a href="Heterogeneous.Mapping.html">Heterogeneous.Mapping</a></li><li><a href="Node.Buffer.html">Node.Buffer</a></li><li><a href="Node.Buffer.Class.html">Node.Buffer.Class</a></li><li><a href="Node.Buffer.Constants.html">Node.Buffer.Constants</a></li><li><a href="Node.Buffer.Immutable.html">Node.Buffer.Immutable</a></li><li><a href="Node.Buffer.ST.html">Node.Buffer.ST</a></li><li><a href="Node.Buffer.Types.html">Node.Buffer.Types</a></li><li><a href="Node.Encoding.html">Node.Encoding</a></li><li><a href="Node.EventEmitter.html">Node.EventEmitter</a></li><li><a href="Node.EventEmitter.UtilTypes.html">Node.EventEmitter.UtilTypes</a></li><li><a href="Node.FS.html">Node.FS</a></li><li><a href="Node.FS.Aff.html">Node.FS.Aff</a></li><li><a href="Node.FS.Async.html">Node.FS.Async</a></li><li><a href="Node.FS.Constants.html">Node.FS.Constants</a></li><li><a href="Node.FS.Perms.html">Node.FS.Perms</a></li><li><a href="Node.FS.Stats.html">Node.FS.Stats</a></li><li><a href="Node.FS.Stream.html">Node.FS.Stream</a></li><li><a href="Node.FS.Sync.html">Node.FS.Sync</a></li><li><a href="Node.Path.html">Node.Path</a></li><li><a href="Node.Platform.html">Node.Platform</a></li><li><a href="Node.Process.html">Node.Process</a></li><li><a href="Node.Stream.html">Node.Stream</a></li><li><a href="Node.Stream.Aff.html">Node.Stream.Aff</a></li><li><a href="Node.Symbol.html">Node.Symbol</a></li><li><a href="Partial.html">Partial</a></li><li><a href="Partial.Unsafe.html">Partial.Unsafe</a></li><li><a href="Performance.Minibench.html">Performance.Minibench</a></li><li><a href="Pipes.html">Pipes</a></li><li><a href="Pipes.Core.html">Pipes.Core</a></li><li><a href="Pipes.Internal.html">Pipes.Internal</a></li><li><a href="Pipes.ListT.html">Pipes.ListT</a></li><li><a href="Pipes.Prelude.html">Pipes.Prelude</a></li><li><a href="Prelude.html">Prelude</a></li><li><a href="Prim.html">Prim</a></li><li><a href="Prim.Boolean.html">Prim.Boolean</a></li><li><a href="Prim.Coerce.html">Prim.Coerce</a></li><li><a href="Prim.Int.html">Prim.Int</a></li><li><a href="Prim.Ordering.html">Prim.Ordering</a></li><li><a href="Prim.Row.html">Prim.Row</a></li><li><a href="Prim.RowList.html">Prim.RowList</a></li><li><a href="Prim.Symbol.html">Prim.Symbol</a></li><li><a href="Prim.TypeError.html">Prim.TypeError</a></li><li><a href="Record.html">Record</a></li><li><a href="Record.Builder.html">Record.Builder</a></li><li><a href="Record.Studio.html">Record.Studio</a></li><li><a href="Record.Studio.Keys.html">Record.Studio.Keys</a></li><li><a href="Record.Studio.Map.html">Record.Studio.Map</a></li><li><a href="Record.Studio.MapKind.html">Record.Studio.MapKind</a></li><li><a href="Record.Studio.MapUniform.html">Record.Studio.MapUniform</a></li><li><a href="Record.Studio.Merge.html">Record.Studio.Merge</a></li><li><a href="Record.Studio.SameKeys.html">Record.Studio.SameKeys</a></li><li><a href="Record.Studio.Sequence.html">Record.Studio.Sequence</a></li><li><a href="Record.Studio.Shrink.html">Record.Studio.Shrink</a></li><li><a href="Record.Studio.SingletonRecord.html">Record.Studio.SingletonRecord</a></li><li><a href="Record.Unsafe.html">Record.Unsafe</a></li><li><a href="Record.Unsafe.Union.html">Record.Unsafe.Union</a></li><li><a href="Safe.Coerce.html">Safe.Coerce</a></li><li><a href="Spago.Generated.BuildInfo.html">Spago.Generated.BuildInfo</a></li><li><a href="Test.Spec.html">Test.Spec</a></li><li><a href="Test.Spec.Assertions.html">Test.Spec.Assertions</a></li><li><a href="Test.Spec.Assertions.String.html">Test.Spec.Assertions.String</a></li><li><a href="Test.Spec.Config.html">Test.Spec.Config</a></li><li><a href="Test.Spec.Console.html">Test.Spec.Console</a></li><li><a href="Test.Spec.Reporter.html">Test.Spec.Reporter</a></li><li><a href="Test.Spec.Reporter.Base.html">Test.Spec.Reporter.Base</a></li><li><a href="Test.Spec.Reporter.Console.html">Test.Spec.Reporter.Console</a></li><li><a href="Test.Spec.Reporter.Dot.html">Test.Spec.Reporter.Dot</a></li><li><a href="Test.Spec.Reporter.Spec.html">Test.Spec.Reporter.Spec</a></li><li><a href="Test.Spec.Reporter.Tap.html">Test.Spec.Reporter.Tap</a></li><li><a href="Test.Spec.Reporter.TeamCity.html">Test.Spec.Reporter.TeamCity</a></li><li><a href="Test.Spec.Result.html">Test.Spec.Result</a></li><li><a href="Test.Spec.Runner.html">Test.Spec.Runner</a></li><li><a href="Test.Spec.Runner.Event.html">Test.Spec.Runner.Event</a></li><li><a href="Test.Spec.Speed.html">Test.Spec.Speed</a></li><li><a href="Test.Spec.Style.html">Test.Spec.Style</a></li><li><a href="Test.Spec.Summary.html">Test.Spec.Summary</a></li><li><a href="Test.Spec.Tree.html">Test.Spec.Tree</a></li><li><a href="Type.Data.Boolean.html">Type.Data.Boolean</a></li><li><a href="Type.Data.Ordering.html">Type.Data.Ordering</a></li><li><a href="Type.Data.Symbol.html">Type.Data.Symbol</a></li><li><a href="Type.Equality.html">Type.Equality</a></li><li><a href="Type.Function.html">Type.Function</a></li><li><a href="Type.Prelude.html">Type.Prelude</a></li><li><a href="Type.Proxy.html">Type.Proxy</a></li><li><a href="Type.Row.html">Type.Row</a></li><li><a href="Type.Row.Homogeneous.html">Type.Row.Homogeneous</a></li><li><a href="Type.RowList.html">Type.RowList</a></li><li><a href="Uncurried.RWSE.html">Uncurried.RWSE</a></li><li><a href="Uncurried.RWSET.html">Uncurried.RWSET</a></li><li><a href="Uncurried.Reader.html">Uncurried.Reader</a></li><li><a href="Uncurried.ReaderT.html">Uncurried.ReaderT</a></li><li><a href="Uncurried.State.html">Uncurried.State</a></li><li><a href="Uncurried.StateT.html">Uncurried.StateT</a></li><li><a href="Uncurried.Writer.html">Uncurried.Writer</a></li><li><a href="Uncurried.WriterT.html">Uncurried.WriterT</a></li><li><a href="Unsafe.Coerce.html">Unsafe.Coerce</a></li><li><a href="Unsafe.Reference.html">Unsafe.Reference</a></li><li><a href="Web.DOM.html">Web.DOM</a></li><li><a href="Web.DOM.CharacterData.html">Web.DOM.CharacterData</a></li><li><a href="Web.DOM.ChildNode.html">Web.DOM.ChildNode</a></li><li><a href="Web.DOM.Comment.html">Web.DOM.Comment</a></li><li><a href="Web.DOM.DOMTokenList.html">Web.DOM.DOMTokenList</a></li><li><a href="Web.DOM.Document.html">Web.DOM.Document</a></li><li><a href="Web.DOM.DocumentFragment.html">Web.DOM.DocumentFragment</a></li><li><a href="Web.DOM.DocumentType.html">Web.DOM.DocumentType</a></li><li><a href="Web.DOM.Element.html">Web.DOM.Element</a></li><li><a href="Web.DOM.HTMLCollection.html">Web.DOM.HTMLCollection</a></li><li><a href="Web.DOM.Internal.Types.html">Web.DOM.Internal.Types</a></li><li><a href="Web.DOM.MutationObserver.html">Web.DOM.MutationObserver</a></li><li><a href="Web.DOM.MutationRecord.html">Web.DOM.MutationRecord</a></li><li><a href="Web.DOM.Node.html">Web.DOM.Node</a></li><li><a href="Web.DOM.NodeList.html">Web.DOM.NodeList</a></li><li><a href="Web.DOM.NodeType.html">Web.DOM.NodeType</a></li><li><a href="Web.DOM.NonDocumentTypeChildNode.html">Web.DOM.NonDocumentTypeChildNode</a></li><li><a href="Web.DOM.NonElementParentNode.html">Web.DOM.NonElementParentNode</a></li><li><a href="Web.DOM.ParentNode.html">Web.DOM.ParentNode</a></li><li><a href="Web.DOM.ProcessingInstruction.html">Web.DOM.ProcessingInstruction</a></li><li><a href="Web.DOM.ShadowRoot.html">Web.DOM.ShadowRoot</a></li><li><a href="Web.DOM.Text.html">Web.DOM.Text</a></li><li><a href="Web.Event.CustomEvent.html">Web.Event.CustomEvent</a></li><li><a href="Web.Event.Event.html">Web.Event.Event</a></li><li><a href="Web.Event.EventPhase.html">Web.Event.EventPhase</a></li><li><a href="Web.Event.EventTarget.html">Web.Event.EventTarget</a></li><li><a href="Web.Event.Internal.Types.html">Web.Event.Internal.Types</a></li><li><a href="Web.File.Blob.html">Web.File.Blob</a></li><li><a href="Web.File.File.html">Web.File.File</a></li><li><a href="Web.File.FileList.html">Web.File.FileList</a></li><li><a href="Web.File.FileReader.html">Web.File.FileReader</a></li><li><a href="Web.File.FileReader.ReadyState.html">Web.File.FileReader.ReadyState</a></li><li><a href="Web.File.Url.html">Web.File.Url</a></li><li><a href="Web.HTML.html">Web.HTML</a></li><li><a href="Web.HTML.Common.html">Web.HTML.Common</a></li><li><a href="Web.HTML.Event.BeforeUnloadEvent.html">Web.HTML.Event.BeforeUnloadEvent</a></li><li><a href="Web.HTML.Event.BeforeUnloadEvent.EventTypes.html">Web.HTML.Event.BeforeUnloadEvent.EventTypes</a></li><li><a href="Web.HTML.Event.DataTransfer.html">Web.HTML.Event.DataTransfer</a></li><li><a href="Web.HTML.Event.DataTransfer.DataTransferItem.html">Web.HTML.Event.DataTransfer.DataTransferItem</a></li><li><a href="Web.HTML.Event.DragEvent.html">Web.HTML.Event.DragEvent</a></li><li><a href="Web.HTML.Event.DragEvent.EventTypes.html">Web.HTML.Event.DragEvent.EventTypes</a></li><li><a href="Web.HTML.Event.ErrorEvent.html">Web.HTML.Event.ErrorEvent</a></li><li><a href="Web.HTML.Event.EventTypes.html">Web.HTML.Event.EventTypes</a></li><li><a href="Web.HTML.Event.HashChangeEvent.html">Web.HTML.Event.HashChangeEvent</a></li><li><a href="Web.HTML.Event.HashChangeEvent.EventTypes.html">Web.HTML.Event.HashChangeEvent.EventTypes</a></li><li><a href="Web.HTML.Event.PageTransitionEvent.html">Web.HTML.Event.PageTransitionEvent</a></li><li><a href="Web.HTML.Event.PageTransitionEvent.EventTypes.html">Web.HTML.Event.PageTransitionEvent.EventTypes</a></li><li><a href="Web.HTML.Event.PopStateEvent.html">Web.HTML.Event.PopStateEvent</a></li><li><a href="Web.HTML.Event.PopStateEvent.EventTypes.html">Web.HTML.Event.PopStateEvent.EventTypes</a></li><li><a href="Web.HTML.Event.TrackEvent.html">Web.HTML.Event.TrackEvent</a></li><li><a href="Web.HTML.Event.TrackEvent.EventTypes.html">Web.HTML.Event.TrackEvent.EventTypes</a></li><li><a href="Web.HTML.HTMLAnchorElement.html">Web.HTML.HTMLAnchorElement</a></li><li><a href="Web.HTML.HTMLAreaElement.html">Web.HTML.HTMLAreaElement</a></li><li><a href="Web.HTML.HTMLAudioElement.html">Web.HTML.HTMLAudioElement</a></li><li><a href="Web.HTML.HTMLBRElement.html">Web.HTML.HTMLBRElement</a></li><li><a href="Web.HTML.HTMLBaseElement.html">Web.HTML.HTMLBaseElement</a></li><li><a href="Web.HTML.HTMLBodyElement.html">Web.HTML.HTMLBodyElement</a></li><li><a href="Web.HTML.HTMLButtonElement.html">Web.HTML.HTMLButtonElement</a></li><li><a href="Web.HTML.HTMLCanvasElement.html">Web.HTML.HTMLCanvasElement</a></li><li><a href="Web.HTML.HTMLDListElement.html">Web.HTML.HTMLDListElement</a></li><li><a href="Web.HTML.HTMLDataElement.html">Web.HTML.HTMLDataElement</a></li><li><a href="Web.HTML.HTMLDataListElement.html">Web.HTML.HTMLDataListElement</a></li><li><a href="Web.HTML.HTMLDivElement.html">Web.HTML.HTMLDivElement</a></li><li><a href="Web.HTML.HTMLDocument.html">Web.HTML.HTMLDocument</a></li><li><a href="Web.HTML.HTMLDocument.ReadyState.html">Web.HTML.HTMLDocument.ReadyState</a></li><li><a href="Web.HTML.HTMLDocument.VisibilityState.html">Web.HTML.HTMLDocument.VisibilityState</a></li><li><a href="Web.HTML.HTMLElement.html">Web.HTML.HTMLElement</a></li><li><a href="Web.HTML.HTMLEmbedElement.html">Web.HTML.HTMLEmbedElement</a></li><li><a href="Web.HTML.HTMLFieldSetElement.html">Web.HTML.HTMLFieldSetElement</a></li><li><a href="Web.HTML.HTMLFormElement.html">Web.HTML.HTMLFormElement</a></li><li><a href="Web.HTML.HTMLHRElement.html">Web.HTML.HTMLHRElement</a></li><li><a href="Web.HTML.HTMLHeadElement.html">Web.HTML.HTMLHeadElement</a></li><li><a href="Web.HTML.HTMLHeadingElement.html">Web.HTML.HTMLHeadingElement</a></li><li><a href="Web.HTML.HTMLHtmlElement.html">Web.HTML.HTMLHtmlElement</a></li><li><a href="Web.HTML.HTMLHyperlinkElementUtils.html">Web.HTML.HTMLHyperlinkElementUtils</a></li><li><a href="Web.HTML.HTMLIFrameElement.html">Web.HTML.HTMLIFrameElement</a></li><li><a href="Web.HTML.HTMLImageElement.html">Web.HTML.HTMLImageElement</a></li><li><a href="Web.HTML.HTMLImageElement.CORSMode.html">Web.HTML.HTMLImageElement.CORSMode</a></li><li><a href="Web.HTML.HTMLImageElement.DecodingHint.html">Web.HTML.HTMLImageElement.DecodingHint</a></li><li><a href="Web.HTML.HTMLImageElement.Laziness.html">Web.HTML.HTMLImageElement.Laziness</a></li><li><a href="Web.HTML.HTMLInputElement.html">Web.HTML.HTMLInputElement</a></li><li><a href="Web.HTML.HTMLKeygenElement.html">Web.HTML.HTMLKeygenElement</a></li><li><a href="Web.HTML.HTMLLIElement.html">Web.HTML.HTMLLIElement</a></li><li><a href="Web.HTML.HTMLLabelElement.html">Web.HTML.HTMLLabelElement</a></li><li><a href="Web.HTML.HTMLLegendElement.html">Web.HTML.HTMLLegendElement</a></li><li><a href="Web.HTML.HTMLLinkElement.html">Web.HTML.HTMLLinkElement</a></li><li><a href="Web.HTML.HTMLMapElement.html">Web.HTML.HTMLMapElement</a></li><li><a href="Web.HTML.HTMLMediaElement.html">Web.HTML.HTMLMediaElement</a></li><li><a href="Web.HTML.HTMLMediaElement.CanPlayType.html">Web.HTML.HTMLMediaElement.CanPlayType</a></li><li><a href="Web.HTML.HTMLMediaElement.NetworkState.html">Web.HTML.HTMLMediaElement.NetworkState</a></li><li><a href="Web.HTML.HTMLMediaElement.ReadyState.html">Web.HTML.HTMLMediaElement.ReadyState</a></li><li><a href="Web.HTML.HTMLMetaElement.html">Web.HTML.HTMLMetaElement</a></li><li><a href="Web.HTML.HTMLMeterElement.html">Web.HTML.HTMLMeterElement</a></li><li><a href="Web.HTML.HTMLModElement.html">Web.HTML.HTMLModElement</a></li><li><a href="Web.HTML.HTMLOListElement.html">Web.HTML.HTMLOListElement</a></li><li><a href="Web.HTML.HTMLObjectElement.html">Web.HTML.HTMLObjectElement</a></li><li><a href="Web.HTML.HTMLOptGroupElement.html">Web.HTML.HTMLOptGroupElement</a></li><li><a href="Web.HTML.HTMLOptionElement.html">Web.HTML.HTMLOptionElement</a></li><li><a href="Web.HTML.HTMLOutputElement.html">Web.HTML.HTMLOutputElement</a></li><li><a href="Web.HTML.HTMLParagraphElement.html">Web.HTML.HTMLParagraphElement</a></li><li><a href="Web.HTML.HTMLParamElement.html">Web.HTML.HTMLParamElement</a></li><li><a href="Web.HTML.HTMLPreElement.html">Web.HTML.HTMLPreElement</a></li><li><a href="Web.HTML.HTMLProgressElement.html">Web.HTML.HTMLProgressElement</a></li><li><a href="Web.HTML.HTMLQuoteElement.html">Web.HTML.HTMLQuoteElement</a></li><li><a href="Web.HTML.HTMLScriptElement.html">Web.HTML.HTMLScriptElement</a></li><li><a href="Web.HTML.HTMLSelectElement.html">Web.HTML.HTMLSelectElement</a></li><li><a href="Web.HTML.HTMLSourceElement.html">Web.HTML.HTMLSourceElement</a></li><li><a href="Web.HTML.HTMLSpanElement.html">Web.HTML.HTMLSpanElement</a></li><li><a href="Web.HTML.HTMLStyleElement.html">Web.HTML.HTMLStyleElement</a></li><li><a href="Web.HTML.HTMLTableCaptionElement.html">Web.HTML.HTMLTableCaptionElement</a></li><li><a href="Web.HTML.HTMLTableCellElement.html">Web.HTML.HTMLTableCellElement</a></li><li><a href="Web.HTML.HTMLTableColElement.html">Web.HTML.HTMLTableColElement</a></li><li><a href="Web.HTML.HTMLTableDataCellElement.html">Web.HTML.HTMLTableDataCellElement</a></li><li><a href="Web.HTML.HTMLTableElement.html">Web.HTML.HTMLTableElement</a></li><li><a href="Web.HTML.HTMLTableHeaderCellElement.html">Web.HTML.HTMLTableHeaderCellElement</a></li><li><a href="Web.HTML.HTMLTableRowElement.html">Web.HTML.HTMLTableRowElement</a></li><li><a href="Web.HTML.HTMLTableSectionElement.html">Web.HTML.HTMLTableSectionElement</a></li><li><a href="Web.HTML.HTMLTemplateElement.html">Web.HTML.HTMLTemplateElement</a></li><li><a href="Web.HTML.HTMLTextAreaElement.html">Web.HTML.HTMLTextAreaElement</a></li><li><a href="Web.HTML.HTMLTimeElement.html">Web.HTML.HTMLTimeElement</a></li><li><a href="Web.HTML.HTMLTitleElement.html">Web.HTML.HTMLTitleElement</a></li><li><a href="Web.HTML.HTMLTrackElement.html">Web.HTML.HTMLTrackElement</a></li><li><a href="Web.HTML.HTMLTrackElement.ReadyState.html">Web.HTML.HTMLTrackElement.ReadyState</a></li><li><a href="Web.HTML.HTMLUListElement.html">Web.HTML.HTMLUListElement</a></li><li><a href="Web.HTML.HTMLVideoElement.html">Web.HTML.HTMLVideoElement</a></li><li><a href="Web.HTML.History.html">Web.HTML.History</a></li><li><a href="Web.HTML.Location.html">Web.HTML.Location</a></li><li><a href="Web.HTML.Navigator.html">Web.HTML.Navigator</a></li><li><a href="Web.HTML.SelectionMode.html">Web.HTML.SelectionMode</a></li><li><a href="Web.HTML.ValidityState.html">Web.HTML.ValidityState</a></li><li><a href="Web.HTML.Window.html">Web.HTML.Window</a></li><li><a href="Web.Internal.FFI.html">Web.Internal.FFI</a></li><li><a href="Web.Storage.Event.StorageEvent.html">Web.Storage.Event.StorageEvent</a></li><li><a href="Web.Storage.Storage.html">Web.Storage.Storage</a></li><li><a href="Web.UIEvent.CompositionEvent.html">Web.UIEvent.CompositionEvent</a></li><li><a href="Web.UIEvent.CompositionEvent.EventTypes.html">Web.UIEvent.CompositionEvent.EventTypes</a></li><li><a href="Web.UIEvent.EventTypes.html">Web.UIEvent.EventTypes</a></li><li><a href="Web.UIEvent.FocusEvent.html">Web.UIEvent.FocusEvent</a></li><li><a href="Web.UIEvent.FocusEvent.EventTypes.html">Web.UIEvent.FocusEvent.EventTypes</a></li><li><a href="Web.UIEvent.InputEvent.html">Web.UIEvent.InputEvent</a></li><li><a href="Web.UIEvent.InputEvent.EventTypes.html">Web.UIEvent.InputEvent.EventTypes</a></li><li><a href="Web.UIEvent.InputEvent.InputType.html">Web.UIEvent.InputEvent.InputType</a></li><li><a href="Web.UIEvent.KeyboardEvent.html">Web.UIEvent.KeyboardEvent</a></li><li><a href="Web.UIEvent.KeyboardEvent.EventTypes.html">Web.UIEvent.KeyboardEvent.EventTypes</a></li><li><a href="Web.UIEvent.MouseEvent.html">Web.UIEvent.MouseEvent</a></li><li><a href="Web.UIEvent.MouseEvent.EventTypes.html">Web.UIEvent.MouseEvent.EventTypes</a></li><li><a href="Web.UIEvent.UIEvent.html">Web.UIEvent.UIEvent</a></li><li><a href="Web.UIEvent.WheelEvent.html">Web.UIEvent.WheelEvent</a></li><li><a href="Web.UIEvent.WheelEvent.EventTypes.html">Web.UIEvent.WheelEvent.EventTypes</a></li></ul></div></main></div><div class="footer clearfix"><p>Generated by purs 0.15.15 [development build; commit: UNKNOWN]</p></div><!-- Docs search index. --><script type="text/javascript" src="./docs-search-app.js"></script><script type="text/javascript">window.DocsSearchTypeIndex = {};window.DocsSearchIndex = {};</script></body></html>
generated-docs/html/Control.Biapplicative.htmldeletedโ1358
@@ -1,1358 +0,0 @@
1โ<!DOCTYPE HTML>
2โ<html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1"><title>PureScript: Control.Biapplicative</title><link href="https://fonts.googleapis.com/css?family=Roboto+Mono|Roboto:300,400,400i,700,700i" type="text/css" rel="stylesheet"><style type="text/css">/*! normalize.css v3.0.2 | MIT License | git.io/normalize */
3โ
4โ/**
5โ * 1. Set default font family to sans-serif.
6โ * 2. Prevent iOS text size adjust after orientation change, without disabling
7โ * user zoom.
8โ */
9โ
10โhtml {
11โ font-family: sans-serif; /* 1 */
12โ -ms-text-size-adjust: 100%; /* 2 */
13โ -webkit-text-size-adjust: 100%; /* 2 */
14โ}
15โ
16โ/**
17โ * Remove default margin.
18โ */
19โ
20โbody {
21โ margin: 0;
22โ}
23โ
24โ/* HTML5 display definitions
25โ ========================================================================== */
26โ
27โ/**
28โ * Correct `block` display not defined for any HTML5 element in IE 8/9.
29โ * Correct `block` display not defined for `details` or `summary` in IE 10/11
30โ * and Firefox.
31โ * Correct `block` display not defined for `main` in IE 11.
32โ */
33โ
34โarticle,
35โaside,
36โdetails,
37โfigcaption,
38โfigure,
39โfooter,
40โheader,
41โhgroup,
42โmain,
43โmenu,
44โnav,
45โsection,
46โsummary {
47โ display: block;
48โ}
49โ
50โ/**
51โ * 1. Correct `inline-block` display not defined in IE 8/9.
52โ * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
53โ */
54โ
55โaudio,
56โcanvas,
57โprogress,
58โvideo {
59โ display: inline-block; /* 1 */
60โ vertical-align: baseline; /* 2 */
61โ}
62โ
63โ/**
64โ * Prevent modern browsers from displaying `audio` without controls.
65โ * Remove excess height in iOS 5 devices.
66โ */
67โ
68โaudio:not([controls]) {
69โ display: none;
70โ height: 0;
71โ}
72โ
73โ/**
74โ * Address `[hidden]` styling not present in IE 8/9/10.
75โ * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22.
76โ */
77โ
78โ[hidden],
79โtemplate {
80โ display: none;
81โ}
82โ
83โ/* Links
84โ ========================================================================== */
85โ
86โ/**
87โ * Remove the gray background color from active links in IE 10.
88โ */
89โ
90โa {
91โ background-color: transparent;
92โ}
93โ
94โ/**
95โ * Improve readability when focused and also mouse hovered in all browsers.
96โ */
97โ
98โa:active,
99โa:hover {
100โ outline: 0;
101โ}
102โ
103โ/* Text-level semantics
104โ ========================================================================== */
105โ
106โ/**
107โ * Address styling not present in IE 8/9/10/11, Safari, and Chrome.
108โ */
109โ
110โabbr[title] {
111โ border-bottom: 1px dotted;
112โ}
113โ
114โ/**
115โ * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
116โ */
117โ
118โb,
119โstrong {
120โ font-weight: bold;
121โ}
122โ
123โ/**
124โ * Address styling not present in Safari and Chrome.
125โ */
126โ
127โdfn {
128โ font-style: italic;
129โ}
130โ
131โ/**
132โ * Address variable `h1` font-size and margin within `section` and `article`
133โ * contexts in Firefox 4+, Safari, and Chrome.
134โ */
135โ
136โh1 {
137โ font-size: 2em;
138โ margin: 0.67em 0;
139โ}
140โ
141โ/**
142โ * Address styling not present in IE 8/9.
143โ */
144โ
145โmark {
146โ background: #ff0;
147โ color: #000;
148โ}
149โ
150โ/**
151โ * Address inconsistent and variable font size in all browsers.
152โ */
153โ
154โsmall {
155โ font-size: 80%;
156โ}
157โ
158โ/**
159โ * Prevent `sub` and `sup` affecting `line-height` in all browsers.
160โ */
161โ
162โsub,
163โsup {
164โ font-size: 75%;
165โ line-height: 0;
166โ position: relative;
167โ vertical-align: baseline;
168โ}
169โ
170โsup {
171โ top: -0.5em;
172โ}
173โ
174โsub {
175โ bottom: -0.25em;
176โ}
177โ
178โ/* Embedded content
179โ ========================================================================== */
180โ
181โ/**
182โ * Remove border when inside `a` element in IE 8/9/10.
183โ */
184โ
185โimg {
186โ border: 0;
187โ}
188โ
189โ/**
190โ * Correct overflow not hidden in IE 9/10/11.
191โ */
192โ
193โsvg:not(:root) {
194โ overflow: hidden;
195โ}
196โ
197โ/* Grouping content
198โ ========================================================================== */
199โ
200โ/**
201โ * Address margin not present in IE 8/9 and Safari.
202โ */
203โ
204โfigure {
205โ margin: 1em 40px;
206โ}
207โ
208โ/**
209โ * Address differences between Firefox and other browsers.
210โ */
211โ
212โhr {
213โ -moz-box-sizing: content-box;
214โ box-sizing: content-box;
215โ height: 0;
216โ}
217โ
218โ/**
219โ * Contain overflow in all browsers.
220โ */
221โ
222โpre {
223โ overflow: auto;
224โ}
225โ
226โ/**
227โ * Address odd `em`-unit font size rendering in all browsers.
228โ */
229โ
230โcode,
231โkbd,
232โpre,
233โsamp {
234โ font-family: monospace, monospace;
235โ font-size: 1em;
236โ}
237โ
238โ/* Forms
239โ ========================================================================== */
240โ
241โ/**
242โ * Known limitation: by default, Chrome and Safari on OS X allow very limited
243โ * styling of `select`, unless a `border` property is set.
244โ */
245โ
246โ/**
247โ * 1. Correct color not being inherited.
248โ * Known issue: affects color of disabled elements.
249โ * 2. Correct font properties not being inherited.
250โ * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
251โ */
252โ
253โbutton,
254โinput,
255โoptgroup,
256โselect,
257โtextarea {
258โ color: inherit; /* 1 */
259โ font: inherit; /* 2 */
260โ margin: 0; /* 3 */
261โ}
262โ
263โ/**
264โ * Address `overflow` set to `hidden` in IE 8/9/10/11.
265โ */
266โ
267โbutton {
268โ overflow: visible;
269โ}
270โ
271โ/**
272โ * Address inconsistent `text-transform` inheritance for `button` and `select`.
273โ * All other form control elements do not inherit `text-transform` values.
274โ * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
275โ * Correct `select` style inheritance in Firefox.
276โ */
277โ
278โbutton,
279โselect {
280โ text-transform: none;
281โ}
282โ
283โ/**
284โ * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
285โ * and `video` controls.
286โ * 2. Correct inability to style clickable `input` types in iOS.
287โ * 3. Improve usability and consistency of cursor style between image-type
288โ * `input` and others.
289โ */
290โ
291โbutton,
292โhtml input[type="button"], /* 1 */
293โinput[type="reset"],
294โinput[type="submit"] {
295โ -webkit-appearance: button; /* 2 */
296โ cursor: pointer; /* 3 */
297โ}
298โ
299โ/**
300โ * Re-set default cursor for disabled elements.
301โ */
302โ
303โbutton[disabled],
304โhtml input[disabled] {
305โ cursor: default;
306โ}
307โ
308โ/**
309โ * Remove inner padding and border in Firefox 4+.
310โ */
311โ
312โbutton::-moz-focus-inner,
313โinput::-moz-focus-inner {
314โ border: 0;
315โ padding: 0;
316โ}
317โ
318โ/**
319โ * Address Firefox 4+ setting `line-height` on `input` using `!important` in
320โ * the UA stylesheet.
321โ */
322โ
323โinput {
324โ line-height: normal;
325โ}
326โ
327โ/**
328โ * It's recommended that you don't attempt to style these elements.
329โ * Firefox's implementation doesn't respect box-sizing, padding, or width.
330โ *
331โ * 1. Address box sizing set to `content-box` in IE 8/9/10.
332โ * 2. Remove excess padding in IE 8/9/10.
333โ */
334โ
335โinput[type="checkbox"],
336โinput[type="radio"] {
337โ box-sizing: border-box; /* 1 */
338โ padding: 0; /* 2 */
339โ}
340โ
341โ/**
342โ * Fix the cursor style for Chrome's increment/decrement buttons. For certain
343โ * `font-size` values of the `input`, it causes the cursor style of the
344โ * decrement button to change from `default` to `text`.
345โ */
346โ
347โinput[type="number"]::-webkit-inner-spin-button,
348โinput[type="number"]::-webkit-outer-spin-button {
349โ height: auto;
350โ}
351โ
352โ/**
353โ * 1. Address `appearance` set to `searchfield` in Safari and Chrome.
354โ * 2. Address `box-sizing` set to `border-box` in Safari and Chrome
355โ * (include `-moz` to future-proof).
356โ */
357โ
358โinput[type="search"] {
359โ -webkit-appearance: textfield; /* 1 */
360โ -moz-box-sizing: content-box;
361โ -webkit-box-sizing: content-box; /* 2 */
362โ box-sizing: content-box;
363โ}
364โ
365โ/**
366โ * Remove inner padding and search cancel button in Safari and Chrome on OS X.
367โ * Safari (but not Chrome) clips the cancel button when the search input has
368โ * padding (and `textfield` appearance).
369โ */
370โ
371โinput[type="search"]::-webkit-search-cancel-button,
372โinput[type="search"]::-webkit-search-decoration {
373โ -webkit-appearance: none;
374โ}
375โ
376โ/**
377โ * Define consistent border, margin, and padding.
378โ */
379โ
380โfieldset {
381โ border: 1px solid #c0c0c0;
382โ margin: 0 2px;
383โ padding: 0.35em 0.625em 0.75em;
384โ}
385โ
386โ/**
387โ * 1. Correct `color` not being inherited in IE 8/9/10/11.
388โ * 2. Remove padding so people aren't caught out if they zero out fieldsets.
389โ */
390โ
391โlegend {
392โ border: 0; /* 1 */
393โ padding: 0; /* 2 */
394โ}
395โ
396โ/**
397โ * Remove default vertical scrollbar in IE 8/9/10/11.
398โ */
399โ
400โtextarea {
401โ overflow: auto;
402โ}
403โ
404โ/**
405โ * Don't inherit the `font-weight` (applied by a rule above).
406โ * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
407โ */
408โ
409โoptgroup {
410โ font-weight: bold;
411โ}
412โ
413โ/* Tables
414โ ========================================================================== */
415โ
416โ/**
417โ * Remove most spacing between table cells.
418โ */
419โ
420โtable {
421โ border-collapse: collapse;
422โ border-spacing: 0;
423โ}
424โ
425โtd,
426โth {
427โ padding: 0;
428โ}
429โ</style><style type="text/css">/** ************************************************************************* *
430โ ** CSS for HTML docs (e.g. Pursuit)
431โ **
432โ ** STRUCTURE
433โ **
434โ ** This CSS file is structured into several sections, from general to
435โ ** specific, and (mostly) alphabetically within the sections.
436โ **
437โ ** Several global element styles are used. This is not encouraged and should
438โ ** be kept to a minimum. If you want to add new styles you'll most likely
439โ ** want to add a new CSS component. See the Components section for examples.
440โ **
441โ ** CSS components use three simple naming ideas from the BEM system:
442โ ** - Block: `.my-component`
443โ ** - Element: `.my-component__item`
444โ ** - Modifier: `.my-component.my-component--highlighted`
445โ **
446โ ** Example:
447โ ** <div .my-component>
448โ ** <div .my-component__item>
449โ ** <div .my-component__item>
450โ ** ...
451โ ** <div .my-component.my-component--highlighted>
452โ ** <div .my-component__item>
453โ ** <div .my-component__item>
454โ **
455โ ** Components can be nested.
456โ **
457โ **
458โ ** TYPOGRAPHY
459โ **
460โ ** Typographic choices for sizes, line-heights and margins are based on a
461โ ** musical major third scale (4:5). This gives us a way to find numbers
462โ ** and relationships between them that are perceived as harmonic.
463โ **
464โ ** To make use of this modular scale, use a ratio of the form
465โ ** (5/4)^n
466โ ** where n โ โค, -6 โค n โค 8.
467โ **
468โ ** LESS
469โ **
470โ ** This CSS is generated by less. To compile it:
471โ **
472โ ** npm install [-g] less
473โ ** lessc app/static/pursuit.less > app/static/pursuit.css
474โ **
475โ ** ************************************************************************* */
476โ/* Section: Variables
477โ * ========================================================================== */
478โ/* Section: Document Styles
479โ * ========================================================================== */
480โ:root {
481โ color-scheme: light dark;
482โ}
483โhtml {
484โ box-sizing: border-box;
485โ /* This overflow rule prevents everything from shifting slightly to the side
486โ when moving from a page which isn't large enough to generate a scrollbar
487โ to one that is. */
488โ overflow-y: scroll;
489โ}
490โ*,
491โ*::before,
492โ*::after {
493โ box-sizing: inherit;
494โ}
495โbody {
496โ background-color: #ffffff;
497โ color: #000000;
498โ font-family: "Roboto", sans-serif;
499โ font-size: 87.5%;
500โ line-height: 1.563;
501โ}
502โ@media (prefers-color-scheme: dark) {
503โ body {
504โ background-color: #141417;
505โ color: #dedede;
506โ }
507โ}
508โ@media (min-width: 38em) {
509โ body {
510โ font-size: 100%;
511โ }
512โ}
513โ/* Section: Utility Classes
514โ * ========================================================================== */
515โ.clear-floats {
516โ clear: both;
517โ}
518โ.clearfix::before,
519โ.clearfix::after {
520โ content: " ";
521โ display: table;
522โ}
523โ.clearfix::after {
524โ clear: both;
525โ}
526โ/* Content hidden like this will still be read by a screen reader */
527โ.hide-visually {
528โ position: absolute;
529โ left: -10000px;
530โ top: auto;
531โ width: 1px;
532โ height: 1px;
533โ overflow: hidden;
534โ}
535โ/* Section: Layout
536โ * ========================================================================== */
537โ.container {
538โ display: block;
539โ max-width: 66em;
540โ margin-left: auto;
541โ margin-right: auto;
542โ padding-left: 20px;
543โ padding-right: 20px;
544โ}
545โ.col {
546โ display: block;
547โ position: relative;
548โ width: 100%;
549โ}
550โ.col.col--main {
551โ margin-bottom: 3.08em;
552โ}
553โ.col.col--aside {
554โ margin-bottom: 2.44em;
555โ}
556โ@media (min-width: 52em) {
557โ .container {
558โ padding-left: 30px;
559โ padding-right: 30px;
560โ }
561โ .col.col--main {
562โ float: left;
563โ width: 63.655%;
564โ /* 66.6โฆ% - 30px */
565โ }
566โ .col.col--aside {
567โ float: right;
568โ font-size: 87.5%;
569โ width: 33.333333%;
570โ }
571โ}
572โ@media (min-width: 66em) {
573โ .col.col--aside {
574โ font-size: inherit;
575โ }
576โ}
577โ/* Footer
578โ * Based on http://www.lwis.net/journal/2008/02/08/pure-css-sticky-footer/
579โ * Except we don't support IE6
580โ * -------------------------------------------------------------------------- */
581โhtml,
582โbody {
583โ height: 100%;
584โ}
585โ.everything-except-footer {
586โ min-height: 100%;
587โ padding-bottom: 3em;
588โ}
589โ.footer {
590โ position: relative;
591โ height: 3em;
592โ margin-top: -3em;
593โ width: 100%;
594โ text-align: center;
595โ background-color: #1d222d;
596โ color: #f0f0f0;
597โ}
598โ@media (prefers-color-scheme: dark) {
599โ .footer {
600โ background-color: #1d222d;
601โ color: #f0f0f0;
602โ }
603โ}
604โ.footer * {
605โ margin-bottom: 0;
606โ}
607โ/* Section: Element Styles
608โ *
609โ * Have as few of these as possible and keep them general, because they will
610โ * influence every component hereafter.
611โ * ========================================================================== */
612โ:target {
613โ background-color: #f1f5f9;
614โ}
615โ@media (prefers-color-scheme: dark) {
616โ :target {
617โ background-color: #232327;
618โ }
619โ}
620โa,
621โa:visited {
622โ color: #c4953a;
623โ text-decoration: none;
624โ font-weight: bold;
625โ}
626โ@media (prefers-color-scheme: dark) {
627โ a,
628โ a:visited {
629โ color: #d8ac55;
630โ }
631โ}
632โa:hover {
633โ color: #7b5904;
634โ text-decoration: none;
635โ}
636โ@media (prefers-color-scheme: dark) {
637โ a:hover {
638โ color: #f0dcab;
639โ }
640โ}
641โcode,
642โpre {
643โ background-color: #f1f5f9;
644โ border-radius: 3px;
645โ color: #194a5b;
646โ font-family: "Roboto Mono", monospace;
647โ font-size: 87.5%;
648โ}
649โ@media (prefers-color-scheme: dark) {
650โ code,
651โ pre {
652โ background-color: #232327;
653โ color: #c1d3da;
654โ }
655โ}
656โ:target code,
657โ:target pre {
658โ background-color: #dfe8f1;
659โ}
660โ@media (prefers-color-scheme: dark) {
661โ :target code,
662โ :target pre {
663โ background-color: #2f2f34;
664โ }
665โ}
666โcode {
667โ padding: 0.2em 0;
668โ margin: 0;
669โ white-space: pre-wrap;
670โ word-wrap: break-word;
671โ}
672โcode::before,
673โcode::after {
674โ letter-spacing: -0.2em;
675โ content: "\00a0";
676โ}
677โa > code {
678โ font-weight: normal;
679โ}
680โa > code::before {
681โ content: "๐ก";
682โ letter-spacing: 0.33em;
683โ}
684โa:hover > code {
685โ color: #c4953a;
686โ}
687โ@media (prefers-color-scheme: dark) {
688โ a:hover > code {
689โ color: #d8ac55;
690โ }
691โ}
692โpre {
693โ margin-top: 0;
694โ margin-bottom: 0;
695โ padding: 1em 1.25rem;
696โ /* Using rem here to align with lists etc. */
697โ overflow: auto;
698โ white-space: pre;
699โ word-wrap: normal;
700โ}
701โpre code {
702โ background-color: transparent;
703โ border: 0;
704โ font-size: 100%;
705โ max-width: auto;
706โ padding: 0;
707โ margin: 0;
708โ overflow: visible;
709โ line-height: inherit;
710โ white-space: pre;
711โ word-break: normal;
712โ word-wrap: normal;
713โ}
714โpre code::before,
715โpre code::after {
716โ content: normal;
717โ}
718โh1 {
719โ font-size: 3.052em;
720โ font-weight: 300;
721โ letter-spacing: -0.5px;
722โ line-height: 1.125;
723โ margin-top: 1.563rem;
724โ margin-bottom: 1.25rem;
725โ}
726โ@media (min-width: 52em) {
727โ h1 {
728โ font-size: 3.814em;
729โ margin-top: 5.96rem;
730โ }
731โ}
732โh2 {
733โ font-size: 1.953em;
734โ font-weight: normal;
735โ line-height: 1.25;
736โ margin-top: 3.052rem;
737โ margin-bottom: 1rem;
738โ}
739โh3 {
740โ font-size: 1.563em;
741โ font-weight: normal;
742โ line-height: 1.25;
743โ margin-top: 2.441rem;
744โ margin-bottom: 1rem;
745โ}
746โh4 {
747โ font-size: 1.25em;
748โ font-weight: normal;
749โ margin-top: 2.441rem;
750โ margin-bottom: 1rem;
751โ}
752โh1 + h2,
753โh1 + h3,
754โh1 + h4,
755โh2 + h3,
756โh2 + h4,
757โh3 + h4 {
758โ margin-top: 1rem;
759โ}
760โhr {
761โ border: none;
762โ height: 1px;
763โ background-color: #cccccc;
764โ}
765โ@media (prefers-color-scheme: dark) {
766โ hr {
767โ background-color: #43434e;
768โ }
769โ}
770โimg {
771โ border-style: none;
772โ max-width: 100%;
773โ}
774โp {
775โ font-size: 1em;
776โ margin-top: 1rem;
777โ margin-bottom: 1rem;
778โ}
779โtable {
780โ border-bottom: 1px solid #cccccc;
781โ border-collapse: collapse;
782โ border-spacing: 0;
783โ margin-top: 1rem;
784โ margin-bottom: 1rem;
785โ width: 100%;
786โ}
787โ@media (prefers-color-scheme: dark) {
788โ table {
789โ border-bottom-color: #43434e;
790โ }
791โ}
792โtd,
793โth {
794โ text-align: left;
795โ padding: 0.41em 0.51em;
796โ}
797โtd {
798โ border-top: 1px solid #cccccc;
799โ}
800โ@media (prefers-color-scheme: dark) {
801โ td {
802โ border-top-color: #43434e;
803โ }
804โ}
805โtd:first-child,
806โth:first-child {
807โ padding-left: 0;
808โ}
809โtd:last-child,
810โth:last-child {
811โ padding-right: 0;
812โ}
813โul {
814โ list-style-type: none;
815โ margin-top: 1rem;
816โ margin-bottom: 1rem;
817โ padding-left: 0;
818โ}
819โul li {
820โ position: relative;
821โ padding-left: 1.25em;
822โ}
823โul li::before {
824โ position: absolute;
825โ color: #a0a0a0;
826โ content: "โ";
827โ display: inline-block;
828โ margin-left: -1.25em;
829โ width: 1.25em;
830โ}
831โ@media (prefers-color-scheme: dark) {
832โ ul li::before {
833โ color: #a0a0a0;
834โ }
835โ}
836โ/* Tying this tightly to ul at the moment because it's a slight variation thereof */
837โul.ul--search li::before {
838โ content: "โฒ";
839โ top: -0.2em;
840โ transform: rotate(-45deg);
841โ}
842โol {
843โ margin-top: 1rem;
844โ margin-bottom: 1rem;
845โ padding-left: 1.25em;
846โ}
847โol li {
848โ position: relative;
849โ padding-left: 0;
850โ}
851โ/* Section: Components
852โ * ========================================================================== */
853โ/* Component: Badge
854โ * -------------------------------------------------------------------------- */
855โ.badge {
856โ position: relative;
857โ top: -0.1em;
858โ display: inline-block;
859โ background-color: #000000;
860โ border-radius: 1.3em;
861โ color: #ffffff;
862โ font-size: 77%;
863โ font-weight: bold;
864โ line-height: 1.563;
865โ text-align: center;
866โ height: 1.5em;
867โ width: 1.5em;
868โ}
869โ@media (prefers-color-scheme: dark) {
870โ .badge {
871โ background-color: #dedede;
872โ color: #141417;
873โ }
874โ}
875โ.badge.badge--package {
876โ background-color: #c4953a;
877โ letter-spacing: -0.1em;
878โ}
879โ@media (prefers-color-scheme: dark) {
880โ .badge.badge--package {
881โ background-color: #d8ac55;
882โ }
883โ}
884โ.badge.badge--module {
885โ background-color: #75B134;
886โ}
887โ/* Component: Declarations
888โ * -------------------------------------------------------------------------- */
889โ.decl__title {
890โ position: relative;
891โ padding-bottom: 0.328em;
892โ margin-bottom: 0.262em;
893โ}
894โ.decl__source {
895โ display: block;
896โ float: right;
897โ font-size: 64%;
898โ position: relative;
899โ top: 0.57em;
900โ}
901โ.decl__anchor,
902โ.decl__anchor:visited {
903โ position: absolute;
904โ left: -0.8em;
905โ color: #bababa;
906โ}
907โ@media (prefers-color-scheme: dark) {
908โ .decl__anchor,
909โ .decl__anchor:visited {
910โ color: #878787;
911โ }
912โ}
913โ.decl__anchor:hover {
914โ color: #c4953a;
915โ}
916โ@media (prefers-color-scheme: dark) {
917โ .decl__anchor:hover {
918โ color: #d8ac55;
919โ }
920โ}
921โ.decl__signature {
922โ background-color: transparent;
923โ border-radius: 0;
924โ border-top: 1px solid #cccccc;
925โ border-bottom: 1px solid #cccccc;
926โ padding: 0;
927โ}
928โ@media (prefers-color-scheme: dark) {
929โ .decl__signature {
930โ border-top-color: #43434e;
931โ border-bottom-color: #43434e;
932โ }
933โ}
934โ.decl__signature code {
935โ display: block;
936โ padding: 0.328em 0;
937โ padding-left: 2.441em;
938โ text-indent: -2.441em;
939โ white-space: normal;
940โ}
941โ.decl__role {
942โ font-family: "Roboto", sans-serif;
943โ font-style: italic;
944โ font-weight: normal;
945โ}
946โ/* See https://stackoverflow.com/a/32162038
947โ Content licensed under CC BY-SA 3.0
948โ*/
949โ.decl__role_hover[title] {
950โ /* Remove line that appears under abbr element */
951โ border-bottom: none;
952โ text-decoration: none;
953โ /* Ensure cursor doesn't change to question mark */
954โ cursor: inherit;
955โ}
956โ.decl__role_nominal::after {
957โ content: "nominal";
958โ}
959โ.decl__role_phantom::after {
960โ content: "phantom";
961โ}
962โ.decl__kind {
963โ border-bottom: 1px solid #cccccc;
964โ}
965โ@media (prefers-color-scheme: dark) {
966โ .decl__kind {
967โ border-bottom-color: #43434e;
968โ }
969โ}
970โ:target .decl__signature,
971โ:target .decl__signature code {
972โ /* We want the background to be transparent, even when the parent is a target */
973โ background-color: transparent;
974โ}
975โ.decl__body .keyword,
976โ.decl__body .syntax {
977โ color: #0b71b4;
978โ}
979โ@media (prefers-color-scheme: dark) {
980โ .decl__body .keyword,
981โ .decl__body .syntax {
982โ color: #3796d5;
983โ }
984โ}
985โ.decl__child_comments {
986โ margin-top: 1rem;
987โ margin-bottom: 1rem;
988โ}
989โ/* Component: Dependency Link
990โ * -------------------------------------------------------------------------- */
991โ.deplink {
992โ /* Currently no root styles, but keep the class as a namespace */
993โ}
994โ.deplink__link {
995โ display: inline-block;
996โ margin-right: 0.41em;
997โ}
998โ.deplink__version {
999โ color: #666666;
1000โ display: inline-block;
1001โ font-size: 0.8em;
1002โ line-height: 1;
1003โ}
1004โ@media (prefers-color-scheme: dark) {
1005โ .deplink__version {
1006โ color: #a0a0a0;
1007โ }
1008โ}
1009โ/* Component: Grouped List
1010โ * -------------------------------------------------------------------------- */
1011โ.grouped-list {
1012โ border-top: 1px solid #cccccc;
1013โ margin: 0 0 2.44em 0;
1014โ}
1015โ@media (prefers-color-scheme: dark) {
1016โ .grouped-list {
1017โ border-top-color: #43434e;
1018โ }
1019โ}
1020โ.grouped-list__title {
1021โ color: #666666;
1022โ font-size: 0.8em;
1023โ font-weight: 300;
1024โ letter-spacing: 1px;
1025โ margin: 0.8em 0 -0.1em 0;
1026โ text-transform: uppercase;
1027โ}
1028โ@media (prefers-color-scheme: dark) {
1029โ .grouped-list__title {
1030โ border-top-color: #a0a0a0;
1031โ }
1032โ}
1033โ.grouped-list__item {
1034โ margin: 0;
1035โ}
1036โ/* Component: Message
1037โ * -------------------------------------------------------------------------- */
1038โ.message {
1039โ border: 5px solid;
1040โ border-radius: 5px;
1041โ padding: 1em !important;
1042โ}
1043โ.message.message--error {
1044โ background-color: #fff0f0;
1045โ border-color: #c85050;
1046โ}
1047โ@media (prefers-color-scheme: dark) {
1048โ .message.message--error {
1049โ background-color: #6b0e0e;
1050โ border-color: #c85050;
1051โ }
1052โ}
1053โ.message.message--not-available {
1054โ background-color: #f0f096;
1055โ border-color: #e3e33d;
1056โ}
1057โ@media (prefers-color-scheme: dark) {
1058โ .message.message--not-available {
1059โ background-color: #56560b;
1060โ border-color: #b0b017;
1061โ }
1062โ}
1063โ/* Component: Multi Col
1064โ * Multiple columns side by side
1065โ * -------------------------------------------------------------------------- */
1066โ.multi-col {
1067โ margin-bottom: 2.44em;
1068โ}
1069โ.multi-col__col {
1070โ display: block;
1071โ padding-right: 1em;
1072โ position: relative;
1073โ width: 100%;
1074โ}
1075โ@media (min-width: 38em) and (max-width: 51.999999em) {
1076โ .multi-col__col {
1077โ float: left;
1078โ width: 50%;
1079โ }
1080โ .multi-col__col:nth-child(2n+3) {
1081โ clear: both;
1082โ }
1083โ}
1084โ@media (min-width: 52em) {
1085โ .multi-col__col {
1086โ float: left;
1087โ width: 33.333333%;
1088โ }
1089โ .multi-col__col:nth-child(3n+4) {
1090โ clear: both;
1091โ }
1092โ}
1093โ/* Component: Page Title
1094โ * -------------------------------------------------------------------------- */
1095โ.page-title {
1096โ margin: 4.77em 0 1.56em;
1097โ padding-bottom: 1.25em;
1098โ position: relative;
1099โ}
1100โ.page-title__title {
1101โ margin: 0 0 0 -0.05em;
1102โ /* Visually align on left edge */
1103โ}
1104โ.page-title__label {
1105โ position: relative;
1106โ color: #666666;
1107โ font-size: 0.8rem;
1108โ font-weight: 300;
1109โ letter-spacing: 1px;
1110โ margin-bottom: -0.8em;
1111โ text-transform: uppercase;
1112โ z-index: 1;
1113โ}
1114โ@media (prefers-color-scheme: dark) {
1115โ .page-title__label {
1116โ color: #a0a0a0;
1117โ }
1118โ}
1119โ/* Component: Top Banner
1120โ * -------------------------------------------------------------------------- */
1121โ.top-banner {
1122โ background-color: #1d222d;
1123โ color: #f0f0f0;
1124โ font-weight: normal;
1125โ}
1126โ@media (prefers-color-scheme: dark) {
1127โ .top-banner {
1128โ background-color: #1d222d;
1129โ color: #f0f0f0;
1130โ }
1131โ}
1132โ.top-banner__logo,
1133โ.top-banner__logo:visited {
1134โ float: left;
1135โ color: #f0f0f0;
1136โ font-size: 2.44em;
1137โ font-weight: 300;
1138โ line-height: 90px;
1139โ margin: 0;
1140โ}
1141โ@media (prefers-color-scheme: dark) {
1142โ .top-banner__logo,
1143โ .top-banner__logo:visited {
1144โ color: #f0f0f0;
1145โ }
1146โ}
1147โ.top-banner__logo:hover {
1148โ color: #c4953a;
1149โ text-decoration: none;
1150โ}
1151โ.top-banner__form {
1152โ margin-bottom: 1.25em;
1153โ}
1154โ.top-banner__form input {
1155โ border: 1px solid #1d222d;
1156โ border-radius: 3px;
1157โ background-color: #ffffff;
1158โ color: #1d222d;
1159โ font-weight: 300;
1160โ line-height: 2;
1161โ padding: 0.21em 0.512em;
1162โ width: 100%;
1163โ}
1164โ@media (prefers-color-scheme: dark) {
1165โ .top-banner__form input {
1166โ border-color: #1d222d;
1167โ background-color: #141417;
1168โ color: #dedede;
1169โ }
1170โ}
1171โ.top-banner__actions {
1172โ float: right;
1173โ text-align: right;
1174โ}
1175โ.top-banner__actions__item {
1176โ display: inline-block;
1177โ line-height: 90px;
1178โ margin: 0;
1179โ padding-left: 1.25em;
1180โ}
1181โ.top-banner__actions__item:first-child {
1182โ padding-left: 0;
1183โ}
1184โ.top-banner__actions__item a,
1185โ.top-banner__actions__item a:visited {
1186โ color: #f0f0f0;
1187โ}
1188โ@media (prefers-color-scheme: dark) {
1189โ .top-banner__actions__item a,
1190โ .top-banner__actions__item a:visited {
1191โ color: #f0f0f0;
1192โ }
1193โ}
1194โ.top-banner__actions__item a:hover {
1195โ color: #c4953a;
1196โ}
1197โ@media (prefers-color-scheme: dark) {
1198โ .top-banner__actions__item a:hover {
1199โ color: #d8ac55;
1200โ }
1201โ}
1202โ@media (min-width: 38em) {
1203โ .top-banner__logo {
1204โ float: left;
1205โ width: 25%;
1206โ }
1207โ .top-banner__form {
1208โ float: left;
1209โ line-height: 90px;
1210โ margin-bottom: 0;
1211โ width: 50%;
1212โ }
1213โ .top-banner__actions {
1214โ float: right;
1215โ width: 25%;
1216โ }
1217โ}
1218โ/* Component: Search Results
1219โ * -------------------------------------------------------------------------- */
1220โ.result.result--empty {
1221โ font-size: 1.25em;
1222โ}
1223โ.result__title {
1224โ font-size: 1.25em;
1225โ margin-bottom: 0.2rem;
1226โ}
1227โ.result__badge {
1228โ margin-left: -0.1em;
1229โ}
1230โ.result__body > *:first-child {
1231โ margin-top: 0!important;
1232โ}
1233โ.result__body > *:last-child {
1234โ margin-bottom: 0!important;
1235โ}
1236โ.result__signature {
1237โ background-color: transparent;
1238โ border-radius: 0;
1239โ border-top: 1px solid #cccccc;
1240โ border-bottom: 1px solid #cccccc;
1241โ padding: 0.328em 0;
1242โ}
1243โ@media (prefers-color-scheme: dark) {
1244โ .result__signature {
1245โ border-top-color: #43434e;
1246โ border-bottom-color: #43434e;
1247โ }
1248โ}
1249โ.result__signature code {
1250โ display: block;
1251โ padding-left: 2.441em;
1252โ text-indent: -2.441em;
1253โ white-space: normal;
1254โ}
1255โ.result__actions {
1256โ margin-top: 0.2rem;
1257โ}
1258โ.result__actions__item {
1259โ font-size: 80%;
1260โ}
1261โ.result__actions__item + .result__actions__item {
1262โ margin-left: 0.65em;
1263โ}
1264โ/* Component: Version Selector
1265โ * -------------------------------------------------------------------------- */
1266โ.version-selector {
1267โ margin-bottom: 0.8em;
1268โ}
1269โ@media (min-width: 38em) {
1270โ .version-selector {
1271โ position: absolute;
1272โ top: 0.8em;
1273โ right: 0;
1274โ margin-bottom: 0;
1275โ }
1276โ}
1277โ/* Section: FIXME
1278โ * These styles should be cleaned up
1279โ * ========================================================================== */
1280โ/* Help paragraphs */
1281โ.help {
1282โ padding: 5px 0;
1283โ}
1284โ.help h3 {
1285โ /* FIXME: target with class */
1286โ margin-top: 16px;
1287โ}
1288โ/* Section: Markdown
1289โ * Github rendered README
1290โ * ========================================================================== */
1291โ.markdown-body {
1292โ /*
1293โ Useful for narrow screens, such as mobiles. Documentation often contains URLs
1294โ which would otherwise force the page to become wider, and force creation of
1295โ horizontal scrollbars. Yuck.
1296โ */
1297โ word-wrap: break-word;
1298โ}
1299โ.markdown-body > *:first-child {
1300โ margin-top: 0 !important;
1301โ}
1302โ.markdown-body > *:last-child {
1303โ margin-bottom: 0 !important;
1304โ}
1305โ.markdown-body a:not([href]) {
1306โ color: inherit;
1307โ text-decoration: none;
1308โ}
1309โ.markdown-body blockquote {
1310โ margin: 0;
1311โ padding: 0 1em;
1312โ color: #777;
1313โ border-left: 0.25em solid #ddd;
1314โ}
1315โ@media (prefers-color-scheme: dark) {
1316โ .markdown-body blockquote {
1317โ border-left-color: #444;
1318โ }
1319โ}
1320โ.markdown-body blockquote > :first-child {
1321โ margin-top: 0;
1322โ}
1323โ.markdown-body blockquote > :last-child {
1324โ margin-bottom: 0;
1325โ}
1326โ.markdown-body .anchor {
1327โ /* We hide the anchor because the link doesn't point to a valid location */
1328โ display: none;
1329โ}
1330โ.markdown-body .pl-k {
1331โ /* Keyword */
1332โ color: #a0a0a0;
1333โ}
1334โ@media (prefers-color-scheme: dark) {
1335โ .markdown-body .pl-k {
1336โ color: #676767;
1337โ }
1338โ}
1339โ.markdown-body .pl-c1,
1340โ.markdown-body .pl-en {
1341โ /* Not really sure what this is */
1342โ color: #39d;
1343โ}
1344โ.markdown-body .pl-s {
1345โ /* String literals */
1346โ color: #1a1;
1347โ}
1348โ.markdown-body .pl-cce {
1349โ /* String literal escape sequences */
1350โ color: #921;
1351โ}
1352โ.markdown-body .pl-smi {
1353โ /* type variables? */
1354โ color: #62b;
1355โ}
1356โ</style></head><body><div class="everything-except-footer"><div class="top-banner clearfix"><div class="container clearfix"><div style="float: left; font-size: 2.44em; font-weight: 300; line-height: 90px; margin: 0">PureScript API documentation</div><div class="top-banner__actions"><div class="top-banner__actions__item"><a href="index.html">Index</a></div></div></div></div><main class="container clearfix" role="main"><div class="page-title clearfix"><div class="page-title__label">Module</div><h1 class="page-title__title">Control.Biapplicative</h1></div><div class="col col--main"><div class="decl" id="t:Biapplicative"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#t:Biapplicative">#</a><span>Biapplicative</span> </h3><div class="decl__body"><pre class="decl__signature"><code class="decl__kind"><span class="keyword">class</span> <a href="Control.Biapplicative.html#t:Biapplicative" title="Control.Biapplicative.Biapplicative"><span class="ctor">Biapplicative</span></a> <span class="syntax">::</span> <span class="syntax">(</span><a href="Prim.html#t:Type" title="Prim.Type"><span class="ctor">Type</span></a> <span class="syntax">-></span> <a href="Prim.html#t:Type" title="Prim.Type"><span class="ctor">Type</span></a> <span class="syntax">-></span> <a href="Prim.html#t:Type" title="Prim.Type"><span class="ctor">Type</span></a><span class="syntax">)</span> <span class="syntax">-></span> <a href="Prim.html#t:Constraint" title="Prim.Constraint"><span class="ctor">Constraint</span></a></code><code><span class="keyword">class</span> <span class="syntax">(</span><a href="Control.Biapply.html#t:Biapply" title="Control.Biapply.Biapply"><span class="ctor">Biapply</span></a> w<span class="syntax">)</span> <span class="syntax"><=</span> <a href="Control.Biapplicative.html#t:Biapplicative" title="Control.Biapplicative.Biapplicative"><span class="ctor">Biapplicative</span></a> w <span class="keyword">where</span></code></pre><p><code>Biapplicative</code> captures type constructors of two arguments which support lifting of
1357โfunctions of zero or more arguments, in the sense of <code>Applicative</code>.</p>
1358โ<h4>Members</h4><ul><li id="v:bipure"><code><a href="Control.Biapplicative.html#v:bipure" title="Control.Biapplicative.bipure"><span class="ident">bipure</span></a> <span class="syntax">::</span> <span class="keyword">forall</span> <span class="syntax"></span>a <span class="syntax"></span>b<span class="syntax">.</span> a <span class="syntax">-></span> b <span class="syntax">-></span> w a b</code></li></ul><h4>Instances</h4><ul><li id="v:biapplicativeTuple"><code><a href="Control.Biapplicative.html#t:Biapplicative" title="Control.Biapplicative.Biapplicative"><span class="ctor">Biapplicative</span></a> <a href="Data.Tuple.html#t:Tuple" title="Data.Tuple.Tuple"><span class="ctor">Tuple</span></a></code></li></ul></div></div></div><div class="col col--aside"><h3>Modules</h3><ul><li><a href="Ansi.Codes.html">Ansi.Codes</a></li><li><a href="Ansi.Output.html">Ansi.Output</a></li><li><a href="Bolson.Control.html">Bolson.Control</a></li><li><a href="Bolson.Core.html">Bolson.Core</a></li><li><a href="Control.Alt.html">Control.Alt</a></li><li><a href="Control.Alternative.html">Control.Alternative</a></li><li><a href="Control.Applicative.html">Control.Applicative</a></li><li><a href="Control.Apply.html">Control.Apply</a></li><li><a href="Control.Biapplicative.html">Control.Biapplicative</a></li><li><a href="Control.Biapply.html">Control.Biapply</a></li><li><a href="Control.Bind.html">Control.Bind</a></li><li><a href="Control.Category.html">Control.Category</a></li><li><a href="Control.Comonad.html">Control.Comonad</a></li><li><a href="Control.Comonad.Cofree.html">Control.Comonad.Cofree</a></li><li><a href="Control.Comonad.Cofree.Class.html">Control.Comonad.Cofree.Class</a></li><li><a href="Control.Comonad.Env.html">Control.Comonad.Env</a></li><li><a href="Control.Comonad.Env.Class.html">Control.Comonad.Env.Class</a></li><li><a href="Control.Comonad.Env.Trans.html">Control.Comonad.Env.Trans</a></li><li><a href="Control.Comonad.Store.html">Control.Comonad.Store</a></li><li><a href="Control.Comonad.Store.Class.html">Control.Comonad.Store.Class</a></li><li><a href="Control.Comonad.Store.Trans.html">Control.Comonad.Store.Trans</a></li><li><a href="Control.Comonad.Traced.html">Control.Comonad.Traced</a></li><li><a href="Control.Comonad.Traced.Class.html">Control.Comonad.Traced.Class</a></li><li><a href="Control.Comonad.Traced.Trans.html">Control.Comonad.Traced.Trans</a></li><li><a href="Control.Comonad.Trans.Class.html">Control.Comonad.Trans.Class</a></li><li><a href="Control.Extend.html">Control.Extend</a></li><li><a href="Control.Lazy.html">Control.Lazy</a></li><li><a href="Control.Monad.html">Control.Monad</a></li><li><a href="Control.Monad.Cont.html">Control.Monad.Cont</a></li><li><a href="Control.Monad.Cont.Class.html">Control.Monad.Cont.Class</a></li><li><a href="Control.Monad.Cont.Trans.html">Control.Monad.Cont.Trans</a></li><li><a href="Control.Monad.Error.Class.html">Control.Monad.Error.Class</a></li><li><a href="Control.Monad.Except.html">Control.Monad.Except</a></li><li><a href="Control.Monad.Except.Trans.html">Control.Monad.Except.Trans</a></li><li><a href="Control.Monad.Fork.Class.html">Control.Monad.Fork.Class</a></li><li><a href="Control.Monad.Free.html">Control.Monad.Free</a></li><li><a href="Control.Monad.Free.Class.html">Control.Monad.Free.Class</a></li><li><a href="Control.Monad.Gen.html">Control.Monad.Gen</a></li><li><a href="Control.Monad.Gen.Class.html">Control.Monad.Gen.Class</a></li><li><a href="Control.Monad.Gen.Common.html">Control.Monad.Gen.Common</a></li><li><a href="Control.Monad.Identity.Trans.html">Control.Monad.Identity.Trans</a></li><li><a href="Control.Monad.List.Trans.html">Control.Monad.List.Trans</a></li><li><a href="Control.Monad.Maybe.Trans.html">Control.Monad.Maybe.Trans</a></li><li><a href="Control.Monad.Morph.html">Control.Monad.Morph</a></li><li><a href="Control.Monad.RWS.html">Control.Monad.RWS</a></li><li><a href="Control.Monad.RWS.Trans.html">Control.Monad.RWS.Trans</a></li><li><a href="Control.Monad.Reader.html">Control.Monad.Reader</a></li><li><a href="Control.Monad.Reader.Class.html">Control.Monad.Reader.Class</a></li><li><a href="Control.Monad.Reader.Trans.html">Control.Monad.Reader.Trans</a></li><li><a href="Control.Monad.Rec.Class.html">Control.Monad.Rec.Class</a></li><li><a href="Control.Monad.ST.html">Control.Monad.ST</a></li><li><a href="Control.Monad.ST.Class.html">Control.Monad.ST.Class</a></li><li><a href="Control.Monad.ST.Global.html">Control.Monad.ST.Global</a></li><li><a href="Control.Monad.ST.Internal.html">Control.Monad.ST.Internal</a></li><li><a href="Control.Monad.ST.Ref.html">Control.Monad.ST.Ref</a></li><li><a href="Control.Monad.ST.Uncurried.html">Control.Monad.ST.Uncurried</a></li><li><a href="Control.Monad.State.html">Control.Monad.State</a></li><li><a href="Control.Monad.State.Class.html">Control.Monad.State.Class</a></li><li><a href="Control.Monad.State.Trans.html">Control.Monad.State.Trans</a></li><li><a href="Control.Monad.Trampoline.html">Control.Monad.Trampoline</a></li><li><a href="Control.Monad.Trans.Class.html">Control.Monad.Trans.Class</a></li><li><a href="Control.Monad.Writer.html">Control.Monad.Writer</a></li><li><a href="Control.Monad.Writer.Class.html">Control.Monad.Writer.Class</a></li><li><a href="Control.Monad.Writer.Trans.html">Control.Monad.Writer.Trans</a></li><li><a href="Control.MonadPlus.html">Control.MonadPlus</a></li><li><a href="Control.Parallel.html">Control.Parallel</a></li><li><a href="Control.Parallel.Class.html">Control.Parallel.Class</a></li><li><a href="Control.Plus.html">Control.Plus</a></li><li><a href="Control.Semigroupoid.html">Control.Semigroupoid</a></li><li><a href="Data.Array.html">Data.Array</a></li><li><a href="Data.Array.NonEmpty.html">Data.Array.NonEmpty</a></li><li><a href="Data.Array.NonEmpty.Internal.html">Data.Array.NonEmpty.Internal</a></li><li><a href="Data.Array.Partial.html">Data.Array.Partial</a></li><li><a href="Data.Array.ST.html">Data.Array.ST</a></li><li><a href="Data.Array.ST.Iterator.html">Data.Array.ST.Iterator</a></li><li><a href="Data.Array.ST.Partial.html">Data.Array.ST.Partial</a></li><li><a href="Data.ArrayBuffer.Types.html">Data.ArrayBuffer.Types</a></li><li><a href="Data.Bifoldable.html">Data.Bifoldable</a></li><li><a href="Data.Bifunctor.html">Data.Bifunctor</a></li><li><a href="Data.Bifunctor.Join.html">Data.Bifunctor.Join</a></li><li><a href="Data.Bitraversable.html">Data.Bitraversable</a></li><li><a href="Data.Boolean.html">Data.Boolean</a></li><li><a href="Data.BooleanAlgebra.html">Data.BooleanAlgebra</a></li><li><a href="Data.Bounded.html">Data.Bounded</a></li><li><a href="Data.Bounded.Generic.html">Data.Bounded.Generic</a></li><li><a href="Data.CatList.html">Data.CatList</a></li><li><a href="Data.CatQueue.html">Data.CatQueue</a></li><li><a href="Data.Char.html">Data.Char</a></li><li><a href="Data.Char.Gen.html">Data.Char.Gen</a></li><li><a href="Data.CommutativeRing.html">Data.CommutativeRing</a></li><li><a href="Data.Compactable.html">Data.Compactable</a></li><li><a href="Data.Comparison.html">Data.Comparison</a></li><li><a href="Data.Const.html">Data.Const</a></li><li><a href="Data.Coyoneda.html">Data.Coyoneda</a></li><li><a href="Data.Date.html">Data.Date</a></li><li><a href="Data.Date.Component.html">Data.Date.Component</a></li><li><a href="Data.Date.Component.Gen.html">Data.Date.Component.Gen</a></li><li><a href="Data.Date.Gen.html">Data.Date.Gen</a></li><li><a href="Data.DateTime.html">Data.DateTime</a></li><li><a href="Data.DateTime.Gen.html">Data.DateTime.Gen</a></li><li><a href="Data.DateTime.Instant.html">Data.DateTime.Instant</a></li><li><a href="Data.Decidable.html">Data.Decidable</a></li><li><a href="Data.Decide.html">Data.Decide</a></li><li><a href="Data.Distributive.html">Data.Distributive</a></li><li><a href="Data.Divide.html">Data.Divide</a></li><li><a href="Data.Divisible.html">Data.Divisible</a></li><li><a href="Data.DivisionRing.html">Data.DivisionRing</a></li><li><a href="Data.Either.html">Data.Either</a></li><li><a href="Data.Either.Inject.html">Data.Either.Inject</a></li><li><a href="Data.Either.Nested.html">Data.Either.Nested</a></li><li><a href="Data.Enum.html">Data.Enum</a></li><li><a href="Data.Enum.Gen.html">Data.Enum.Gen</a></li><li><a href="Data.Enum.Generic.html">Data.Enum.Generic</a></li><li><a href="Data.Eq.html">Data.Eq</a></li><li><a href="Data.Eq.Generic.html">Data.Eq.Generic</a></li><li><a href="Data.Equivalence.html">Data.Equivalence</a></li><li><a href="Data.EuclideanRing.html">Data.EuclideanRing</a></li><li><a href="Data.Exists.html">Data.Exists</a></li><li><a href="Data.FastVect.Common.html">Data.FastVect.Common</a></li><li><a href="Data.FastVect.Common.Matrix.html">Data.FastVect.Common.Matrix</a></li><li><a href="Data.FastVect.FastVect.html">Data.FastVect.FastVect</a></li><li><a href="Data.FastVect.FastVect.Matrix.html">Data.FastVect.FastVect.Matrix</a></li><li><a href="Data.FastVect.MinLenVect.html">Data.FastVect.MinLenVect</a></li><li><a href="Data.FastVect.Sparse.Read.html">Data.FastVect.Sparse.Read</a></li><li><a href="Data.FastVect.Sparse.Write.html">Data.FastVect.Sparse.Write</a></li><li><a href="Data.Field.html">Data.Field</a></li><li><a href="Data.Filterable.html">Data.Filterable</a></li><li><a href="Data.Foldable.html">Data.Foldable</a></li><li><a href="Data.FoldableWithIndex.html">Data.FoldableWithIndex</a></li><li><a href="Data.Function.html">Data.Function</a></li><li><a href="Data.Function.Uncurried.html">Data.Function.Uncurried</a></li><li><a href="Data.Functor.html">Data.Functor</a></li><li><a href="Data.Functor.App.html">Data.Functor.App</a></li><li><a href="Data.Functor.Clown.html">Data.Functor.Clown</a></li><li><a href="Data.Functor.Compose.html">Data.Functor.Compose</a></li><li><a href="Data.Functor.Contravariant.html">Data.Functor.Contravariant</a></li><li><a href="Data.Functor.Coproduct.html">Data.Functor.Coproduct</a></li><li><a href="Data.Functor.Coproduct.Inject.html">Data.Functor.Coproduct.Inject</a></li><li><a href="Data.Functor.Coproduct.Nested.html">Data.Functor.Coproduct.Nested</a></li><li><a href="Data.Functor.Costar.html">Data.Functor.Costar</a></li><li><a href="Data.Functor.Flip.html">Data.Functor.Flip</a></li><li><a href="Data.Functor.Invariant.html">Data.Functor.Invariant</a></li><li><a href="Data.Functor.Joker.html">Data.Functor.Joker</a></li><li><a href="Data.Functor.Product.html">Data.Functor.Product</a></li><li><a href="Data.Functor.Product.Nested.html">Data.Functor.Product.Nested</a></li><li><a href="Data.Functor.Product2.html">Data.Functor.Product2</a></li><li><a href="Data.Functor.Variant.html">Data.Functor.Variant</a></li><li><a href="Data.FunctorWithIndex.html">Data.FunctorWithIndex</a></li><li><a href="Data.Generic.Rep.html">Data.Generic.Rep</a></li><li><a href="Data.HeytingAlgebra.html">Data.HeytingAlgebra</a></li><li><a href="Data.HeytingAlgebra.Generic.html">Data.HeytingAlgebra.Generic</a></li><li><a href="Data.Identity.html">Data.Identity</a></li><li><a href="Data.Int.html">Data.Int</a></li><li><a href="Data.Int.Bits.html">Data.Int.Bits</a></li><li><a href="Data.Interval.html">Data.Interval</a></li><li><a href="Data.Interval.Duration.html">Data.Interval.Duration</a></li><li><a href="Data.Interval.Duration.Iso.html">Data.Interval.Duration.Iso</a></li><li><a href="Data.JSDate.html">Data.JSDate</a></li><li><a href="Data.Lazy.html">Data.Lazy</a></li><li><a href="Data.List.html">Data.List</a></li><li><a href="Data.List.Internal.html">Data.List.Internal</a></li><li><a href="Data.List.Lazy.html">Data.List.Lazy</a></li><li><a href="Data.List.Lazy.NonEmpty.html">Data.List.Lazy.NonEmpty</a></li><li><a href="Data.List.Lazy.Types.html">Data.List.Lazy.Types</a></li><li><a href="Data.List.NonEmpty.html">Data.List.NonEmpty</a></li><li><a href="Data.List.Partial.html">Data.List.Partial</a></li><li><a href="Data.List.Types.html">Data.List.Types</a></li><li><a href="Data.List.ZipList.html">Data.List.ZipList</a></li><li><a href="Data.Map.html">Data.Map</a></li><li><a href="Data.Map.Gen.html">Data.Map.Gen</a></li><li><a href="Data.Map.Internal.html">Data.Map.Internal</a></li><li><a href="Data.Maybe.html">Data.Maybe</a></li><li><a href="Data.Maybe.First.html">Data.Maybe.First</a></li><li><a href="Data.Maybe.Last.html">Data.Maybe.Last</a></li><li><a href="Data.MediaType.html">Data.MediaType</a></li><li><a href="Data.MediaType.Common.html">Data.MediaType.Common</a></li><li><a href="Data.Monoid.html">Data.Monoid</a></li><li><a href="Data.Monoid.Additive.html">Data.Monoid.Additive</a></li><li><a href="Data.Monoid.Alternate.html">Data.Monoid.Alternate</a></li><li><a href="Data.Monoid.Conj.html">Data.Monoid.Conj</a></li><li><a href="Data.Monoid.Disj.html">Data.Monoid.Disj</a></li><li><a href="Data.Monoid.Dual.html">Data.Monoid.Dual</a></li><li><a href="Data.Monoid.Endo.html">Data.Monoid.Endo</a></li><li><a href="Data.Monoid.Generic.html">Data.Monoid.Generic</a></li><li><a href="Data.Monoid.Multiplicative.html">Data.Monoid.Multiplicative</a></li><li><a href="Data.NaturalTransformation.html">Data.NaturalTransformation</a></li><li><a href="Data.Newtype.html">Data.Newtype</a></li><li><a href="Data.NonEmpty.html">Data.NonEmpty</a></li><li><a href="Data.Nullable.html">Data.Nullable</a></li><li><a href="Data.Number.html">Data.Number</a></li><li><a href="Data.Number.Approximate.html">Data.Number.Approximate</a></li><li><a href="Data.Number.Format.html">Data.Number.Format</a></li><li><a href="Data.Op.html">Data.Op</a></li><li><a href="Data.Ord.html">Data.Ord</a></li><li><a href="Data.Ord.Down.html">Data.Ord.Down</a></li><li><a href="Data.Ord.Generic.html">Data.Ord.Generic</a></li><li><a href="Data.Ord.Max.html">Data.Ord.Max</a></li><li><a href="Data.Ord.Min.html">Data.Ord.Min</a></li><li><a href="Data.Ordering.html">Data.Ordering</a></li><li><a href="Data.Posix.html">Data.Posix</a></li><li><a href="Data.Posix.Signal.html">Data.Posix.Signal</a></li><li><a href="Data.Predicate.html">Data.Predicate</a></li><li><a href="Data.Profunctor.html">Data.Profunctor</a></li><li><a href="Data.Profunctor.Choice.html">Data.Profunctor.Choice</a></li><li><a href="Data.Profunctor.Closed.html">Data.Profunctor.Closed</a></li><li><a href="Data.Profunctor.Cochoice.html">Data.Profunctor.Cochoice</a></li><li><a href="Data.Profunctor.Costrong.html">Data.Profunctor.Costrong</a></li><li><a href="Data.Profunctor.Join.html">Data.Profunctor.Join</a></li><li><a href="Data.Profunctor.Split.html">Data.Profunctor.Split</a></li><li><a href="Data.Profunctor.Star.html">Data.Profunctor.Star</a></li><li><a href="Data.Profunctor.Strong.html">Data.Profunctor.Strong</a></li><li><a href="Data.Reflectable.html">Data.Reflectable</a></li><li><a href="Data.Ring.html">Data.Ring</a></li><li><a href="Data.Ring.Generic.html">Data.Ring.Generic</a></li><li><a href="Data.Semigroup.html">Data.Semigroup</a></li><li><a href="Data.Semigroup.First.html">Data.Semigroup.First</a></li><li><a href="Data.Semigroup.Foldable.html">Data.Semigroup.Foldable</a></li><li><a href="Data.Semigroup.Generic.html">Data.Semigroup.Generic</a></li><li><a href="Data.Semigroup.Last.html">Data.Semigroup.Last</a></li><li><a href="Data.Semigroup.Traversable.html">Data.Semigroup.Traversable</a></li><li><a href="Data.Semiring.html">Data.Semiring</a></li><li><a href="Data.Semiring.Generic.html">Data.Semiring.Generic</a></li><li><a href="Data.Set.html">Data.Set</a></li><li><a href="Data.Set.NonEmpty.html">Data.Set.NonEmpty</a></li><li><a href="Data.Show.html">Data.Show</a></li><li><a href="Data.Show.Generic.html">Data.Show.Generic</a></li><li><a href="Data.String.html">Data.String</a></li><li><a href="Data.String.CaseInsensitive.html">Data.String.CaseInsensitive</a></li><li><a href="Data.String.CodePoints.html">Data.String.CodePoints</a></li><li><a href="Data.String.CodeUnits.html">Data.String.CodeUnits</a></li><li><a href="Data.String.Common.html">Data.String.Common</a></li><li><a href="Data.String.Gen.html">Data.String.Gen</a></li><li><a href="Data.String.NonEmpty.html">Data.String.NonEmpty</a></li><li><a href="Data.String.NonEmpty.CaseInsensitive.html">Data.String.NonEmpty.CaseInsensitive</a></li><li><a href="Data.String.NonEmpty.CodePoints.html">Data.String.NonEmpty.CodePoints</a></li><li><a href="Data.String.NonEmpty.CodeUnits.html">Data.String.NonEmpty.CodeUnits</a></li><li><a href="Data.String.NonEmpty.Internal.html">Data.String.NonEmpty.Internal</a></li><li><a href="Data.String.Pattern.html">Data.String.Pattern</a></li><li><a href="Data.String.Regex.html">Data.String.Regex</a></li><li><a href="Data.String.Regex.Flags.html">Data.String.Regex.Flags</a></li><li><a href="Data.String.Regex.Unsafe.html">Data.String.Regex.Unsafe</a></li><li><a href="Data.String.Unsafe.html">Data.String.Unsafe</a></li><li><a href="Data.Symbol.html">Data.Symbol</a></li><li><a href="Data.Time.html">Data.Time</a></li><li><a href="Data.Time.Component.html">Data.Time.Component</a></li><li><a href="Data.Time.Component.Gen.html">Data.Time.Component.Gen</a></li><li><a href="Data.Time.Duration.html">Data.Time.Duration</a></li><li><a href="Data.Time.Duration.Gen.html">Data.Time.Duration.Gen</a></li><li><a href="Data.Time.Gen.html">Data.Time.Gen</a></li><li><a href="Data.Traversable.html">Data.Traversable</a></li><li><a href="Data.Traversable.Accum.html">Data.Traversable.Accum</a></li><li><a href="Data.Traversable.Accum.Internal.html">Data.Traversable.Accum.Internal</a></li><li><a href="Data.TraversableWithIndex.html">Data.TraversableWithIndex</a></li><li><a href="Data.Tuple.html">Data.Tuple</a></li><li><a href="Data.Tuple.Nested.html">Data.Tuple.Nested</a></li><li><a href="Data.Unfoldable.html">Data.Unfoldable</a></li><li><a href="Data.Unfoldable1.html">Data.Unfoldable1</a></li><li><a href="Data.Unit.html">Data.Unit</a></li><li><a href="Data.Variant.html">Data.Variant</a></li><li><a href="Data.Variant.Internal.html">Data.Variant.Internal</a></li><li><a href="Data.Void.html">Data.Void</a></li><li><a href="Data.Witherable.html">Data.Witherable</a></li><li><a href="Data.Yoneda.html">Data.Yoneda</a></li><li><a href="Effect.html">Effect</a></li><li><a href="Effect.AVar.html">Effect.AVar</a></li><li><a href="Effect.Aff.html">Effect.Aff</a></li><li><a href="Effect.Aff.AVar.html">Effect.Aff.AVar</a></li><li><a href="Effect.Aff.Class.html">Effect.Aff.Class</a></li><li><a href="Effect.Aff.Compat.html">Effect.Aff.Compat</a></li><li><a href="Effect.Class.html">Effect.Class</a></li><li><a href="Effect.Class.Console.html">Effect.Class.Console</a></li><li><a href="Effect.Console.html">Effect.Console</a></li><li><a href="Effect.Exception.html">Effect.Exception</a></li><li><a href="Effect.Exception.Unsafe.html">Effect.Exception.Unsafe</a></li><li><a href="Effect.Now.html">Effect.Now</a></li><li><a href="Effect.Ref.html">Effect.Ref</a></li><li><a href="Effect.Timer.html">Effect.Timer</a></li><li><a href="Effect.Uncurried.html">Effect.Uncurried</a></li><li><a href="Effect.Unsafe.html">Effect.Unsafe</a></li><li><a href="FRP.Behavior.html">FRP.Behavior</a></li><li><a href="FRP.Behavior.Keyboard.html">FRP.Behavior.Keyboard</a></li><li><a href="FRP.Behavior.Mouse.html">FRP.Behavior.Mouse</a></li><li><a href="FRP.Behavior.Time.html">FRP.Behavior.Time</a></li><li><a href="FRP.Event.html">FRP.Event</a></li><li><a href="FRP.Event.AnimationFrame.html">FRP.Event.AnimationFrame</a></li><li><a href="FRP.Event.Class.html">FRP.Event.Class</a></li><li><a href="FRP.Event.Keyboard.html">FRP.Event.Keyboard</a></li><li><a href="FRP.Event.Mouse.html">FRP.Event.Mouse</a></li><li><a href="FRP.Event.Time.html">FRP.Event.Time</a></li><li><a href="FRP.Event.VBus.html">FRP.Event.VBus</a></li><li><a href="Foreign.html">Foreign</a></li><li><a href="Foreign.Index.html">Foreign.Index</a></li><li><a href="Foreign.Keys.html">Foreign.Keys</a></li><li><a href="Foreign.Object.html">Foreign.Object</a></li><li><a href="Foreign.Object.Gen.html">Foreign.Object.Gen</a></li><li><a href="Foreign.Object.ST.html">Foreign.Object.ST</a></li><li><a href="Foreign.Object.ST.Unsafe.html">Foreign.Object.ST.Unsafe</a></li><li><a href="Foreign.Object.Unsafe.html">Foreign.Object.Unsafe</a></li><li><a href="Heterogeneous.Folding.html">Heterogeneous.Folding</a></li><li><a href="Heterogeneous.Mapping.html">Heterogeneous.Mapping</a></li><li><a href="Node.Buffer.html">Node.Buffer</a></li><li><a href="Node.Buffer.Class.html">Node.Buffer.Class</a></li><li><a href="Node.Buffer.Constants.html">Node.Buffer.Constants</a></li><li><a href="Node.Buffer.Immutable.html">Node.Buffer.Immutable</a></li><li><a href="Node.Buffer.ST.html">Node.Buffer.ST</a></li><li><a href="Node.Buffer.Types.html">Node.Buffer.Types</a></li><li><a href="Node.Encoding.html">Node.Encoding</a></li><li><a href="Node.EventEmitter.html">Node.EventEmitter</a></li><li><a href="Node.EventEmitter.UtilTypes.html">Node.EventEmitter.UtilTypes</a></li><li><a href="Node.FS.html">Node.FS</a></li><li><a href="Node.FS.Aff.html">Node.FS.Aff</a></li><li><a href="Node.FS.Async.html">Node.FS.Async</a></li><li><a href="Node.FS.Constants.html">Node.FS.Constants</a></li><li><a href="Node.FS.Perms.html">Node.FS.Perms</a></li><li><a href="Node.FS.Stats.html">Node.FS.Stats</a></li><li><a href="Node.FS.Stream.html">Node.FS.Stream</a></li><li><a href="Node.FS.Sync.html">Node.FS.Sync</a></li><li><a href="Node.Path.html">Node.Path</a></li><li><a href="Node.Platform.html">Node.Platform</a></li><li><a href="Node.Process.html">Node.Process</a></li><li><a href="Node.Stream.html">Node.Stream</a></li><li><a href="Node.Stream.Aff.html">Node.Stream.Aff</a></li><li><a href="Node.Symbol.html">Node.Symbol</a></li><li><a href="Partial.html">Partial</a></li><li><a href="Partial.Unsafe.html">Partial.Unsafe</a></li><li><a href="Performance.Minibench.html">Performance.Minibench</a></li><li><a href="Pipes.html">Pipes</a></li><li><a href="Pipes.Core.html">Pipes.Core</a></li><li><a href="Pipes.Internal.html">Pipes.Internal</a></li><li><a href="Pipes.ListT.html">Pipes.ListT</a></li><li><a href="Pipes.Prelude.html">Pipes.Prelude</a></li><li><a href="Prelude.html">Prelude</a></li><li><a href="Prim.html">Prim</a></li><li><a href="Prim.Boolean.html">Prim.Boolean</a></li><li><a href="Prim.Coerce.html">Prim.Coerce</a></li><li><a href="Prim.Int.html">Prim.Int</a></li><li><a href="Prim.Ordering.html">Prim.Ordering</a></li><li><a href="Prim.Row.html">Prim.Row</a></li><li><a href="Prim.RowList.html">Prim.RowList</a></li><li><a href="Prim.Symbol.html">Prim.Symbol</a></li><li><a href="Prim.TypeError.html">Prim.TypeError</a></li><li><a href="Record.html">Record</a></li><li><a href="Record.Builder.html">Record.Builder</a></li><li><a href="Record.Studio.html">Record.Studio</a></li><li><a href="Record.Studio.Keys.html">Record.Studio.Keys</a></li><li><a href="Record.Studio.Map.html">Record.Studio.Map</a></li><li><a href="Record.Studio.MapKind.html">Record.Studio.MapKind</a></li><li><a href="Record.Studio.MapUniform.html">Record.Studio.MapUniform</a></li><li><a href="Record.Studio.Merge.html">Record.Studio.Merge</a></li><li><a href="Record.Studio.SameKeys.html">Record.Studio.SameKeys</a></li><li><a href="Record.Studio.Sequence.html">Record.Studio.Sequence</a></li><li><a href="Record.Studio.Shrink.html">Record.Studio.Shrink</a></li><li><a href="Record.Studio.SingletonRecord.html">Record.Studio.SingletonRecord</a></li><li><a href="Record.Unsafe.html">Record.Unsafe</a></li><li><a href="Record.Unsafe.Union.html">Record.Unsafe.Union</a></li><li><a href="Safe.Coerce.html">Safe.Coerce</a></li><li><a href="Spago.Generated.BuildInfo.html">Spago.Generated.BuildInfo</a></li><li><a href="Test.Spec.html">Test.Spec</a></li><li><a href="Test.Spec.Assertions.html">Test.Spec.Assertions</a></li><li><a href="Test.Spec.Assertions.String.html">Test.Spec.Assertions.String</a></li><li><a href="Test.Spec.Config.html">Test.Spec.Config</a></li><li><a href="Test.Spec.Console.html">Test.Spec.Console</a></li><li><a href="Test.Spec.Reporter.html">Test.Spec.Reporter</a></li><li><a href="Test.Spec.Reporter.Base.html">Test.Spec.Reporter.Base</a></li><li><a href="Test.Spec.Reporter.Console.html">Test.Spec.Reporter.Console</a></li><li><a href="Test.Spec.Reporter.Dot.html">Test.Spec.Reporter.Dot</a></li><li><a href="Test.Spec.Reporter.Spec.html">Test.Spec.Reporter.Spec</a></li><li><a href="Test.Spec.Reporter.Tap.html">Test.Spec.Reporter.Tap</a></li><li><a href="Test.Spec.Reporter.TeamCity.html">Test.Spec.Reporter.TeamCity</a></li><li><a href="Test.Spec.Result.html">Test.Spec.Result</a></li><li><a href="Test.Spec.Runner.html">Test.Spec.Runner</a></li><li><a href="Test.Spec.Runner.Event.html">Test.Spec.Runner.Event</a></li><li><a href="Test.Spec.Speed.html">Test.Spec.Speed</a></li><li><a href="Test.Spec.Style.html">Test.Spec.Style</a></li><li><a href="Test.Spec.Summary.html">Test.Spec.Summary</a></li><li><a href="Test.Spec.Tree.html">Test.Spec.Tree</a></li><li><a href="Type.Data.Boolean.html">Type.Data.Boolean</a></li><li><a href="Type.Data.Ordering.html">Type.Data.Ordering</a></li><li><a href="Type.Data.Symbol.html">Type.Data.Symbol</a></li><li><a href="Type.Equality.html">Type.Equality</a></li><li><a href="Type.Function.html">Type.Function</a></li><li><a href="Type.Prelude.html">Type.Prelude</a></li><li><a href="Type.Proxy.html">Type.Proxy</a></li><li><a href="Type.Row.html">Type.Row</a></li><li><a href="Type.Row.Homogeneous.html">Type.Row.Homogeneous</a></li><li><a href="Type.RowList.html">Type.RowList</a></li><li><a href="Uncurried.RWSE.html">Uncurried.RWSE</a></li><li><a href="Uncurried.RWSET.html">Uncurried.RWSET</a></li><li><a href="Uncurried.Reader.html">Uncurried.Reader</a></li><li><a href="Uncurried.ReaderT.html">Uncurried.ReaderT</a></li><li><a href="Uncurried.State.html">Uncurried.State</a></li><li><a href="Uncurried.StateT.html">Uncurried.StateT</a></li><li><a href="Uncurried.Writer.html">Uncurried.Writer</a></li><li><a href="Uncurried.WriterT.html">Uncurried.WriterT</a></li><li><a href="Unsafe.Coerce.html">Unsafe.Coerce</a></li><li><a href="Unsafe.Reference.html">Unsafe.Reference</a></li><li><a href="Web.DOM.html">Web.DOM</a></li><li><a href="Web.DOM.CharacterData.html">Web.DOM.CharacterData</a></li><li><a href="Web.DOM.ChildNode.html">Web.DOM.ChildNode</a></li><li><a href="Web.DOM.Comment.html">Web.DOM.Comment</a></li><li><a href="Web.DOM.DOMTokenList.html">Web.DOM.DOMTokenList</a></li><li><a href="Web.DOM.Document.html">Web.DOM.Document</a></li><li><a href="Web.DOM.DocumentFragment.html">Web.DOM.DocumentFragment</a></li><li><a href="Web.DOM.DocumentType.html">Web.DOM.DocumentType</a></li><li><a href="Web.DOM.Element.html">Web.DOM.Element</a></li><li><a href="Web.DOM.HTMLCollection.html">Web.DOM.HTMLCollection</a></li><li><a href="Web.DOM.Internal.Types.html">Web.DOM.Internal.Types</a></li><li><a href="Web.DOM.MutationObserver.html">Web.DOM.MutationObserver</a></li><li><a href="Web.DOM.MutationRecord.html">Web.DOM.MutationRecord</a></li><li><a href="Web.DOM.Node.html">Web.DOM.Node</a></li><li><a href="Web.DOM.NodeList.html">Web.DOM.NodeList</a></li><li><a href="Web.DOM.NodeType.html">Web.DOM.NodeType</a></li><li><a href="Web.DOM.NonDocumentTypeChildNode.html">Web.DOM.NonDocumentTypeChildNode</a></li><li><a href="Web.DOM.NonElementParentNode.html">Web.DOM.NonElementParentNode</a></li><li><a href="Web.DOM.ParentNode.html">Web.DOM.ParentNode</a></li><li><a href="Web.DOM.ProcessingInstruction.html">Web.DOM.ProcessingInstruction</a></li><li><a href="Web.DOM.ShadowRoot.html">Web.DOM.ShadowRoot</a></li><li><a href="Web.DOM.Text.html">Web.DOM.Text</a></li><li><a href="Web.Event.CustomEvent.html">Web.Event.CustomEvent</a></li><li><a href="Web.Event.Event.html">Web.Event.Event</a></li><li><a href="Web.Event.EventPhase.html">Web.Event.EventPhase</a></li><li><a href="Web.Event.EventTarget.html">Web.Event.EventTarget</a></li><li><a href="Web.Event.Internal.Types.html">Web.Event.Internal.Types</a></li><li><a href="Web.File.Blob.html">Web.File.Blob</a></li><li><a href="Web.File.File.html">Web.File.File</a></li><li><a href="Web.File.FileList.html">Web.File.FileList</a></li><li><a href="Web.File.FileReader.html">Web.File.FileReader</a></li><li><a href="Web.File.FileReader.ReadyState.html">Web.File.FileReader.ReadyState</a></li><li><a href="Web.File.Url.html">Web.File.Url</a></li><li><a href="Web.HTML.html">Web.HTML</a></li><li><a href="Web.HTML.Common.html">Web.HTML.Common</a></li><li><a href="Web.HTML.Event.BeforeUnloadEvent.html">Web.HTML.Event.BeforeUnloadEvent</a></li><li><a href="Web.HTML.Event.BeforeUnloadEvent.EventTypes.html">Web.HTML.Event.BeforeUnloadEvent.EventTypes</a></li><li><a href="Web.HTML.Event.DataTransfer.html">Web.HTML.Event.DataTransfer</a></li><li><a href="Web.HTML.Event.DataTransfer.DataTransferItem.html">Web.HTML.Event.DataTransfer.DataTransferItem</a></li><li><a href="Web.HTML.Event.DragEvent.html">Web.HTML.Event.DragEvent</a></li><li><a href="Web.HTML.Event.DragEvent.EventTypes.html">Web.HTML.Event.DragEvent.EventTypes</a></li><li><a href="Web.HTML.Event.ErrorEvent.html">Web.HTML.Event.ErrorEvent</a></li><li><a href="Web.HTML.Event.EventTypes.html">Web.HTML.Event.EventTypes</a></li><li><a href="Web.HTML.Event.HashChangeEvent.html">Web.HTML.Event.HashChangeEvent</a></li><li><a href="Web.HTML.Event.HashChangeEvent.EventTypes.html">Web.HTML.Event.HashChangeEvent.EventTypes</a></li><li><a href="Web.HTML.Event.PageTransitionEvent.html">Web.HTML.Event.PageTransitionEvent</a></li><li><a href="Web.HTML.Event.PageTransitionEvent.EventTypes.html">Web.HTML.Event.PageTransitionEvent.EventTypes</a></li><li><a href="Web.HTML.Event.PopStateEvent.html">Web.HTML.Event.PopStateEvent</a></li><li><a href="Web.HTML.Event.PopStateEvent.EventTypes.html">Web.HTML.Event.PopStateEvent.EventTypes</a></li><li><a href="Web.HTML.Event.TrackEvent.html">Web.HTML.Event.TrackEvent</a></li><li><a href="Web.HTML.Event.TrackEvent.EventTypes.html">Web.HTML.Event.TrackEvent.EventTypes</a></li><li><a href="Web.HTML.HTMLAnchorElement.html">Web.HTML.HTMLAnchorElement</a></li><li><a href="Web.HTML.HTMLAreaElement.html">Web.HTML.HTMLAreaElement</a></li><li><a href="Web.HTML.HTMLAudioElement.html">Web.HTML.HTMLAudioElement</a></li><li><a href="Web.HTML.HTMLBRElement.html">Web.HTML.HTMLBRElement</a></li><li><a href="Web.HTML.HTMLBaseElement.html">Web.HTML.HTMLBaseElement</a></li><li><a href="Web.HTML.HTMLBodyElement.html">Web.HTML.HTMLBodyElement</a></li><li><a href="Web.HTML.HTMLButtonElement.html">Web.HTML.HTMLButtonElement</a></li><li><a href="Web.HTML.HTMLCanvasElement.html">Web.HTML.HTMLCanvasElement</a></li><li><a href="Web.HTML.HTMLDListElement.html">Web.HTML.HTMLDListElement</a></li><li><a href="Web.HTML.HTMLDataElement.html">Web.HTML.HTMLDataElement</a></li><li><a href="Web.HTML.HTMLDataListElement.html">Web.HTML.HTMLDataListElement</a></li><li><a href="Web.HTML.HTMLDivElement.html">Web.HTML.HTMLDivElement</a></li><li><a href="Web.HTML.HTMLDocument.html">Web.HTML.HTMLDocument</a></li><li><a href="Web.HTML.HTMLDocument.ReadyState.html">Web.HTML.HTMLDocument.ReadyState</a></li><li><a href="Web.HTML.HTMLDocument.VisibilityState.html">Web.HTML.HTMLDocument.VisibilityState</a></li><li><a href="Web.HTML.HTMLElement.html">Web.HTML.HTMLElement</a></li><li><a href="Web.HTML.HTMLEmbedElement.html">Web.HTML.HTMLEmbedElement</a></li><li><a href="Web.HTML.HTMLFieldSetElement.html">Web.HTML.HTMLFieldSetElement</a></li><li><a href="Web.HTML.HTMLFormElement.html">Web.HTML.HTMLFormElement</a></li><li><a href="Web.HTML.HTMLHRElement.html">Web.HTML.HTMLHRElement</a></li><li><a href="Web.HTML.HTMLHeadElement.html">Web.HTML.HTMLHeadElement</a></li><li><a href="Web.HTML.HTMLHeadingElement.html">Web.HTML.HTMLHeadingElement</a></li><li><a href="Web.HTML.HTMLHtmlElement.html">Web.HTML.HTMLHtmlElement</a></li><li><a href="Web.HTML.HTMLHyperlinkElementUtils.html">Web.HTML.HTMLHyperlinkElementUtils</a></li><li><a href="Web.HTML.HTMLIFrameElement.html">Web.HTML.HTMLIFrameElement</a></li><li><a href="Web.HTML.HTMLImageElement.html">Web.HTML.HTMLImageElement</a></li><li><a href="Web.HTML.HTMLImageElement.CORSMode.html">Web.HTML.HTMLImageElement.CORSMode</a></li><li><a href="Web.HTML.HTMLImageElement.DecodingHint.html">Web.HTML.HTMLImageElement.DecodingHint</a></li><li><a href="Web.HTML.HTMLImageElement.Laziness.html">Web.HTML.HTMLImageElement.Laziness</a></li><li><a href="Web.HTML.HTMLInputElement.html">Web.HTML.HTMLInputElement</a></li><li><a href="Web.HTML.HTMLKeygenElement.html">Web.HTML.HTMLKeygenElement</a></li><li><a href="Web.HTML.HTMLLIElement.html">Web.HTML.HTMLLIElement</a></li><li><a href="Web.HTML.HTMLLabelElement.html">Web.HTML.HTMLLabelElement</a></li><li><a href="Web.HTML.HTMLLegendElement.html">Web.HTML.HTMLLegendElement</a></li><li><a href="Web.HTML.HTMLLinkElement.html">Web.HTML.HTMLLinkElement</a></li><li><a href="Web.HTML.HTMLMapElement.html">Web.HTML.HTMLMapElement</a></li><li><a href="Web.HTML.HTMLMediaElement.html">Web.HTML.HTMLMediaElement</a></li><li><a href="Web.HTML.HTMLMediaElement.CanPlayType.html">Web.HTML.HTMLMediaElement.CanPlayType</a></li><li><a href="Web.HTML.HTMLMediaElement.NetworkState.html">Web.HTML.HTMLMediaElement.NetworkState</a></li><li><a href="Web.HTML.HTMLMediaElement.ReadyState.html">Web.HTML.HTMLMediaElement.ReadyState</a></li><li><a href="Web.HTML.HTMLMetaElement.html">Web.HTML.HTMLMetaElement</a></li><li><a href="Web.HTML.HTMLMeterElement.html">Web.HTML.HTMLMeterElement</a></li><li><a href="Web.HTML.HTMLModElement.html">Web.HTML.HTMLModElement</a></li><li><a href="Web.HTML.HTMLOListElement.html">Web.HTML.HTMLOListElement</a></li><li><a href="Web.HTML.HTMLObjectElement.html">Web.HTML.HTMLObjectElement</a></li><li><a href="Web.HTML.HTMLOptGroupElement.html">Web.HTML.HTMLOptGroupElement</a></li><li><a href="Web.HTML.HTMLOptionElement.html">Web.HTML.HTMLOptionElement</a></li><li><a href="Web.HTML.HTMLOutputElement.html">Web.HTML.HTMLOutputElement</a></li><li><a href="Web.HTML.HTMLParagraphElement.html">Web.HTML.HTMLParagraphElement</a></li><li><a href="Web.HTML.HTMLParamElement.html">Web.HTML.HTMLParamElement</a></li><li><a href="Web.HTML.HTMLPreElement.html">Web.HTML.HTMLPreElement</a></li><li><a href="Web.HTML.HTMLProgressElement.html">Web.HTML.HTMLProgressElement</a></li><li><a href="Web.HTML.HTMLQuoteElement.html">Web.HTML.HTMLQuoteElement</a></li><li><a href="Web.HTML.HTMLScriptElement.html">Web.HTML.HTMLScriptElement</a></li><li><a href="Web.HTML.HTMLSelectElement.html">Web.HTML.HTMLSelectElement</a></li><li><a href="Web.HTML.HTMLSourceElement.html">Web.HTML.HTMLSourceElement</a></li><li><a href="Web.HTML.HTMLSpanElement.html">Web.HTML.HTMLSpanElement</a></li><li><a href="Web.HTML.HTMLStyleElement.html">Web.HTML.HTMLStyleElement</a></li><li><a href="Web.HTML.HTMLTableCaptionElement.html">Web.HTML.HTMLTableCaptionElement</a></li><li><a href="Web.HTML.HTMLTableCellElement.html">Web.HTML.HTMLTableCellElement</a></li><li><a href="Web.HTML.HTMLTableColElement.html">Web.HTML.HTMLTableColElement</a></li><li><a href="Web.HTML.HTMLTableDataCellElement.html">Web.HTML.HTMLTableDataCellElement</a></li><li><a href="Web.HTML.HTMLTableElement.html">Web.HTML.HTMLTableElement</a></li><li><a href="Web.HTML.HTMLTableHeaderCellElement.html">Web.HTML.HTMLTableHeaderCellElement</a></li><li><a href="Web.HTML.HTMLTableRowElement.html">Web.HTML.HTMLTableRowElement</a></li><li><a href="Web.HTML.HTMLTableSectionElement.html">Web.HTML.HTMLTableSectionElement</a></li><li><a href="Web.HTML.HTMLTemplateElement.html">Web.HTML.HTMLTemplateElement</a></li><li><a href="Web.HTML.HTMLTextAreaElement.html">Web.HTML.HTMLTextAreaElement</a></li><li><a href="Web.HTML.HTMLTimeElement.html">Web.HTML.HTMLTimeElement</a></li><li><a href="Web.HTML.HTMLTitleElement.html">Web.HTML.HTMLTitleElement</a></li><li><a href="Web.HTML.HTMLTrackElement.html">Web.HTML.HTMLTrackElement</a></li><li><a href="Web.HTML.HTMLTrackElement.ReadyState.html">Web.HTML.HTMLTrackElement.ReadyState</a></li><li><a href="Web.HTML.HTMLUListElement.html">Web.HTML.HTMLUListElement</a></li><li><a href="Web.HTML.HTMLVideoElement.html">Web.HTML.HTMLVideoElement</a></li><li><a href="Web.HTML.History.html">Web.HTML.History</a></li><li><a href="Web.HTML.Location.html">Web.HTML.Location</a></li><li><a href="Web.HTML.Navigator.html">Web.HTML.Navigator</a></li><li><a href="Web.HTML.SelectionMode.html">Web.HTML.SelectionMode</a></li><li><a href="Web.HTML.ValidityState.html">Web.HTML.ValidityState</a></li><li><a href="Web.HTML.Window.html">Web.HTML.Window</a></li><li><a href="Web.Internal.FFI.html">Web.Internal.FFI</a></li><li><a href="Web.Storage.Event.StorageEvent.html">Web.Storage.Event.StorageEvent</a></li><li><a href="Web.Storage.Storage.html">Web.Storage.Storage</a></li><li><a href="Web.UIEvent.CompositionEvent.html">Web.UIEvent.CompositionEvent</a></li><li><a href="Web.UIEvent.CompositionEvent.EventTypes.html">Web.UIEvent.CompositionEvent.EventTypes</a></li><li><a href="Web.UIEvent.EventTypes.html">Web.UIEvent.EventTypes</a></li><li><a href="Web.UIEvent.FocusEvent.html">Web.UIEvent.FocusEvent</a></li><li><a href="Web.UIEvent.FocusEvent.EventTypes.html">Web.UIEvent.FocusEvent.EventTypes</a></li><li><a href="Web.UIEvent.InputEvent.html">Web.UIEvent.InputEvent</a></li><li><a href="Web.UIEvent.InputEvent.EventTypes.html">Web.UIEvent.InputEvent.EventTypes</a></li><li><a href="Web.UIEvent.InputEvent.InputType.html">Web.UIEvent.InputEvent.InputType</a></li><li><a href="Web.UIEvent.KeyboardEvent.html">Web.UIEvent.KeyboardEvent</a></li><li><a href="Web.UIEvent.KeyboardEvent.EventTypes.html">Web.UIEvent.KeyboardEvent.EventTypes</a></li><li><a href="Web.UIEvent.MouseEvent.html">Web.UIEvent.MouseEvent</a></li><li><a href="Web.UIEvent.MouseEvent.EventTypes.html">Web.UIEvent.MouseEvent.EventTypes</a></li><li><a href="Web.UIEvent.UIEvent.html">Web.UIEvent.UIEvent</a></li><li><a href="Web.UIEvent.WheelEvent.html">Web.UIEvent.WheelEvent</a></li><li><a href="Web.UIEvent.WheelEvent.EventTypes.html">Web.UIEvent.WheelEvent.EventTypes</a></li></ul></div></main></div><div class="footer clearfix"><p>Generated by purs 0.15.15 [development build; commit: UNKNOWN]</p></div><!-- Docs search index. --><script type="text/javascript" src="./docs-search-app.js"></script><script type="text/javascript">window.DocsSearchTypeIndex = {};window.DocsSearchIndex = {};</script></body></html>
generated-docs/html/Control.Biapply.htmldeletedโ1366
This diff is too big to show here.
generated-docs/html/Control.Bind.htmldeletedโ1486
This diff is too big to show here.
generated-docs/html/Control.Category.htmldeletedโ1372
This diff is too big to show here.
generated-docs/html/Control.Comonad.Cofree.Class.htmldeletedโ1357
This diff is too big to show here.
generated-docs/html/Control.Comonad.Cofree.htmldeletedโ1373
This diff is too big to show here.
generated-docs/html/Control.Comonad.Env.Class.htmldeletedโ1371
This diff is too big to show here.
generated-docs/html/Control.Comonad.Env.Trans.htmldeletedโ1364
This diff is too big to show here.
generated-docs/html/Control.Comonad.Env.htmldeletedโ1381
This diff is too big to show here.
generated-docs/html/Control.Comonad.Store.Class.htmldeletedโ1377
This diff is too big to show here.
generated-docs/html/Control.Comonad.Store.Trans.htmldeletedโ1362
This diff is too big to show here.
generated-docs/html/Control.Comonad.Store.htmldeletedโ1386
This diff is too big to show here.
generated-docs/html/Control.Comonad.Traced.Class.htmldeletedโ1376
This diff is too big to show here.
generated-docs/html/Control.Comonad.Traced.Trans.htmldeletedโ1362
This diff is too big to show here.
generated-docs/html/Control.Comonad.Traced.htmldeletedโ1385
This diff is too big to show here.
generated-docs/html/Control.Comonad.Trans.Class.htmldeletedโ1369
This diff is too big to show here.
generated-docs/html/Control.Comonad.htmldeletedโ1394
This diff is too big to show here.
generated-docs/html/Control.Extend.htmldeletedโ1389
This diff is too big to show here.
generated-docs/html/Control.Lazy.htmldeletedโ1362
This diff is too big to show here.
generated-docs/html/Control.Monad.Cont.Class.htmldeletedโ1369
This diff is too big to show here.
generated-docs/html/Control.Monad.Cont.Trans.htmldeletedโ1386
This diff is too big to show here.
generated-docs/html/Control.Monad.Cont.htmldeletedโ1392
This diff is too big to show here.
generated-docs/html/Control.Monad.Error.Class.htmldeletedโ1388
This diff is too big to show here.
generated-docs/html/Control.Monad.Except.Trans.htmldeletedโ1398
This diff is too big to show here.
generated-docs/html/Control.Monad.Except.htmldeletedโ1409
This diff is too big to show here.
generated-docs/html/Control.Monad.Fork.Class.htmldeletedโ1392
This diff is too big to show here.
generated-docs/html/Control.Monad.Free.Class.htmldeletedโ1357
This diff is too big to show here.
generated-docs/html/Control.Monad.Free.htmldeletedโ1378
This diff is too big to show here.
generated-docs/html/Control.Monad.Gen.Class.htmldeletedโ1366
This diff is too big to show here.
generated-docs/html/Control.Monad.Gen.Common.htmldeletedโ1378
This diff is too big to show here.
generated-docs/html/Control.Monad.Gen.htmldeletedโ1386
This diff is too big to show here.
generated-docs/html/Control.Monad.Identity.Trans.htmldeletedโ1362
This diff is too big to show here.
generated-docs/html/Control.Monad.List.Trans.htmldeletedโ1412
This diff is too big to show here.
generated-docs/html/Control.Monad.Maybe.Trans.htmldeletedโ1374
This diff is too big to show here.
generated-docs/html/Control.Monad.Morph.htmldeletedโ1357
This diff is too big to show here.
generated-docs/html/Control.Monad.RWS.Trans.htmldeletedโ1376
This diff is too big to show here.
generated-docs/html/Control.Monad.RWS.htmldeletedโ1394
This diff is too big to show here.
generated-docs/html/Control.Monad.Reader.Class.htmldeletedโ1377
This diff is too big to show here.
generated-docs/html/Control.Monad.Reader.Trans.htmldeletedโ1396
This diff is too big to show here.
generated-docs/html/Control.Monad.Reader.htmldeletedโ1401
This diff is too big to show here.
generated-docs/html/Control.Monad.Rec.Class.htmldeletedโ1408
This diff is too big to show here.
generated-docs/html/Control.Monad.ST.Class.htmldeletedโ1356
This diff is too big to show here.
generated-docs/html/Control.Monad.ST.Global.htmldeletedโ1359
This diff is too big to show here.
generated-docs/html/Control.Monad.ST.Internal.htmldeletedโ1390
This diff is too big to show here.
generated-docs/html/Control.Monad.ST.Ref.htmldeletedโ1366
This diff is too big to show here.
generated-docs/html/Control.Monad.ST.Uncurried.htmldeletedโ1370
This diff is too big to show here.
generated-docs/html/Control.Monad.ST.htmldeletedโ1380
This diff is too big to show here.
generated-docs/html/Control.Monad.State.Class.htmldeletedโ1376
This diff is too big to show here.
generated-docs/html/Control.Monad.State.Trans.htmldeletedโ1397
This diff is too big to show here.
generated-docs/html/Control.Monad.State.htmldeletedโ1404
This diff is too big to show here.
generated-docs/html/Control.Monad.Trampoline.htmldeletedโ1365
This diff is too big to show here.
generated-docs/html/Control.Monad.Trans.Class.htmldeletedโ1369
This diff is too big to show here.
generated-docs/html/Control.Monad.Writer.Class.htmldeletedโ1383
This diff is too big to show here.
generated-docs/html/Control.Monad.Writer.Trans.htmldeletedโ1402
This diff is too big to show here.
generated-docs/html/Control.Monad.Writer.htmldeletedโ1408
This diff is too big to show here.
generated-docs/html/Control.Monad.htmldeletedโ1500
This diff is too big to show here.
generated-docs/html/Control.MonadPlus.htmldeletedโ1558
This diff is too big to show here.
generated-docs/html/Control.Parallel.Class.htmldeletedโ1372
This diff is too big to show here.
generated-docs/html/Control.Parallel.htmldeletedโ1377
This diff is too big to show here.
generated-docs/html/Control.Plus.htmldeletedโ1408
This diff is too big to show here.
generated-docs/html/Control.Semigroupoid.htmldeletedโ1365
This diff is too big to show here.
generated-docs/html/Data.Array.NonEmpty.Internal.htmldeletedโ1366
This diff is too big to show here.
generated-docs/html/Data.Array.NonEmpty.htmldeletedโ1407
This diff is too big to show here.
generated-docs/html/Data.Array.Partial.htmldeletedโ1365
This diff is too big to show here.
generated-docs/html/Data.Array.ST.Iterator.htmldeletedโ1372
This diff is too big to show here.
generated-docs/html/Data.Array.ST.Partial.htmldeletedโ1360
This diff is too big to show here.
generated-docs/html/Data.Array.ST.htmldeletedโ1400
This diff is too big to show here.
generated-docs/html/Data.Array.htmldeletedโ1841
This diff is too big to show here.
generated-docs/html/Data.ArrayBuffer.Types.htmldeletedโ1361
This diff is too big to show here.
generated-docs/html/Data.Bifoldable.htmldeletedโ1391
This diff is too big to show here.
generated-docs/html/Data.Bifunctor.Join.htmldeletedโ1357
This diff is too big to show here.
generated-docs/html/Data.Bifunctor.htmldeletedโ1368
This diff is too big to show here.
generated-docs/html/Data.Bitraversable.htmldeletedโ1404
This diff is too big to show here.
generated-docs/html/Data.Boolean.htmldeletedโ1360
This diff is too big to show here.
generated-docs/html/Data.BooleanAlgebra.htmldeletedโ1410
This diff is too big to show here.
generated-docs/html/Data.Bounded.Generic.htmldeletedโ1358
This diff is too big to show here.
generated-docs/html/Data.Bounded.htmldeletedโ1381
This diff is too big to show here.
generated-docs/html/Data.CatList.htmldeletedโ1390
This diff is too big to show here.
generated-docs/html/Data.CatQueue.htmldeletedโ1383
This diff is too big to show here.
generated-docs/html/Data.Char.Gen.htmldeletedโ1363
This diff is too big to show here.
generated-docs/html/Data.Char.htmldeletedโ1359
This diff is too big to show here.
generated-docs/html/Data.CommutativeRing.htmldeletedโ1401
This diff is too big to show here.
generated-docs/html/Data.Compactable.htmldeletedโ1387
This diff is too big to show here.
generated-docs/html/Data.Comparison.htmldeletedโ1358
This diff is too big to show here.
generated-docs/html/Data.Const.htmldeletedโ1362
This diff is too big to show here.
generated-docs/html/Data.Coyoneda.htmldeletedโ1403
This diff is too big to show here.
generated-docs/html/Data.Date.Component.Gen.htmldeletedโ1360
This diff is too big to show here.
generated-docs/html/Data.Date.Component.htmldeletedโ1366
This diff is too big to show here.
generated-docs/html/Data.Date.Gen.htmlโ1362
This diff is too big to show here.
generated-docs/html/Data.Date.htmlโ1385
This diff is too big to show here.
generated-docs/html/Data.DateTime.Gen.htmlโ1369
This diff is too big to show here.
generated-docs/html/Data.DateTime.Instant.htmlโ1378
This diff is too big to show here.
generated-docs/html/Data.DateTime.htmlโ1411
This diff is too big to show here.
generated-docs/html/Data.Decidable.htmlโ1357
This diff is too big to show here.
generated-docs/html/Data.Decide.htmlโ1358
This diff is too big to show here.
generated-docs/html/Data.Distributive.htmlโ1374
This diff is too big to show here.
generated-docs/html/Data.Divide.htmlโ1365
This diff is too big to show here.
generated-docs/html/Data.Divisible.htmlโ1357
This diff is too big to show here.
generated-docs/html/Data.DivisionRing.htmlโ1418
This diff is too big to show here.
generated-docs/html/Data.Either.Inject.htmlโ1356
This diff is too big to show here.
generated-docs/html/Data.Either.Nested.htmlโ1381
This diff is too big to show here.
generated-docs/html/Data.Either.htmlโ1502
This diff is too big to show here.
generated-docs/html/Data.Enum.Gen.htmlโ1357
This diff is too big to show here.
generated-docs/html/Data.Enum.Generic.htmlโ1364
This diff is too big to show here.
generated-docs/html/Data.Enum.htmlโ1454
This diff is too big to show here.
generated-docs/html/Data.Eq.Generic.htmlโ1357
This diff is too big to show here.
generated-docs/html/Data.Eq.htmlโ1372
This diff is too big to show here.
generated-docs/html/Data.Equivalence.htmlโ1360
This diff is too big to show here.
generated-docs/html/Data.EuclideanRing.htmlโ1446
This diff is too big to show here.
generated-docs/html/Data.Exists.htmlโ1385
This diff is too big to show here.
generated-docs/html/Data.FastVect.Common.Matrix.htmlโ1356
This diff is too big to show here.
generated-docs/html/Data.FastVect.Common.htmlโ1455
This diff is too big to show here.
generated-docs/html/Data.FastVect.FastVect.Matrix.htmlโ1385
This diff is too big to show here.
generated-docs/html/Data.FastVect.FastVect.htmlโ1470
This diff is too big to show here.
generated-docs/html/Data.FastVect.MinLenVect.htmlโ1477
This diff is too big to show here.
generated-docs/html/Data.FastVect.Sparse.Read.htmlโ1457
This diff is too big to show here.
generated-docs/html/Data.FastVect.Sparse.Write.htmlโ1456
This diff is too big to show here.
generated-docs/html/Data.Field.htmlโ1480
This diff is too big to show here.
generated-docs/html/Data.Filterable.htmlโ1434
This diff is too big to show here.
generated-docs/html/Data.Foldable.htmlโ1482
This diff is too big to show here.
generated-docs/html/Data.FoldableWithIndex.htmlโ1430
This diff is too big to show here.
generated-docs/html/Data.Function.Uncurried.htmlโ1389
This diff is too big to show here.
generated-docs/html/Data.Function.htmlโ1405
This diff is too big to show here.
generated-docs/html/Data.Functor.App.htmlโ1356
This diff is too big to show here.
generated-docs/html/Data.Functor.Clown.htmlโ1360
This diff is too big to show here.
generated-docs/html/Data.Functor.Compose.htmlโ1357
This diff is too big to show here.
generated-docs/html/Data.Functor.Contravariant.htmlโ1367
This diff is too big to show here.
generated-docs/html/Data.Functor.Coproduct.Inject.htmlโ1356
This diff is too big to show here.
generated-docs/html/Data.Functor.Coproduct.Nested.htmlโ1356
This diff is too big to show here.
generated-docs/html/Data.Functor.Coproduct.htmlโ1362
This diff is too big to show here.
generated-docs/html/Data.Functor.Costar.htmlโ1358
This diff is too big to show here.
generated-docs/html/Data.Functor.Flip.htmlโ1357
This diff is too big to show here.
generated-docs/html/Data.Functor.Invariant.htmlโ1367
This diff is too big to show here.
generated-docs/html/Data.Functor.Joker.htmlโ1360
This diff is too big to show here.
generated-docs/html/Data.Functor.Product.Nested.htmlโ1356
This diff is too big to show here.
generated-docs/html/Data.Functor.Product.htmlโ1358
This diff is too big to show here.
generated-docs/html/Data.Functor.Product2.htmlโ1361
This diff is too big to show here.
generated-docs/html/Data.Functor.Variant.htmlโ1438
This diff is too big to show here.
generated-docs/html/Data.Functor.htmlโ1394
This diff is too big to show here.
generated-docs/html/Data.FunctorWithIndex.htmlโ1365
This diff is too big to show here.
generated-docs/html/Data.Generic.Rep.htmlโ1365
This diff is too big to show here.
generated-docs/html/Data.HeytingAlgebra.Generic.htmlโ1362
This diff is too big to show here.
generated-docs/html/Data.HeytingAlgebra.htmlโ1398
This diff is too big to show here.
generated-docs/html/Data.Identity.htmlโ1356
This diff is too big to show here.
generated-docs/html/Data.Int.Bits.htmlโ1364
This diff is too big to show here.
generated-docs/html/Data.Int.htmlโ1445
This diff is too big to show here.
generated-docs/html/Data.Interval.Duration.Iso.htmlโ1356
This diff is too big to show here.
generated-docs/html/Data.Interval.Duration.htmlโ1356
This diff is too big to show here.
generated-docs/html/Data.Interval.htmlโ1356
This diff is too big to show here.
generated-docs/html/Data.JSDate.htmlโ1426
This diff is too big to show here.
generated-docs/html/Data.Lazy.htmlโ1365
This diff is too big to show here.
generated-docs/html/Data.List.Internal.htmlโ1357
This diff is too big to show here.
generated-docs/html/Data.List.Lazy.NonEmpty.htmlโ1356
This diff is too big to show here.
generated-docs/html/Data.List.Lazy.Types.htmlโ1368
This diff is too big to show here.
generated-docs/html/Data.List.Lazy.htmlโ1586
This diff is too big to show here.
generated-docs/html/Data.List.NonEmpty.htmlโ1398
This diff is too big to show here.
generated-docs/html/Data.List.Partial.htmlโ1365
This diff is too big to show here.
generated-docs/html/Data.List.Types.htmlโ1356
This diff is too big to show here.
generated-docs/html/Data.List.ZipList.htmlโ1360
This diff is too big to show here.
generated-docs/html/Data.List.htmlโ1610
This diff is too big to show here.
generated-docs/html/Data.Map.Gen.htmlโ1357
This diff is too big to show here.
generated-docs/html/Data.Map.Internal.htmlโ1477
This diff is too big to show here.
generated-docs/html/Data.Map.htmlโ1470
This diff is too big to show here.
generated-docs/html/Data.Maybe.First.htmlโ1362
This diff is too big to show here.
generated-docs/html/Data.Maybe.Last.htmlโ1362
This diff is too big to show here.
generated-docs/html/Data.Maybe.htmlโ1500
This diff is too big to show here.
generated-docs/html/Data.MediaType.Common.htmlโ1370
This diff is too big to show here.
generated-docs/html/Data.MediaType.htmlโ1360
This diff is too big to show here.
generated-docs/html/Data.Monoid.Additive.htmlโ1360
This diff is too big to show here.
generated-docs/html/Data.Monoid.Alternate.htmlโ1361
This diff is too big to show here.
generated-docs/html/Data.Monoid.Conj.htmlโ1360
This diff is too big to show here.
generated-docs/html/Data.Monoid.Disj.htmlโ1360
This diff is too big to show here.
generated-docs/html/Data.Monoid.Dual.htmlโ1360
This diff is too big to show here.
generated-docs/html/Data.Monoid.Endo.htmlโ1362
This diff is too big to show here.
generated-docs/html/Data.Monoid.Generic.htmlโ1357
This diff is too big to show here.
generated-docs/html/Data.Monoid.Multiplicative.htmlโ1360
This diff is too big to show here.
generated-docs/html/Data.Monoid.htmlโ1411
This diff is too big to show here.
generated-docs/html/Data.NaturalTransformation.htmlโ1367
This diff is too big to show here.
generated-docs/html/Data.Newtype.htmlโ1462
This diff is too big to show here.
generated-docs/html/Data.NonEmpty.htmlโ1411
This diff is too big to show here.
generated-docs/html/Data.Nullable.htmlโ1384
This diff is too big to show here.
generated-docs/html/Data.Number.Approximate.htmlโ1401
This diff is too big to show here.
generated-docs/html/Data.Number.Format.htmlโ1392
This diff is too big to show here.
generated-docs/html/Data.Number.htmlโ1560
This diff is too big to show here.
generated-docs/html/Data.Op.htmlโ1357
This diff is too big to show here.
generated-docs/html/Data.Ord.Down.htmlโ1359
This diff is too big to show here.
generated-docs/html/Data.Ord.Generic.htmlโ1357
This diff is too big to show here.
generated-docs/html/Data.Ord.Max.htmlโ1361
This diff is too big to show here.
generated-docs/html/Data.Ord.Min.htmlโ1361
This diff is too big to show here.
generated-docs/html/Data.Ord.htmlโ1403
This diff is too big to show here.
generated-docs/html/Data.Ordering.htmlโ1363
This diff is too big to show here.
generated-docs/html/Data.Posix.Signal.htmlโ1361
This diff is too big to show here.
generated-docs/html/Data.Posix.htmlโ1359
This diff is too big to show here.
generated-docs/html/Data.Predicate.htmlโ1357
This diff is too big to show here.
generated-docs/html/Data.Profunctor.Choice.htmlโ1393
This diff is too big to show here.
generated-docs/html/Data.Profunctor.Closed.htmlโ1357
This diff is too big to show here.
generated-docs/html/Data.Profunctor.Cochoice.htmlโ1357
This diff is too big to show here.
generated-docs/html/Data.Profunctor.Costrong.htmlโ1357
This diff is too big to show here.
generated-docs/html/Data.Profunctor.Join.htmlโ1358
This diff is too big to show here.
generated-docs/html/Data.Profunctor.Split.htmlโ1356
This diff is too big to show here.
generated-docs/html/Data.Profunctor.Star.htmlโ1358
This diff is too big to show here.
generated-docs/html/Data.Profunctor.Strong.htmlโ1391
This diff is too big to show here.
generated-docs/html/Data.Profunctor.htmlโ1372
This diff is too big to show here.
generated-docs/html/Data.Reflectable.htmlโ1377
This diff is too big to show here.
generated-docs/html/Data.Ring.Generic.htmlโ1357
This diff is too big to show here.
generated-docs/html/Data.Ring.htmlโ1395
This diff is too big to show here.
generated-docs/html/Data.Semigroup.First.htmlโ1359
This diff is too big to show here.
generated-docs/html/Data.Semigroup.Foldable.htmlโ1396
This diff is too big to show here.
generated-docs/html/Data.Semigroup.Generic.htmlโ1357
This diff is too big to show here.
generated-docs/html/Data.Semigroup.Last.htmlโ1359
This diff is too big to show here.
generated-docs/html/Data.Semigroup.Traversable.htmlโ1382
This diff is too big to show here.
generated-docs/html/Data.Semigroup.htmlโ1374
This diff is too big to show here.
generated-docs/html/Data.Semiring.Generic.htmlโ1360
This diff is too big to show here.
generated-docs/html/Data.Semiring.htmlโ1384
This diff is too big to show here.
generated-docs/html/Data.Set.NonEmpty.htmlโ1389
This diff is too big to show here.
generated-docs/html/Data.Set.htmlโ1393
This diff is too big to show here.
generated-docs/html/Data.Show.Generic.htmlโ1357
This diff is too big to show here.
generated-docs/html/Data.Show.htmlโ1363
This diff is too big to show here.
generated-docs/html/Data.String.CaseInsensitive.htmlโ1357
This diff is too big to show here.
generated-docs/html/Data.String.CodePoints.htmlโ1519
This diff is too big to show here.
generated-docs/html/Data.String.CodeUnits.htmlโ1473
This diff is too big to show here.
generated-docs/html/Data.String.Common.htmlโ1391
This diff is too big to show here.
generated-docs/html/Data.String.Gen.htmlโ1365
This diff is too big to show here.
generated-docs/html/Data.String.NonEmpty.CaseInsensitive.htmlโ1357
This diff is too big to show here.
generated-docs/html/Data.String.NonEmpty.CodePoints.htmlโ1356
This diff is too big to show here.
generated-docs/html/Data.String.NonEmpty.CodeUnits.htmlโ1458
This diff is too big to show here.
generated-docs/html/Data.String.NonEmpty.Internal.htmlโ1453
This diff is too big to show here.
generated-docs/html/Data.String.NonEmpty.htmlโ1453
This diff is too big to show here.
generated-docs/html/Data.String.Pattern.htmlโ1363
This diff is too big to show here.
generated-docs/html/Data.String.Regex.Flags.htmlโ1364
This diff is too big to show here.
generated-docs/html/Data.String.Regex.Unsafe.htmlโ1358
This diff is too big to show here.
generated-docs/html/Data.String.Regex.htmlโ1383
This diff is too big to show here.
generated-docs/html/Data.String.Unsafe.htmlโ1361
This diff is too big to show here.
generated-docs/html/Data.String.htmlโ1556
This diff is too big to show here.
generated-docs/html/Data.Symbol.htmlโ1357
This diff is too big to show here.
generated-docs/html/Data.Time.Component.Gen.htmlโ1360
This diff is too big to show here.
generated-docs/html/Data.Time.Component.htmlโ1377
This diff is too big to show here.
generated-docs/html/Data.Time.Duration.Gen.htmlโ1361
This diff is too big to show here.
generated-docs/html/Data.Time.Duration.htmlโ1365
This diff is too big to show here.
generated-docs/html/Data.Time.Gen.htmlโ1361
This diff is too big to show here.
generated-docs/html/Data.Time.htmlโ1393
This diff is too big to show here.
generated-docs/html/Data.Traversable.Accum.Internal.htmlโ1356
This diff is too big to show here.
generated-docs/html/Data.Traversable.Accum.htmlโ1356
This diff is too big to show here.
generated-docs/html/Data.Traversable.htmlโ1511
This diff is too big to show here.
generated-docs/html/Data.TraversableWithIndex.htmlโ1397
This diff is too big to show here.
generated-docs/html/Data.Tuple.Nested.htmlโ1446
This diff is too big to show here.
generated-docs/html/Data.Tuple.htmlโ1386
This diff is too big to show here.
generated-docs/html/Data.Unfoldable.htmlโ1436
This diff is too big to show here.
generated-docs/html/Data.Unfoldable1.htmlโ1403
This diff is too big to show here.
generated-docs/html/Data.Unit.htmlโ1363
This diff is too big to show here.
generated-docs/html/Data.Variant.Internal.htmlโ1361
This diff is too big to show here.
generated-docs/html/Data.Variant.htmlโ1431
This diff is too big to show here.
generated-docs/html/Data.Void.htmlโ1376
This diff is too big to show here.
generated-docs/html/Data.Witherable.htmlโ1422
This diff is too big to show here.
generated-docs/html/Data.Yoneda.htmlโ1363
This diff is too big to show here.
generated-docs/html/Effect.AVar.htmlโ1378
This diff is too big to show here.
generated-docs/html/Effect.Aff.AVar.htmlโ1376
This diff is too big to show here.
generated-docs/html/Effect.Aff.Class.htmlโ1356
This diff is too big to show here.
generated-docs/html/Effect.Aff.Compat.htmlโ1379
This diff is too big to show here.
generated-docs/html/Effect.Aff.htmlโ1425
This diff is too big to show here.
generated-docs/html/Effect.Class.Console.htmlโ1356
This diff is too big to show here.
generated-docs/html/Effect.Class.htmlโ1361
This diff is too big to show here.
generated-docs/html/Effect.Console.htmlโ1381
This diff is too big to show here.
generated-docs/html/Effect.Exception.Unsafe.htmlโ1359
This diff is too big to show here.
generated-docs/html/Effect.Exception.htmlโ1389
This diff is too big to show here.
generated-docs/html/Effect.Now.htmlโ1363
This diff is too big to show here.
generated-docs/html/Effect.Ref.htmlโ1386
This diff is too big to show here.
generated-docs/html/Effect.Timer.htmlโ1371
This diff is too big to show here.
generated-docs/html/Effect.Uncurried.htmlโ1455
This diff is too big to show here.
generated-docs/html/Effect.Unsafe.htmlโ1358
This diff is too big to show here.
generated-docs/html/Effect.htmlโ1380
This diff is too big to show here.
generated-docs/html/FRP.Behavior.Keyboard.htmlโ1358
This diff is too big to show here.
generated-docs/html/FRP.Behavior.Mouse.htmlโ1358
This diff is too big to show here.
generated-docs/html/FRP.Behavior.Time.htmlโ1358
This diff is too big to show here.
generated-docs/html/FRP.Behavior.htmlโ1418
This diff is too big to show here.
generated-docs/html/FRP.Event.AnimationFrame.htmlโ1357
This diff is too big to show here.
generated-docs/html/FRP.Event.Class.htmlโ1414
This diff is too big to show here.
generated-docs/html/FRP.Event.Keyboard.htmlโ1361
This diff is too big to show here.
generated-docs/html/FRP.Event.Mouse.htmlโ1363
This diff is too big to show here.
generated-docs/html/FRP.Event.Time.htmlโ1361
This diff is too big to show here.
generated-docs/html/FRP.Event.VBus.htmlโ1356
This diff is too big to show here.
generated-docs/html/FRP.Event.htmlโ1449
This diff is too big to show here.
generated-docs/html/Foreign.Index.htmlโ1362
This diff is too big to show here.
generated-docs/html/Foreign.Keys.htmlโ1359
This diff is too big to show here.
generated-docs/html/Foreign.Object.Gen.htmlโ1357
This diff is too big to show here.
generated-docs/html/Foreign.Object.ST.Unsafe.htmlโ1358
This diff is too big to show here.
generated-docs/html/Foreign.Object.ST.htmlโ1369
This diff is too big to show here.
generated-docs/html/Foreign.Object.Unsafe.htmlโ1358
This diff is too big to show here.
generated-docs/html/Foreign.Object.htmlโ1410
This diff is too big to show here.
generated-docs/html/Foreign.htmlโ1404
This diff is too big to show here.
generated-docs/html/Heterogeneous.Folding.htmlโ1356
This diff is too big to show here.
generated-docs/html/Heterogeneous.Mapping.htmlโ1356
This diff is too big to show here.
generated-docs/html/Node.Buffer.Class.htmlโ1389
This diff is too big to show here.
generated-docs/html/Node.Buffer.Constants.htmlโ1356
This diff is too big to show here.
generated-docs/html/Node.Buffer.Immutable.htmlโ1374
This diff is too big to show here.
generated-docs/html/Node.Buffer.ST.htmlโ1368
This diff is too big to show here.
generated-docs/html/Node.Buffer.Types.htmlโ1360
This diff is too big to show here.
generated-docs/html/Node.Buffer.htmlโ1371
This diff is too big to show here.
generated-docs/html/Node.Encoding.htmlโ1358
This diff is too big to show here.
generated-docs/html/Node.EventEmitter.UtilTypes.htmlโ1356
This diff is too big to show here.
generated-docs/html/Node.EventEmitter.htmlโ1519
This diff is too big to show here.
generated-docs/html/Node.FS.Aff.htmlโ1394
This diff is too big to show here.
generated-docs/html/Node.FS.Async.htmlโ1398
This diff is too big to show here.
generated-docs/html/Node.FS.Constants.htmlโ1369
This diff is too big to show here.
generated-docs/html/Node.FS.Perms.htmlโ1392
This diff is too big to show here.
generated-docs/html/Node.FS.Stats.htmlโ1371
This diff is too big to show here.
generated-docs/html/Node.FS.Stream.htmlโ1404
This diff is too big to show here.
generated-docs/html/Node.FS.Sync.htmlโ1400
This diff is too big to show here.
generated-docs/html/Node.FS.htmlโ1361
This diff is too big to show here.
generated-docs/html/Node.Path.htmlโ1374
This diff is too big to show here.
generated-docs/html/Node.Platform.htmlโ1362
This diff is too big to show here.
generated-docs/html/Node.Process.htmlโ1576
This diff is too big to show here.
generated-docs/html/Node.Stream.Aff.htmlโ1451
This diff is too big to show here.
generated-docs/html/Node.Stream.htmlโ1415
This diff is too big to show here.
generated-docs/html/Node.Symbol.htmlโ1356
This diff is too big to show here.
generated-docs/html/Partial.Unsafe.htmlโ1360
This diff is too big to show here.
generated-docs/html/Partial.htmlโ1359
This diff is too big to show here.
generated-docs/html/Performance.Minibench.htmlโ1376
This diff is too big to show here.
generated-docs/html/Pipes.Core.htmlโ1364
This diff is too big to show here.
generated-docs/html/Pipes.Internal.htmlโ1356
This diff is too big to show here.
generated-docs/html/Pipes.ListT.htmlโ1356
This diff is too big to show here.
generated-docs/html/Pipes.Prelude.htmlโ1399
This diff is too big to show here.
generated-docs/html/Pipes.htmlโ1359
This diff is too big to show here.
generated-docs/html/Prelude.htmlโ1880
This diff is too big to show here.
generated-docs/html/Prim.Boolean.htmlโ1359
This diff is too big to show here.
generated-docs/html/Prim.Coerce.htmlโ1404
This diff is too big to show here.
generated-docs/html/Prim.Int.htmlโ1362
This diff is too big to show here.
generated-docs/html/Prim.Ordering.htmlโ1363
This diff is too big to show here.
generated-docs/html/Prim.Row.htmlโ1365
This diff is too big to show here.
generated-docs/html/Prim.RowList.htmlโ1364
This diff is too big to show here.
generated-docs/html/Prim.Symbol.htmlโ1364
This diff is too big to show here.
generated-docs/html/Prim.TypeError.htmlโ1388
This diff is too big to show here.
generated-docs/html/Prim.htmlโ1478
This diff is too big to show here.
generated-docs/html/Record.Builder.htmlโ1388
This diff is too big to show here.
generated-docs/html/Record.Studio.Keys.htmlโ1356
This diff is too big to show here.
generated-docs/html/Record.Studio.Map.htmlโ1363
This diff is too big to show here.
generated-docs/html/Record.Studio.MapKind.htmlโ1363
This diff is too big to show here.
generated-docs/html/Record.Studio.MapUniform.htmlโ1356
This diff is too big to show here.
generated-docs/html/Record.Studio.Merge.htmlโ1364
This diff is too big to show here.
generated-docs/html/Record.Studio.SameKeys.htmlโ1356
This diff is too big to show here.
generated-docs/html/Record.Studio.Sequence.htmlโ1360
This diff is too big to show here.
generated-docs/html/Record.Studio.Shrink.htmlโ1356
This diff is too big to show here.
generated-docs/html/Record.Studio.SingletonRecord.htmlโ1357
This diff is too big to show here.
generated-docs/html/Record.Studio.htmlโ1383
This diff is too big to show here.
generated-docs/html/Record.Unsafe.Union.htmlโ1356
This diff is too big to show here.
generated-docs/html/Record.Unsafe.htmlโ1370
This diff is too big to show here.
generated-docs/html/Record.htmlโ1417
This diff is too big to show here.
generated-docs/html/Safe.Coerce.htmlโ1417
This diff is too big to show here.
generated-docs/html/Spago.Generated.BuildInfo.htmlโ1356
This diff is too big to show here.
generated-docs/html/Test.Spec.Assertions.String.htmlโ1368
This diff is too big to show here.
generated-docs/html/Test.Spec.Assertions.htmlโ1363
This diff is too big to show here.
generated-docs/html/Test.Spec.Config.htmlโ1356
This diff is too big to show here.
generated-docs/html/Test.Spec.Console.htmlโ1356
This diff is too big to show here.
generated-docs/html/Test.Spec.Reporter.Base.htmlโ1358
This diff is too big to show here.
generated-docs/html/Test.Spec.Reporter.Console.htmlโ1356
This diff is too big to show here.
generated-docs/html/Test.Spec.Reporter.Dot.htmlโ1356
This diff is too big to show here.
generated-docs/html/Test.Spec.Reporter.Spec.htmlโ1356
This diff is too big to show here.
generated-docs/html/Test.Spec.Reporter.Tap.htmlโ1356
This diff is too big to show here.
generated-docs/html/Test.Spec.Reporter.TeamCity.htmlโ1357
This diff is too big to show here.
generated-docs/html/Test.Spec.Reporter.htmlโ1358
This diff is too big to show here.
generated-docs/html/Test.Spec.Result.htmlโ1356
This diff is too big to show here.
generated-docs/html/Test.Spec.Runner.Event.htmlโ1356
This diff is too big to show here.
generated-docs/html/Test.Spec.Runner.htmlโ1362
This diff is too big to show here.
generated-docs/html/Test.Spec.Speed.htmlโ1356
This diff is too big to show here.
generated-docs/html/Test.Spec.Style.htmlโ1356
This diff is too big to show here.
generated-docs/html/Test.Spec.Summary.htmlโ1356
This diff is too big to show here.
generated-docs/html/Test.Spec.Tree.htmlโ1362
This diff is too big to show here.
generated-docs/html/Test.Spec.htmlโ1388
This diff is too big to show here.
generated-docs/html/Type.Data.Boolean.htmlโ1364
This diff is too big to show here.
generated-docs/html/Type.Data.Ordering.htmlโ1367
This diff is too big to show here.
generated-docs/html/Type.Data.Symbol.htmlโ1364
This diff is too big to show here.
generated-docs/html/Type.Equality.htmlโ1364
This diff is too big to show here.
generated-docs/html/Type.Function.htmlโ1364
This diff is too big to show here.
generated-docs/html/Type.Prelude.htmlโ1390
This diff is too big to show here.
generated-docs/html/Type.Proxy.htmlโ1393
This diff is too big to show here.
generated-docs/html/Type.Row.Homogeneous.htmlโ1357
This diff is too big to show here.
generated-docs/html/Type.Row.htmlโ1373
This diff is too big to show here.
generated-docs/html/Type.RowList.htmlโ1368
This diff is too big to show here.
generated-docs/html/Uncurried.RWSE.htmlโ1366
This diff is too big to show here.
generated-docs/html/Uncurried.RWSET.htmlโ1370
This diff is too big to show here.
generated-docs/html/Uncurried.Reader.htmlโ1362
This diff is too big to show here.
generated-docs/html/Uncurried.ReaderT.htmlโ1366
This diff is too big to show here.
generated-docs/html/Uncurried.State.htmlโ1364
This diff is too big to show here.
generated-docs/html/Uncurried.StateT.htmlโ1368
This diff is too big to show here.
generated-docs/html/Uncurried.Writer.htmlโ1363
This diff is too big to show here.
generated-docs/html/Uncurried.WriterT.htmlโ1367
This diff is too big to show here.
generated-docs/html/Unsafe.Coerce.htmlโ1372
This diff is too big to show here.
generated-docs/html/Unsafe.Reference.htmlโ1361
This diff is too big to show here.
generated-docs/html/Web.DOM.CharacterData.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.DOM.ChildNode.htmlโ1357
This diff is too big to show here.
generated-docs/html/Web.DOM.Comment.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.DOM.DOMTokenList.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.DOM.Document.htmlโ1363
This diff is too big to show here.
generated-docs/html/Web.DOM.DocumentFragment.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.DOM.DocumentType.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.DOM.Element.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.DOM.HTMLCollection.htmlโ1362
This diff is too big to show here.
generated-docs/html/Web.DOM.Internal.Types.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.DOM.MutationObserver.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.DOM.MutationRecord.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.DOM.Node.htmlโ1395
This diff is too big to show here.
generated-docs/html/Web.DOM.NodeList.htmlโ1360
This diff is too big to show here.
generated-docs/html/Web.DOM.NodeType.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.DOM.NonDocumentTypeChildNode.htmlโ1358
This diff is too big to show here.
generated-docs/html/Web.DOM.NonElementParentNode.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.DOM.ParentNode.htmlโ1363
This diff is too big to show here.
generated-docs/html/Web.DOM.ProcessingInstruction.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.DOM.ShadowRoot.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.DOM.Text.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.DOM.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.Event.CustomEvent.htmlโ1359
This diff is too big to show here.
generated-docs/html/Web.Event.Event.htmlโ1373
This diff is too big to show here.
generated-docs/html/Web.Event.EventPhase.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.Event.EventTarget.htmlโ1376
This diff is too big to show here.
generated-docs/html/Web.Event.Internal.Types.htmlโ1358
This diff is too big to show here.
generated-docs/html/Web.File.Blob.htmlโ1380
This diff is too big to show here.
generated-docs/html/Web.File.File.htmlโ1359
This diff is too big to show here.
generated-docs/html/Web.File.FileList.htmlโ1358
This diff is too big to show here.
generated-docs/html/Web.File.FileReader.ReadyState.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.File.FileReader.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.File.Url.htmlโ1361
This diff is too big to show here.
generated-docs/html/Web.HTML.Common.htmlโ1361
This diff is too big to show here.
generated-docs/html/Web.HTML.Event.BeforeUnloadEvent.EventTypes.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.Event.BeforeUnloadEvent.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.Event.DataTransfer.DataTransferItem.htmlโ1366
This diff is too big to show here.
generated-docs/html/Web.HTML.Event.DataTransfer.htmlโ1372
This diff is too big to show here.
generated-docs/html/Web.HTML.Event.DragEvent.EventTypes.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.Event.DragEvent.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.Event.ErrorEvent.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.Event.EventTypes.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.Event.HashChangeEvent.EventTypes.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.Event.HashChangeEvent.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.Event.PageTransitionEvent.EventTypes.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.Event.PageTransitionEvent.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.Event.PopStateEvent.EventTypes.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.Event.PopStateEvent.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.Event.TrackEvent.EventTypes.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.Event.TrackEvent.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.HTMLAnchorElement.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.HTMLAreaElement.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.HTMLAudioElement.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.HTMLBRElement.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.HTMLBaseElement.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.HTMLBodyElement.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.HTMLButtonElement.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.HTMLCanvasElement.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.HTMLDListElement.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.HTMLDataElement.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.HTMLDataListElement.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.HTMLDivElement.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.HTMLDocument.ReadyState.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.HTMLDocument.VisibilityState.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.HTMLDocument.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.HTMLElement.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.HTMLEmbedElement.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.HTMLFieldSetElement.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.HTMLFormElement.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.HTMLHRElement.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.HTMLHeadElement.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.HTMLHeadingElement.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.HTMLHtmlElement.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.HTMLHyperlinkElementUtils.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.HTMLIFrameElement.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.HTMLImageElement.CORSMode.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.HTMLImageElement.DecodingHint.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.HTMLImageElement.Laziness.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.HTMLImageElement.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.HTMLInputElement.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.HTMLKeygenElement.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.HTMLLIElement.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.HTMLLabelElement.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.HTMLLegendElement.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.HTMLLinkElement.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.HTMLMapElement.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.HTMLMediaElement.CanPlayType.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.HTMLMediaElement.NetworkState.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.HTMLMediaElement.ReadyState.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.HTMLMediaElement.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.HTMLMetaElement.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.HTMLMeterElement.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.HTMLModElement.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.HTMLOListElement.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.HTMLObjectElement.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.HTMLOptGroupElement.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.HTMLOptionElement.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.HTMLOutputElement.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.HTMLParagraphElement.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.HTMLParamElement.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.HTMLPreElement.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.HTMLProgressElement.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.HTMLQuoteElement.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.HTMLScriptElement.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.HTMLSelectElement.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.HTMLSourceElement.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.HTMLSpanElement.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.HTMLStyleElement.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.HTMLTableCaptionElement.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.HTMLTableCellElement.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.HTMLTableColElement.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.HTMLTableDataCellElement.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.HTMLTableElement.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.HTMLTableHeaderCellElement.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.HTMLTableRowElement.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.HTMLTableSectionElement.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.HTMLTemplateElement.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.HTMLTextAreaElement.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.HTMLTimeElement.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.HTMLTitleElement.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.HTMLTrackElement.ReadyState.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.HTMLTrackElement.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.HTMLUListElement.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.HTMLVideoElement.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.History.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.Location.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.Navigator.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.SelectionMode.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.ValidityState.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.HTML.Window.htmlโ1358
This diff is too big to show here.
generated-docs/html/Web.HTML.htmlโ1361
This diff is too big to show here.
generated-docs/html/Web.Internal.FFI.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.Storage.Event.StorageEvent.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.Storage.Storage.htmlโ1388
This diff is too big to show here.
generated-docs/html/Web.UIEvent.CompositionEvent.EventTypes.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.UIEvent.CompositionEvent.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.UIEvent.EventTypes.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.UIEvent.FocusEvent.EventTypes.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.UIEvent.FocusEvent.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.UIEvent.InputEvent.EventTypes.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.UIEvent.InputEvent.InputType.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.UIEvent.InputEvent.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.UIEvent.KeyboardEvent.EventTypes.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.UIEvent.KeyboardEvent.htmlโ1370
This diff is too big to show here.
generated-docs/html/Web.UIEvent.MouseEvent.EventTypes.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.UIEvent.MouseEvent.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.UIEvent.UIEvent.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.UIEvent.WheelEvent.EventTypes.htmlโ1356
This diff is too big to show here.
generated-docs/html/Web.UIEvent.WheelEvent.htmlโ1356
This diff is too big to show here.
generated-docs/html/docs-search-app.jsโ82
This diff is too big to show here.
generated-docs/html/index.htmlโ1356
This diff is too big to show here.
generated-docs/html/index/declarations/0.jsโ2
This diff is too big to show here.
generated-docs/html/index/declarations/1.jsโ2
This diff is too big to show here.
generated-docs/html/index/declarations/10.jsโ2
This diff is too big to show here.
generated-docs/html/index/declarations/11.jsโ2
This diff is too big to show here.
generated-docs/html/index/declarations/12.jsโ2
This diff is too big to show here.
generated-docs/html/index/declarations/13.jsโ2
This diff is too big to show here.
generated-docs/html/index/declarations/14.jsโ2
This diff is too big to show here.
generated-docs/html/index/declarations/15.jsโ2
This diff is too big to show here.
generated-docs/html/index/declarations/16.jsโ2
This diff is too big to show here.
generated-docs/html/index/declarations/17.jsโ2
This diff is too big to show here.
generated-docs/html/index/declarations/18.jsโ2
This diff is too big to show here.
generated-docs/html/index/declarations/19.jsโ2
This diff is too big to show here.
generated-docs/html/index/declarations/2.jsโ2
This diff is too big to show here.
generated-docs/html/index/declarations/20.jsโ2
This diff is too big to show here.
generated-docs/html/index/declarations/21.jsโ2
This diff is too big to show here.
generated-docs/html/index/declarations/22.jsโ2
This diff is too big to show here.
generated-docs/html/index/declarations/23.jsโ2
This diff is too big to show here.
generated-docs/html/index/declarations/24.jsโ2
This diff is too big to show here.
generated-docs/html/index/declarations/25.jsโ2
This diff is too big to show here.
generated-docs/html/index/declarations/26.jsโ2
This diff is too big to show here.
generated-docs/html/index/declarations/27.jsโ2
This diff is too big to show here.
generated-docs/html/index/declarations/28.jsโ2
This diff is too big to show here.
generated-docs/html/index/declarations/29.jsโ2
This diff is too big to show here.
generated-docs/html/index/declarations/3.jsโ2
This diff is too big to show here.
generated-docs/html/index/declarations/30.jsโ2
This diff is too big to show here.
generated-docs/html/index/declarations/31.jsโ2
This diff is too big to show here.
generated-docs/html/index/declarations/32.jsโ2
This diff is too big to show here.
generated-docs/html/index/declarations/33.jsโ2
This diff is too big to show here.
generated-docs/html/index/declarations/34.jsโ2
This diff is too big to show here.
generated-docs/html/index/declarations/35.jsโ2
This diff is too big to show here.
generated-docs/html/index/declarations/36.jsโ2
This diff is too big to show here.
generated-docs/html/index/declarations/37.jsโ2
This diff is too big to show here.
generated-docs/html/index/declarations/38.jsโ2
This diff is too big to show here.
generated-docs/html/index/declarations/39.jsโ2
This diff is too big to show here.
generated-docs/html/index/declarations/4.jsโ2
This diff is too big to show here.
generated-docs/html/index/declarations/40.jsโ2
This diff is too big to show here.
generated-docs/html/index/declarations/42.jsโ2
This diff is too big to show here.
generated-docs/html/index/declarations/43.jsโ2
This diff is too big to show here.
generated-docs/html/index/declarations/44.jsโ2
This diff is too big to show here.
generated-docs/html/index/declarations/45.jsโ2
This diff is too big to show here.
generated-docs/html/index/declarations/46.jsโ2
This diff is too big to show here.
generated-docs/html/index/declarations/47.jsโ2
This diff is too big to show here.
generated-docs/html/index/declarations/48.jsโ2
This diff is too big to show here.
generated-docs/html/index/declarations/49.jsโ2
This diff is too big to show here.
generated-docs/html/index/declarations/5.jsโ2
This diff is too big to show here.
generated-docs/html/index/declarations/6.jsโ2
This diff is too big to show here.
generated-docs/html/index/declarations/7.jsโ2
This diff is too big to show here.
generated-docs/html/index/declarations/8.jsโ2
This diff is too big to show here.
generated-docs/html/index/declarations/9.jsโ2
This diff is too big to show here.
generated-docs/html/index/modules.jsโ1
This diff is too big to show here.
generated-docs/html/index/packages.jsโ1
This diff is too big to show here.
generated-docs/html/index/types/1000195174.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1001058062.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1002849419.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1003197450.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1006801783.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1014596940.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1016022600.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1021245635.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1021883944.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1031956309.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1033721588.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1036919339.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1037006066.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1037518646.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1039639542.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1043079975.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/104424236.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1046286253.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1046591304.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1047794147.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1052662028.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1055367900.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1056615743.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1057506922.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/105984524.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1061217032.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1061280793.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1061348265.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1065054583.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1065381466.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1065660013.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1069326838.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1069331643.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1070217397.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1075682863.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1080512026.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1080636297.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1080722025.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1082625752.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1085253363.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/108565110.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1086427884.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1089513135.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1096889489.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1097168003.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1097320645.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1102940599.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/110558074.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1105846263.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1109717445.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/111359800.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/111374388.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1115853530.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1119710654.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/112145049.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1122298076.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1123272490.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1123528992.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1124328259.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1124791180.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1125285739.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1125891169.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1128773526.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1129903344.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1130508774.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1130932319.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1131509264.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1131932138.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/113556802.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1139593758.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1144049569.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/114612059.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1150408809.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1151787487.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1151830515.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1152114406.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/115535518.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1155661941.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1156074823.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1157794603.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/115904697.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/115909502.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1160680565.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1163323911.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1168421268.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1168550407.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1169909367.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1171160460.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/117349631.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1173728290.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1174701182.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1175132402.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/117820950.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1178322085.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1179623675.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1185573594.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1187924167.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1188308881.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1188646573.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1190345256.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1192595335.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1193054427.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/119997303.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1201483944.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1202016606.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1204095770.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1207498890.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1211744452.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1212472593.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1212750442.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1216823517.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1217249734.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1219790818.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1222713552.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1223094262.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1223225914.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1228664763.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1231133784.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1236167165.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1236710073.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1237375144.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1241525131.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1245438528.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1249402822.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1250237620.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1251595176.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1253451861.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1253833545.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1254020427.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1255497969.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1258083830.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1259966935.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1260529709.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1260572365.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1260721004.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1260754365.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1262828201.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1263114265.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1266879368.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1271681093.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1272466186.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1274917006.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1275885301.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1280104695.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1280140041.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1280581810.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1281926042.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/128360886.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1284283886.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1285763475.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1286008420.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1288686871.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1288689729.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1290887379.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1292221496.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1293158726.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1293829517.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1294344751.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1295693358.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1297205572.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1299147159.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1305134221.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1306269729.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/130736738.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/130757957.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1308488618.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1308850778.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1309591566.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1315942498.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1320066153.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1320247824.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1320865543.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1321799244.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1322404674.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1322957737.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1326416849.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1327022279.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1334710828.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1334786030.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1335316258.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1341395327.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1349724005.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1350665781.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1351353240.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1355079742.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1364514710.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/137232926.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1376473364.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/137746459.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1382540634.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1384437672.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1386536029.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1386891401.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1390097576.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1391573173.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1391824940.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1393376256.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1395107578.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1396204567.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1396911320.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1397623387.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1399034089.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1399614293.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1401905320.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1403292.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1403416052.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1405665374.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1408186571.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1411009752.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1411871618.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1412646292.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1413018167.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1413366605.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1413525578.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/141479271.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1419825924.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1420702525.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1421170303.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1421401425.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/142253890.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/142394681.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1424433237.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1426321076.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1428767931.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1430937561.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1431639470.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1436977797.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1438172374.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1439522981.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1440485536.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1442891788.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1443038313.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1445916327.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1447752582.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1447940892.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1448010884.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1448820838.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1449148872.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1450311321.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1450533932.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1451144167.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1452406503.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1453001426.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1457644257.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1458326753.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1458493607.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1458579926.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1459487286.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1461550072.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1462724096.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1464253075.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1468023855.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1468194598.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1475567084.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/147617716.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1476977150.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1477867367.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1477872172.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1478173064.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/147877009.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1482199618.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1482830123.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1484041189.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1486971921.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1487148257.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/148957885.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1490274479.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1491871724.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1495235897.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1499191229.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1499962955.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1501612007.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1502783234.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1507055285.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1508564772.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1509145376.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1511484407.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1511769589.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1514030796.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1518312749.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1518351195.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1518918179.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1518922984.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1519068136.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1521006850.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1522930354.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1523535784.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1526269599.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/153082225.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1533931965.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1535325779.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1537803578.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/15433686.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1545381641.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1547038510.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1548569964.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1549651637.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1549781513.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1550484144.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1552324679.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1554874672.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1556787908.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1557556466.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1558897881.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1560917264.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1563809243.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/156414275.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1566546969.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1572664192.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1581780078.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1587274295.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1587454965.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1595638263.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1598188345.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1599934465.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1600922613.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1605779393.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/160646525.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1609296435.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1609734070.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1612138285.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1615669865.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1617051662.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1621017927.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1621926005.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1621967755.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1623309366.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1623528563.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1625516312.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1626102118.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1629515810.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/163185930.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1637918160.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1639860180.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1641769836.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1643113515.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1643497075.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1645334343.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1647047437.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1647652867.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1647657672.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/164859796.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1649597852.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1654652824.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1654694113.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1654823490.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1655157243.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1657951117.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1657976320.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1661608228.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1661696224.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1662515818.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1664699148.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1664708103.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1664740268.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1665574462.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1665746338.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1666035434.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1670150074.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1671792825.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1674779483.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1679017246.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1680144593.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1681290411.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1682163731.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1684027405.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1687125846.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1687468113.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1689475071.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1690765308.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1691714342.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1697000925.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1697295724.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1699274486.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1699566752.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/17.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1703396683.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1704472095.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1705850683.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1706146489.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1709194823.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1709977692.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1710586733.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1713057515.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/171688729.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1717303077.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1718670499.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1719504761.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1719691984.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/172049213.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1727844758.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1728399445.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1729446789.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1731517329.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1735516925.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/173604760.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1736122355.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1737267797.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/174112103.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1743812880.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1748706603.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/17492258.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1755735855.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1757483231.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1761263920.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1762843196.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1764204098.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1764787209.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/176481558.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1766584007.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1766843657.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1766944682.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1768292959.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1768594868.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1769136967.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1769287617.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1772064894.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1772196234.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1773450487.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1774335465.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1777757057.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1779176748.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1783156737.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1789831624.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1791569994.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1791598537.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1791692073.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1792305912.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1797684706.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/179996906.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/18040781.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1805026563.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1806580973.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1807853858.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1810700138.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1811453522.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/181404476.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1815355696.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1815501561.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1815572189.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1816149884.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1818409268.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1820913242.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/182559690.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1826175293.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1829450827.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1829853192.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1829857997.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1829861619.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1830463427.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1831512017.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1832784362.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1833403817.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1834475602.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1834699258.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1835101213.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1840624377.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1843007469.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1844327065.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1845459606.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1847661783.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1851188221.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1852532888.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1852912485.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1854242384.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1856224406.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1857287686.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1857514774.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1857597819.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1861221608.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1862661575.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1863700825.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/186436575.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1867548822.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1868015117.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1869899671.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1870505101.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1871870050.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1876538251.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1878068034.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1878184672.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1878673464.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1878678269.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1878815000.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1880958833.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1881044083.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1881564263.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1881761823.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1884885527.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1885576438.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1887007541.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1887987206.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1890684823.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1892959272.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1898568629.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1900339149.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/190065826.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1901278953.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1904454806.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1904633156.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/190627195.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1907844408.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1911223999.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1911738612.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1920652713.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1920661188.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1922896968.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1923540875.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1924128810.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1924225826.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1924628725.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1926006501.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1926919800.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1926948317.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1927553747.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1927718657.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/192810546.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1928666402.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1929421741.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1930858529.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1935702935.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1939782857.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1941645685.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1942496645.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1942786155.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1945081606.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1945086296.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1945500542.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1953084695.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1955869946.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1959099737.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1962109154.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1963810457.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1965045911.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1966670740.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1967420878.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1969976507.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1970789052.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/197175202.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1972713587.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1973516452.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/197578755.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1980087980.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1981118853.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1981283568.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1982772090.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1985760170.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1986878174.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1987334649.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1987483604.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1989153181.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1990919563.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1994836397.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/199746263.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1998935285.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/1999454002.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2000048763.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2001947444.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2001997742.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2004367363.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2006251934.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2006686597.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2007797145.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/200827727.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2011958249.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2013605334.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/201633192.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2016542071.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2017069925.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2017589462.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2020395948.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2020538849.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2020813803.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2021819219.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2021824024.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2023466093.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2024490699.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2024761682.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/20249745.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2025110120.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2026565475.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2029028662.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2030361672.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2031413276.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2032420707.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2033321634.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2035478585.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2035830136.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2036831376.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2042054411.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2043823358.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2048440963.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2049046393.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2049407398.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2050431453.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2050779484.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2053284831.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2054142834.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2056031036.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2056148543.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2056518048.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2056636466.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2057952270.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2059080167.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2059685597.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2061254071.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2061367949.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2061778575.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2062088952.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2063697772.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2064254007.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2064303202.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2064308007.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2068140898.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2068865576.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/206977256.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2073405728.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2076924586.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2077513610.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2077598679.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2079099802.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2084627749.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2084946512.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2087579841.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2088227361.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2089178662.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2091126513.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2092802876.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2093169503.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2098022030.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2098421055.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2100030722.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2103080044.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2104106002.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2104205063.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2107731372.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2109248111.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2109596142.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2110201572.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2113561535.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2113704844.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2115453124.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2121609312.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2126821303.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2127306067.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2127347375.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2133420237.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2142710036.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2143899553.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2144397956.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/215695079.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/219009864.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/219081769.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/219350315.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/223229175.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/223550420.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/225797636.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/226784896.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/229107307.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/230943629.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/23120246.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/236980193.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/238681137.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/24120184.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/242486520.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/245203064.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/248557844.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/24960441.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/253036581.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/253200986.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/255270583.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/256864638.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/259050460.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/260728587.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/262771787.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/265875588.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/265933781.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/2660309.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/266274469.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/269763769.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/270911995.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/272004106.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/273297833.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/274476759.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/276135030.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/277900468.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/279496439.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/280101869.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/282986754.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/283306593.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/284719474.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/28941862.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/290106197.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/292296680.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/294839098.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/307112115.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/307643337.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/308348279.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/308418723.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/308844343.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/310044487.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/312423007.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/315743816.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/317407655.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/322550005.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/336004725.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/340509329.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/342870308.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/346425214.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/346948801.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/347385574.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/347559434.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/350727571.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/350967018.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/364282958.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/364453998.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/366255317.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/366375136.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/367602148.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/367608031.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/367929097.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/368042588.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/368889561.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/377627868.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/379534707.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/381526628.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/387269820.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/387981234.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/387986822.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/392492855.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/397338768.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/397778906.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/399174377.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/399700500.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/400398361.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/400528959.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/401134389.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/404768862.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/405885794.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/406264981.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/408579158.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/408840963.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/410769077.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/411746196.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/412745866.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/41315769.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/416157356.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/41642420.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/421754312.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/429250790.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/430269268.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/433711478.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/437258399.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/438289438.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/442926758.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/446653794.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/448370036.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/448693365.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/451626441.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/452515265.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/452851914.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/452919806.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/458361649.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/461358312.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/464468023.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/46558173.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/465787138.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/465975917.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/466277274.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/466881284.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/467921490.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/472225674.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/473960726.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/47463766.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/474907625.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/474912430.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/475544628.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/476625292.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/479530035.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/480049737.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/480135465.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/484876154.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/488205666.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/488258102.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/488467796.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/492914970.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/49550466.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/495933182.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/497544299.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/500871754.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/503662502.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/505077409.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/506644462.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/509130885.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/509911763.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/510585788.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/510656637.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/511262067.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/514245699.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/514460381.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/520383031.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/521665684.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/522077477.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/530332937.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/530337742.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/531463271.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/534053795.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/534462096.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/536848485.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/537661877.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/542611552.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/543534265.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/544072939.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/549393473.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/550952236.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/551325565.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/551608011.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/552229963.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/553251241.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/556731375.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/559124982.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/560322021.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/563782937.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/567367170.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/57059597.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/57123454.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/57188589.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/573509192.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/573814716.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/576843040.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/576918516.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/579150039.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/583441206.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/587667765.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/593550742.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/594430082.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/598252830.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/59889134.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/603904616.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/60461084.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/605113569.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/605562627.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/606744087.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/609132456.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/609744554.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/612070242.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/613013591.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/613072760.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/613075543.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/616471733.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/616476538.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/616590077.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/617391587.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/61808545.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/618322290.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/618707920.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/619956887.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/621089338.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/621094143.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/622686574.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/625624726.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/626637067.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/629029765.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/63432659.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/63437464.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/63462450.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/63467255.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/63522032.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/635901960.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/636170646.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/636238303.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/636246071.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/638955237.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/63959287.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/643273621.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/643849793.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/64449693.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/645216456.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/645482173.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/64564717.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/64578915.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/646482954.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/646725214.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/656529240.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/657104067.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/657183716.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/657616790.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/659775831.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/66024.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/660545990.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/66055.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/660626283.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/663521795.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/665966371.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/66628313.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/666411656.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/668307956.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/669015969.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/669533779.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/671210227.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/67202.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/672470451.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/673483497.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/675466341.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/676598126.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/678557664.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/679541565.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/680716906.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/68576892.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/687264747.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/688792203.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/69182322.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/69187127.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/692857257.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/693056406.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/693093867.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/69320354.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/699099133.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/702309775.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/703527918.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/706425289.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/707191817.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/707824747.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/708812768.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/711471740.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/716274324.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/717667289.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/72007.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/721773373.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/723751997.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/725527832.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/72670348.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/728445701.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/728830516.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/730776115.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/735966506.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/736876334.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/73829524.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/740586444.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/742153457.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/745293605.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/747509109.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/747622536.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/748204276.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/748554680.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/749837831.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/750150812.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/752098228.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/752386403.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/752592820.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/753198628.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/753910236.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/754988016.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/760949468.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/76307835.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/763244612.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/77546432.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/775565673.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/777583157.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/778152694.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/785791611.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/787463597.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/789628709.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/790042097.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/800848702.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/805373275.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/80604003.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/80678066.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/808131868.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/808203202.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/808962765.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/810859065.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/812398080.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/813819258.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/81400.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/81589627.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/816082100.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/816640036.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/821488886.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/821902559.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/822470859.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/823815735.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/827519370.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/827674208.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/828621320.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/829226750.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/831548375.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/832777122.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/833004664.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/833238925.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/833387880.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/833844355.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/833849160.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/835408366.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/837351723.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/839201434.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/839663878.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/845107156.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/845622538.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/851712552.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/851809436.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/852317982.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/85289577.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/857250471.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/861868076.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/862422825.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/862473506.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/862478311.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/862794937.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/864703527.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/866366249.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/867145001.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/87.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/870046135.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/87042857.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/870451818.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/87047662.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/872006457.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/873654541.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/87475998.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/87504137.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/876293388.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/876385394.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/87653092.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/878940075.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/88011954.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/884035465.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/887284043.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/887335273.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/888507243.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/890497227.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/891102657.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/891107462.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/892815886.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/894956958.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/896389483.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/899804360.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/904952176.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/907401969.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/909708554.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/91098522.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/912577561.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/913614997.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/91665267.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/917203534.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/918304491.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/918501766.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/918711428.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/919126378.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/922002573.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/922224927.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/92270697.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/923073389.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/923552941.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/925378936.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/92905315.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/930760526.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/932009732.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/932846927.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/933389839.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/93358253.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/933995269.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/934809415.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/934852242.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/936748340.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/937099949.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/937333163.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/937958684.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/938951959.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/939118519.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/939310133.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/940075277.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/940159108.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/94317450.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/943228850.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/944559539.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/947792576.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/948406407.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/948707992.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/950970283.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/951553578.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/952414378.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/952653934.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/953460935.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/953928661.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/956919401.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/958189763.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/962127499.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/962188397.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/962356843.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/964284089.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/968791428.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/968871157.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/982347189.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/983722749.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/984636553.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/986840739.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/987208067.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/994446273.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/995443815.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/996119224.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/996491990.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/997105165.jsโ2
This diff is too big to show here.
generated-docs/html/index/types/999625991.jsโ2
This diff is too big to show here.
package-lock.jsonโ2924
This diff is too big to show here.
package.json+8โ45
This diff is too big to show here.
packages/playground/README.mdโ73
This diff is too big to show here.
packages/playground/run.shโ22
This diff is too big to show here.
packages/playground/spago.yamlโ8
This diff is too big to show here.
packages/playground/src/Main.pursโ44
This diff is too big to show here.
packages/yoga-om-core/README.mdโ109
This diff is too big to show here.
packages/yoga-om-core/package.jsonโ11
This diff is too big to show here.
packages/yoga-om-core/spago.yamlโ40
This diff is too big to show here.
packages/yoga-om-layer/EXAMPLE_ERROR.mdโ92
This diff is too big to show here.
packages/yoga-om-layer/PLAYGROUND.mdโ87
This diff is too big to show here.
packages/yoga-om-layer/README.mdโ242
This diff is too big to show here.
packages/yoga-om-layer/spago.yamlโ24
This diff is too big to show here.
packages/yoga-om-layer/src/Yoga/Om/Layer.pursโ206
This diff is too big to show here.
packages/yoga-om-layer/test-errors.shโ99
This diff is too big to show here.
packages/yoga-om-layer/test-negative/AllSatisfied.expectedโ1
This diff is too big to show here.
packages/yoga-om-layer/test-negative/AllSatisfied.pursโ19
This diff is too big to show here.
packages/yoga-om-layer/test-negative/DuplicateProvides.pursโ24
This diff is too big to show here.
packages/yoga-om-layer/test-negative/MissingConfig.expectedโ4
This diff is too big to show here.
packages/yoga-om-layer/test-negative/MissingConfig.pursโ19
This diff is too big to show here.
packages/yoga-om-layer/test-negative/MissingConfigRun.expectedโ3
This diff is too big to show here.
packages/yoga-om-layer/test-negative/MissingConfigRun.pursโ20
This diff is too big to show here.
packages/yoga-om-layer/test-negative/MissingDep.pursโ18
This diff is too big to show here.
packages/yoga-om-layer/test-negative/MissingLogger.expectedโ4
This diff is too big to show here.
packages/yoga-om-layer/test-negative/MissingLogger.pursโ20
This diff is too big to show here.
packages/yoga-om-layer/test-negative/MissingOneField.expectedโ3
This diff is too big to show here.
packages/yoga-om-layer/test-negative/MissingOneField.pursโ21
This diff is too big to show here.
packages/yoga-om-layer/test-negative/MultipleMissing.expectedโ4
This diff is too big to show here.
packages/yoga-om-layer/test-negative/MultipleMissing.pursโ23
This diff is too big to show here.
packages/yoga-om-layer/test-negative/ShowDiff.expectedโ5
This diff is too big to show here.
packages/yoga-om-layer/test-negative/ShowDiff.pursโ22
This diff is too big to show here.
packages/yoga-om-layer/test-negative/SimpleTypeMismatch.expectedโ1
This diff is too big to show here.
packages/yoga-om-layer/test-negative/SimpleTypeMismatch.pursโ16
This diff is too big to show here.
packages/yoga-om-layer/test-negative/TypeMismatch.expectedโ1
This diff is too big to show here.
packages/yoga-om-layer/test-negative/TypeMismatch.pursโ22
This diff is too big to show here.
packages/yoga-om-layer/test/Playground.pursโ89
This diff is too big to show here.
packages/yoga-om-layer/test/Test/Main.pursโ123
This diff is too big to show here.
packages/yoga-om-layer/try-error.shโ57
This diff is too big to show here.
packages/yoga-om-layer/try-example.shโ48
This diff is too big to show here.
packages/yoga-om-node/README.mdโ107
This diff is too big to show here.
packages/yoga-om-node/package.jsonโ11
This diff is too big to show here.
packages/yoga-om-node/spago.yamlโ28
This diff is too big to show here.
packages/yoga-om-node/src/Test/Main.pursโ12
This diff is too big to show here.
packages/yoga-om-node/src/Yoga/Om/Node.pursโ167
This diff is too big to show here.
packages/yoga-om-node/src/Yoga/Om/Node.test.pursโ56
This diff is too big to show here.
packages/yoga-om-rom/README.mdโ132
This diff is too big to show here.
packages/yoga-om-rom/package.jsonโ11
This diff is too big to show here.
packages/yoga-om-rom/spago.yamlโ31
This diff is too big to show here.
packages/yoga-om-rom/src/Test/Main.pursโ12
This diff is too big to show here.
packages/yoga-om-rom/src/Yoga/Om/Rom.pursโ160
This diff is too big to show here.
packages/yoga-om-rom/src/Yoga/Om/Rom.test.pursโ24
This diff is too big to show here.
packages/yoga-om-strom/BENCHMARK.mdโ215
This diff is too big to show here.
packages/yoga-om-strom/COMPARISON.mdโ335
This diff is too big to show here.
packages/yoga-om-strom/DEMO.mdโ383
This diff is too big to show here.
packages/yoga-om-strom/DO_EXAMPLES.mdโ496
This diff is too big to show here.
packages/yoga-om-strom/DO_NOTATION.mdโ491
This diff is too big to show here.
packages/yoga-om-strom/INDEX.mdโ337
This diff is too big to show here.
packages/yoga-om-strom/INTEGRATION_GUIDE.mdโ334
This diff is too big to show here.
packages/yoga-om-strom/KAFKA_INTEGRATION.mdโ596
This diff is too big to show here.
packages/yoga-om-strom/MERGING.mdโ474
This diff is too big to show here.
packages/yoga-om-strom/MINIBENCH_SETUP.mdโ169
This diff is too big to show here.
packages/yoga-om-strom/QUICKREF.mdโ346
This diff is too big to show here.
packages/yoga-om-strom/QUICK_ANSWERS.mdโ324
This diff is too big to show here.
packages/yoga-om-strom/README.mdโ443
This diff is too big to show here.
packages/yoga-om-strom/STATUS.mdโ327
This diff is too big to show here.
packages/yoga-om-strom/SUMMARY.mdโ362
This diff is too big to show here.
packages/yoga-om-strom/TESTING.mdโ329
This diff is too big to show here.
packages/yoga-om-strom/TEST_COVERAGE.mdโ300
This diff is too big to show here.
packages/yoga-om-strom/benchmark/Benchmark.pursโ198
This diff is too big to show here.
packages/yoga-om-strom/benchmark/Main.pursโ8
This diff is too big to show here.
packages/yoga-om-strom/compare-results.mjsโ199
This diff is too big to show here.
packages/yoga-om-strom/examples/DoVsOperators.pursโ539
This diff is too big to show here.
packages/yoga-om-strom/examples/KafkaIntegration.jsโ209
This diff is too big to show here.
packages/yoga-om-strom/examples/KafkaIntegration.pursโ436
This diff is too big to show here.
packages/yoga-om-strom/examples/MergingShowcase.pursโ642
This diff is too big to show here.
packages/yoga-om-strom/examples/RealWorldDo.pursโ422
This diff is too big to show here.
packages/yoga-om-strom/package.jsonโ18
This diff is too big to show here.
packages/yoga-om-strom/run-benchmark.mjsโ2
This diff is too big to show here.
packages/yoga-om-strom/run-minibench-all.shโ66
This diff is too big to show here.
packages/yoga-om-strom/run-minibench-bun.mjsโ6
This diff is too big to show here.
packages/yoga-om-strom/run-minibench-deno.mjsโ6
This diff is too big to show here.
packages/yoga-om-strom/run-minibench-node.mjsโ6
This diff is too big to show here.
packages/yoga-om-strom/spago.yamlโ41
This diff is too big to show here.
packages/yoga-om-strom/src/Benchmark.pursโ202
This diff is too big to show here.
packages/yoga-om-strom/src/Benchmark/HighRes.jsโ9
This diff is too big to show here.
packages/yoga-om-strom/src/Benchmark/HighRes.pursโ7
This diff is too big to show here.
packages/yoga-om-strom/src/Benchmark/MinibenchMain.pursโ324
This diff is too big to show here.
packages/yoga-om-strom/src/Test/Main.pursโ13
This diff is too big to show here.
packages/yoga-om-strom/src/Yoga/Om/Strom.pursโ1473
This diff is too big to show here.
packages/yoga-om-strom/src/Yoga/Om/Strom.test.pursโ575
This diff is too big to show here.
packages/yoga-om-strom/src/Yoga/Om/Strom/Examples.pursโ523
This diff is too big to show here.
packages/yoga-om-strom/test/Test/Strom/Spec.pursโ459
This diff is too big to show here.
spago.lock+76โ720
This diff is too big to show here.
spago.yaml+41โ1
This diff is too big to show here.
src/Test/Main.purs
This diff is too big to show here.
src/Yoga/Om.purs
This diff is too big to show here.
src/Yoga/Om.test.purs
This diff is too big to show here.
src/Yoga/Om/Error.js
This diff is too big to show here.
src/Yoga/Om/Error.purs
This diff is too big to show here.
test-all.shโ22
This diff is too big to show here.
test/Test/Main.jsโ3
This diff is too big to show here.
test/Test/Main.pursโ264
This diff is too big to show here.
test/Test/Node.pursโ56
This diff is too big to show here.
test/Test/Rom.pursโ24
This diff is too big to show here.
test/spago.yamlโ15
This diff is too big to show here.