git.iko.soy/rowtype-yoga/purescript-yoga-om
on main help sign in
Convert repository from monorepo to single yoga-om package
ef5ccdeMark
.github/workflows/ci.yml+2−14
@@ -1,21 +1,9 @@
1name: CI
1name: CI
2−
3−on:
4− push:
5− branches: [main]
6− pull_request:
2+on: [push, pull_request]
7− branches: [main]
8−
9jobs:
3jobs:
10 build:
4 build:
11 runs-on: ubuntu-latest
5 runs-on: ubuntu-latest
12−
13 steps:
6 steps:
14 - uses: actions/checkout@v4
7 - uses: actions/checkout@v4
15 - uses: rowtype-yoga/purescript-yoga-actions/.github/actions/setup@main
8 - uses: rowtype-yoga/purescript-yoga-actions/.github/actions/setup@main
16−
17− - name: Build all packages
18− run: spago build
9+ - run: spago build
19−
20− - name: Test all packages
21− run: spago test
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
2
2
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.
4
4
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).
5+This is the base package that provides the `Om` type and all core operations. It works in both browser and Node.js environments.
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
26
6
27## Installation
7## Installation
28
8
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−
81```bash
9```bash
82spago install yoga-om-core
10spago install yoga-om-core
83```
11```
84
12
85−### Node.js Extensions (Optional)
13+## What's Included
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
130
14
131−### 📦 Package Documentation
15+- **Om type**: The core monad transformer stack combining `ReaderT`, `ExceptV`, and `Aff`
132−- [yoga-om-core README](./packages/yoga-om-core/README.md)
16+- **Error handling**: `throw`, `handleErrors`, `expand` for mix-and-match error types
133−- [yoga-om-node README](./packages/yoga-om-node/README.md)
17+- **Dependency injection**: `ask`, `asks` for accessing context
134−- [yoga-om-rom README](./packages/yoga-om-rom/README.md)
18+- **Parallel computations**: `race`, `inParallel` for concurrent operations
135−- [yoga-om-strom README](./packages/yoga-om-strom/README.md)
19+- **Helpers**: `note`, `delay`, `unliftAff` and more
136
20
137−## What can it do?
21+## Basic Usage
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.
148
22
149```purescript
23```purescript
150−myOmThatNeedsDbName = do
24+import Yoga.Om (Om)
151− { dbName } <- ask
25+import Yoga.Om as Om
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.
160
26
161−### Throwing errors
27+myApp :: Om { dbUrl :: String } (dbError :: String) Unit
162−To throw an error, simply use the `throwError` function with a record that
28+myApp = do
163−has the name of the error as its label and the error data as its value:
29+ { dbUrl } <- Om.ask
30+ -- Your application logic here
31+ pure unit
164
32
165−```purescript
33+main = myApp
166−myOmThatThrows = Om.throw { myError: "This failed" }
34+ # Om.launchOm_
35+ { dbUrl: "postgresql://localhost" }
36+ { exception: \e -> Console.error (show e)
37+ , dbError: \err -> Console.error err
38+ }
167```
39```
168
40
169−This is an `Om _ ( myError :: String ) _`
41+## Features
170
42
171−### Handling errors
43+### Context (Dependency Injection)
172−To catch one or multiple errors use `handleErrors`
173
44
174```purescript
45```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
176```
50```
177
51
178−As stated earlier `myOmThatThrows` has type: `Om _ (myError :: String) _`.
52+### Error Handling
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.
187
53
188```purescript
54```purescript
189−om1 :: forall otherErrors. Om _ ( ioError :: Int | otherErrors ) _
55+saveUser :: Om _ (dbError :: String, validationError :: String) Unit
190−om1 = throw { ioError: -8 }
56+saveUser = do
191−
57+ -- Can throw either dbError or validationError
192−om2 :: forall otherErrors. Om _ ( userError :: String | otherErrors ) _
58+ Om.throw { validationError: "Invalid email" }
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
199```
59```
200
60
201−This means that you can and should only tag a function with the errors it can actually
61+### Parallel Operations
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:
218
62
219```purescript
63```purescript
220−module Main where
64+fetchMultiple :: Om _ _ (Array User)
221−
65+fetchMultiple = Om.inParallel
222−import Prelude
66+ [ fetchUser 1
223−import Effect.Class.Console as Console
67+ , fetchUser 2
224−import Effect (Effect)
68+ , fetchUser 3
225−import Data.Maybe (Maybe)
69+ ]
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
245```
70```
246
71
247−### Parallel computations
72+## Testing
248
73
249−You can run different `Om`s in parallel.
74+Tests are colocated with the implementation in the `test/` directory:
250
75
251−Either the fastest one that does not error out wins:
76+```bash
252−```purescript
77+# Run tests
253−Om.race [ Om.delay (1.0 # Seconds) *> pure "slow" , pure "fast" ]
78+cd packages/yoga-om-core && spago test
254−```
255
79
256−Or you look at all the results and get an `Om _ _ (Array _)`:
80+# Or from workspace root
257−```purescript
81+bun test:core
258−Om.inParallel
259− [ Om.delay (9.0 # Milliseconds) *> pure "1"
260− , Om.delay (1.0 # Milliseconds) *> pure "2"
261− ]
262```
82```
263
83
264−## FAQ
84+See [test/Test/Om/Core.purs](./test/Test/Om/Core.purs) for comprehensive test examples.
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 (+))
284
85
285−myWholeApp :: Om (DB.Ctx + Cache.Ctx ()) (DB.Errs + Cache.Errs ()) Unit
86+## Package Structure
286−myWholeApp = do
287− DB.writeToDB "'); DROP TABLE orders;--"
288
87
289```
88```
290−
89+yoga-om-core/
291−```purescript
90+├── src/
292−module DB where
91+│ └── Yoga/
293−
92+│ ├── Om.purs # Main Om implementation
294−writeToDB :: forall ctx errs. String -> Om (Ctx ctx) (Errs errs) Unit
93+│ └── Om/
295−writeToDB s = do
94+│ ├── Error.purs # Error types and helpers
296− -- ...
95+│ └── Error.js # FFI for error handling
297− pure unit
96+└── test/ # Tests colocated here!
298−
97+ └── Test/
299−
98+ ├── Main.purs # Test runner
300−type Ctx r = (dbCtx :: { port :: Int, hostname :: String } | r)
99+ └── Om/
301−
100+ └── Core.purs # Core Om tests (20 tests)
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−
306```
101```
307
102
308−## Technical behind the scenes info
103+## See Also
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
316
104
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
318
108
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">-&gt;</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">-&gt;</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">-&gt;</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">-&gt;</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">-&gt;</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">-&gt;</span> <a href="Prim.html#t:String" title="Prim.String"><span class="ctor">String</span></a> <span class="syntax">-&gt;</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 &lt;&gt; underline &lt;&gt; foreground BrightRed) &quot;hello world&quot;
1361−</code></pre>
1362−<p>would print &quot;hello world&quot; 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">-&gt;</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">-&gt;</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">-&gt;</span> <a href="Bolson.Core.html#t:PSR" title="Bolson.Core.PSR"><span class="ctor">PSR</span></a> r <span class="syntax">-&gt;</span> interpreter <span class="syntax">-&gt;</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">-&gt;</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">=&gt;</span> <a href="Prim.Row.html#t:Lacks" title="Prim.Row.Lacks"><span class="ctor">Lacks</span></a> <span class="syntax">&quot;id&quot;</span> r <span class="syntax">=&gt;</span> <a href="Prim.Row.html#t:Lacks" title="Prim.Row.Lacks"><span class="ctor">Lacks</span></a> <span class="syntax">&quot;raiseId&quot;</span> r <span class="syntax">=&gt;</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">-&gt;</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">-&gt;</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">-&gt;</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">-&gt;</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">-&gt;</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">-&gt;</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">=&gt;</span> <a href="Prim.Row.html#t:Lacks" title="Prim.Row.Lacks"><span class="ctor">Lacks</span></a> <span class="syntax">&quot;id&quot;</span> r <span class="syntax">=&gt;</span> <a href="Prim.Row.html#t:Lacks" title="Prim.Row.Lacks"><span class="ctor">Lacks</span></a> <span class="syntax">&quot;raiseId&quot;</span> r <span class="syntax">=&gt;</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">-&gt;</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">-&gt;</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">-&gt;</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">-&gt;</span> obj1 payload<span class="syntax">)</span> <span class="syntax">-&gt;</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">-&gt;</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">=&gt;</span> <a href="Prim.Row.html#t:Lacks" title="Prim.Row.Lacks"><span class="ctor">Lacks</span></a> <span class="syntax">&quot;id&quot;</span> r <span class="syntax">=&gt;</span> <a href="Prim.Row.html#t:Lacks" title="Prim.Row.Lacks"><span class="ctor">Lacks</span></a> <span class="syntax">&quot;raiseId&quot;</span> r <span class="syntax">=&gt;</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">-&gt;</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">-&gt;</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">-&gt;</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">-&gt;</span> obj2 payload<span class="syntax">)</span> <span class="syntax">-&gt;</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">=&gt;</span> <a href="Prim.Row.html#t:Lacks" title="Prim.Row.Lacks"><span class="ctor">Lacks</span></a> <span class="syntax">&quot;id&quot;</span> r <span class="syntax">=&gt;</span> <a href="Prim.Row.html#t:Lacks" title="Prim.Row.Lacks"><span class="ctor">Lacks</span></a> <span class="syntax">&quot;raiseId&quot;</span> r <span class="syntax">=&gt;</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">-&gt;</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">-&gt;</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">-&gt;</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">-&gt;</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">-&gt;</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">-&gt;</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">=&gt;</span> <a href="Prim.Row.html#t:Lacks" title="Prim.Row.Lacks"><span class="ctor">Lacks</span></a> <span class="syntax">&quot;id&quot;</span> r <span class="syntax">=&gt;</span> <a href="Prim.Row.html#t:Lacks" title="Prim.Row.Lacks"><span class="ctor">Lacks</span></a> <span class="syntax">&quot;raiseId&quot;</span> r <span class="syntax">=&gt;</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">-&gt;</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">-&gt;</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">-&gt;</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">-&gt;</span> obj1 payload<span class="syntax">)</span> <span class="syntax">-&gt;</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">-&gt;</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">=&gt;</span> <a href="Prim.Row.html#t:Lacks" title="Prim.Row.Lacks"><span class="ctor">Lacks</span></a> <span class="syntax">&quot;id&quot;</span> r <span class="syntax">=&gt;</span> <a href="Prim.Row.html#t:Lacks" title="Prim.Row.Lacks"><span class="ctor">Lacks</span></a> <span class="syntax">&quot;raiseId&quot;</span> r <span class="syntax">=&gt;</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">-&gt;</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">-&gt;</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">-&gt;</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">-&gt;</span> obj2 payload<span class="syntax">)</span> <span class="syntax">-&gt;</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">-&gt;</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">-&gt;</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">-&gt;</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">-&gt;</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">-&gt;</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">-&gt;</span> <a href="FRP.Event.html#t:Event" title="FRP.Event.Event"><span class="ctor">Event</span></a> i <span class="syntax">-&gt;</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">-&gt;</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">-&gt;</span> <a href="Prim.html#t:Type" title="Prim.Type"><span class="ctor">Type</span></a> <span class="syntax">-&gt;</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">-&gt;</span> interpreter <span class="syntax">-&gt;</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:&lt;anonymous&gt;"><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:&lt;anonymous&gt;"><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">-&gt;</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">-&gt;</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&#39;"><code><a href="Bolson.Core.html#v:DynamicChildren&#39;" title="Bolson.Core.DynamicChildren&#39;"><span class="ctor">DynamicChildren&#39;</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&#39;"><code><a href="Bolson.Core.html#v:FixedChildren&#39;" title="Bolson.Core.FixedChildren&#39;"><span class="ctor">FixedChildren&#39;</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&#39;"><code><a href="Bolson.Core.html#v:EventfulElement&#39;" title="Bolson.Core.EventfulElement&#39;"><span class="ctor">EventfulElement&#39;</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&#39;"><code><a href="Bolson.Core.html#v:Element&#39;" title="Bolson.Core.Element&#39;"><span class="ctor">Element&#39;</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">-&gt;</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">-&gt;</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">-&gt;</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">-&gt;</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">-&gt;</span> <a href="FRP.Event.html#t:Event" title="FRP.Event.Event"><span class="ctor">Event</span></a> a <span class="syntax">-&gt;</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">-&gt;</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">=&gt;</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">=&gt;</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">-&gt;</span> <span class="syntax">(</span><a href="Prim.html#t:Record" title="Prim.Record"><span class="ctor">Record</span></a> push <span class="syntax">-&gt;</span> <a href="Prim.html#t:Record" title="Prim.Record"><span class="ctor">Record</span></a> event <span class="syntax">-&gt;</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">-&gt;</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">-&gt;</span> <a href="Prim.html#t:Type" title="Prim.Type"><span class="ctor">Type</span></a><span class="syntax">)</span> <span class="syntax">-&gt;</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">&lt;=</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>* -&gt; *</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 &lt;|&gt; y) &lt;|&gt; z == x &lt;|&gt; (y &lt;|&gt; z)</code></li>
1363−<li>Distributivity: <code>f &lt;$&gt; (x &lt;|&gt; y) == (f &lt;$&gt; x) &lt;|&gt; (f &lt;$&gt; 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>(&lt;|&gt;)</code> is defined to be concatenation.</p>
1367−<p>A common use case is to select the first &quot;valid&quot; item, or, if all items
1368−are &quot;invalid&quot;, the last &quot;invalid&quot; item.</p>
1369−<p>For example:</p>
1370−<pre class="purescript"><code>import Control.Alt ((&lt;|&gt;))
1371−import Data.Maybe (Maybe(..)
1372−import Data.Either (Either(..))
1373−
1374−Nothing &lt;|&gt; Just 1 &lt;|&gt; Just 2 == Just 1
1375−Left &quot;err&quot; &lt;|&gt; Right 1 &lt;|&gt; Right 2 == Right 1
1376−Left &quot;err 1&quot; &lt;|&gt; Left &quot;err 2&quot; &lt;|&gt; Left &quot;err 3&quot; == Left &quot;err 3&quot;
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">-&gt;</span> f a <span class="syntax">-&gt;</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:(&lt;|&gt;)"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:(&lt;|&gt;)">#</a><span>(&lt;|&gt;)</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">-&gt;</span> <a href="Prim.html#t:Type" title="Prim.Type"><span class="ctor">Type</span></a><span class="syntax">)</span> <span class="syntax">-&gt;</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 -&gt; b</code> into functions
1381−<code>f a -&gt; 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 &lt;&lt;&lt; g) = map f &lt;&lt;&lt; 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">-&gt;</span> b<span class="syntax">)</span> <span class="syntax">-&gt;</span> f a <span class="syntax">-&gt;</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">=&gt;</span> f a <span class="syntax">-&gt;</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 -&gt; void do
1394− print n
1395− print (n * n)
1396−</code></pre>
1397−</div></div><div class="decl" id="v:(&lt;$&gt;)"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:(&lt;$&gt;)">#</a><span>(&lt;$&gt;)</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:(&lt;$)"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:(&lt;$)">#</a><span>(&lt;$)</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:(&lt;#&gt;)"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:(&lt;#&gt;)">#</a><span>(&lt;#&gt;)</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:($&gt;)"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:($&gt;)">#</a><span>($&gt;)</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">-&gt;</span> <a href="Prim.html#t:Type" title="Prim.Type"><span class="ctor">Type</span></a><span class="syntax">)</span> <span class="syntax">-&gt;</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">&lt;=</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 &lt;|&gt; g) &lt;*&gt; x == (f &lt;*&gt; x) &lt;|&gt; (g &lt;*&gt; x)</code></li>
1362−<li>Annihilation: <code>empty &lt;*&gt; 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">=&gt;</span> <a href="Prim.html#t:Boolean" title="Prim.Boolean"><span class="ctor">Boolean</span></a> <span class="syntax">-&gt;</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 -&gt; Array Int
1372−factors n = do
1373− a &lt;- 1..n
1374− b &lt;- 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">-&gt;</span> <a href="Prim.html#t:Type" title="Prim.Type"><span class="ctor">Type</span></a><span class="syntax">)</span> <span class="syntax">-&gt;</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">&lt;=</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>* -&gt; *</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 &lt;|&gt; y) &lt;|&gt; z == x &lt;|&gt; (y &lt;|&gt; z)</code></li>
1385−<li>Distributivity: <code>f &lt;$&gt; (x &lt;|&gt; y) == (f &lt;$&gt; x) &lt;|&gt; (f &lt;$&gt; 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>(&lt;|&gt;)</code> is defined to be concatenation.</p>
1389−<p>A common use case is to select the first &quot;valid&quot; item, or, if all items
1390−are &quot;invalid&quot;, the last &quot;invalid&quot; item.</p>
1391−<p>For example:</p>
1392−<pre class="purescript"><code>import Control.Alt ((&lt;|&gt;))
1393−import Data.Maybe (Maybe(..)
1394−import Data.Either (Either(..))
1395−
1396−Nothing &lt;|&gt; Just 1 &lt;|&gt; Just 2 == Just 1
1397−Left &quot;err&quot; &lt;|&gt; Right 1 &lt;|&gt; Right 2 == Right 1
1398−Left &quot;err 1&quot; &lt;|&gt; Left &quot;err 2&quot; &lt;|&gt; Left &quot;err 3&quot; == Left &quot;err 3&quot;
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">-&gt;</span> f a <span class="syntax">-&gt;</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:(&lt;|&gt;)"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:(&lt;|&gt;)">#</a><span>(&lt;|&gt;)</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">-&gt;</span> <a href="Prim.html#t:Type" title="Prim.Type"><span class="ctor">Type</span></a><span class="syntax">)</span> <span class="syntax">-&gt;</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">&lt;=</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) &lt;*&gt; v = v</code></li>
1413−<li>Composition: <code>pure (&lt;&lt;&lt;) &lt;*&gt; f &lt;*&gt; g &lt;*&gt; h = f &lt;*&gt; (g &lt;*&gt; h)</code></li>
1414−<li>Homomorphism: <code>(pure f) &lt;*&gt; (pure x) = pure (f x)</code></li>
1415−<li>Interchange: <code>u &lt;*&gt; (pure y) = (pure (_ $ y)) &lt;*&gt; 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">-&gt;</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">=&gt;</span> <a href="Prim.html#t:Boolean" title="Prim.Boolean"><span class="ctor">Boolean</span></a> <span class="syntax">-&gt;</span> m <a href="Data.Unit.html#t:Unit" title="Data.Unit.Unit"><span class="ctor">Unit</span></a> <span class="syntax">-&gt;</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">=&gt;</span> <a href="Prim.html#t:Boolean" title="Prim.Boolean"><span class="ctor">Boolean</span></a> <span class="syntax">-&gt;</span> m <a href="Data.Unit.html#t:Unit" title="Data.Unit.Unit"><span class="ctor">Unit</span></a> <span class="syntax">-&gt;</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">=&gt;</span> <span class="syntax">(</span>a <span class="syntax">-&gt;</span> b<span class="syntax">)</span> <span class="syntax">-&gt;</span> f a <span class="syntax">-&gt;</span> f b</code></pre><p><code>liftA1</code> provides a default implementation of <code>(&lt;$&gt;)</code> for any
1420−<code>Applicative</code> functor, without using <code>(&lt;$&gt;)</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">-&gt;</span> <a href="Prim.html#t:Type" title="Prim.Type"><span class="ctor">Type</span></a><span class="syntax">)</span> <span class="syntax">-&gt;</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">&lt;=</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>(&lt;*&gt;)</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 =&gt; (a -&gt; b -&gt; c) -&gt; f a -&gt; f b -&gt; f c
1434−lift2 f a b = f &lt;$&gt; a &lt;*&gt; b
1435−</code></pre>
1436−<p><code>(&lt;*&gt;)</code> is recovered from <code>lift2</code> as <code>lift2 ($)</code>. That is, <code>(&lt;*&gt;)</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 &lt;$&gt; computationProducingArg1
1442− &lt;*&gt; computationProducingArg2
1443− &lt;*&gt; ...
1444− &lt;*&gt; 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>(&lt;&lt;&lt;) &lt;$&gt; f &lt;*&gt; g &lt;*&gt; h = f &lt;*&gt; (g &lt;*&gt; 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">-&gt;</span> b<span class="syntax">)</span> <span class="syntax">-&gt;</span> f a <span class="syntax">-&gt;</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:(&lt;*&gt;)"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:(&lt;*&gt;)">#</a><span>(&lt;*&gt;)</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:(&lt;*)"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:(&lt;*)">#</a><span>(&lt;*)</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:(*&gt;)"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:(*&gt;)">#</a><span>(*&gt;)</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">-&gt;</span> <a href="Prim.html#t:Type" title="Prim.Type"><span class="ctor">Type</span></a><span class="syntax">)</span> <span class="syntax">-&gt;</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">&lt;=</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>(&lt;|&gt;)</code>.</p>
1454−<p>It is similar to <code>Monoid</code>, except that it applies to types of
1455−kind <code>* -&gt; *</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 &lt;|&gt; x == x</code></li>
1460−<li>Right identity: <code>x &lt;|&gt; empty == x</code></li>
1461−<li>Annihilation: <code>f &lt;$&gt; 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">-&gt;</span> <a href="Prim.html#t:Type" title="Prim.Type"><span class="ctor">Type</span></a><span class="syntax">)</span> <span class="syntax">-&gt;</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 -&gt; b</code> into functions
1466−<code>f a -&gt; 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 &lt;&lt;&lt; g) = map f &lt;&lt;&lt; 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">-&gt;</span> b<span class="syntax">)</span> <span class="syntax">-&gt;</span> f a <span class="syntax">-&gt;</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">=&gt;</span> f a <span class="syntax">-&gt;</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 -&gt; void do
1479− print n
1480− print (n * n)
1481−</code></pre>
1482−</div></div><div class="decl" id="v:(&lt;$&gt;)"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:(&lt;$&gt;)">#</a><span>(&lt;$&gt;)</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:(&lt;$)"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:(&lt;$)">#</a><span>(&lt;$)</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:(&lt;#&gt;)"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:(&lt;#&gt;)">#</a><span>(&lt;#&gt;)</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:($&gt;)"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:($&gt;)">#</a><span>($&gt;)</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">-&gt;</span> <a href="Prim.html#t:Type" title="Prim.Type"><span class="ctor">Type</span></a><span class="syntax">)</span> <span class="syntax">-&gt;</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">&lt;=</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) &lt;*&gt; v = v</code></li>
1369−<li>Composition: <code>pure (&lt;&lt;&lt;) &lt;*&gt; f &lt;*&gt; g &lt;*&gt; h = f &lt;*&gt; (g &lt;*&gt; h)</code></li>
1370−<li>Homomorphism: <code>(pure f) &lt;*&gt; (pure x) = pure (f x)</code></li>
1371−<li>Interchange: <code>u &lt;*&gt; (pure y) = (pure (_ $ y)) &lt;*&gt; 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">-&gt;</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">=&gt;</span> <span class="syntax">(</span>a <span class="syntax">-&gt;</span> b<span class="syntax">)</span> <span class="syntax">-&gt;</span> f a <span class="syntax">-&gt;</span> f b</code></pre><p><code>liftA1</code> provides a default implementation of <code>(&lt;$&gt;)</code> for any
1374−<code>Applicative</code> functor, without using <code>(&lt;$&gt;)</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">=&gt;</span> <a href="Prim.html#t:Boolean" title="Prim.Boolean"><span class="ctor">Boolean</span></a> <span class="syntax">-&gt;</span> m <a href="Data.Unit.html#t:Unit" title="Data.Unit.Unit"><span class="ctor">Unit</span></a> <span class="syntax">-&gt;</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">=&gt;</span> <a href="Prim.html#t:Boolean" title="Prim.Boolean"><span class="ctor">Boolean</span></a> <span class="syntax">-&gt;</span> m <a href="Data.Unit.html#t:Unit" title="Data.Unit.Unit"><span class="ctor">Unit</span></a> <span class="syntax">-&gt;</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">-&gt;</span> <a href="Prim.html#t:Type" title="Prim.Type"><span class="ctor">Type</span></a><span class="syntax">)</span> <span class="syntax">-&gt;</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">&lt;=</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>(&lt;*&gt;)</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 =&gt; (a -&gt; b -&gt; c) -&gt; f a -&gt; f b -&gt; f c
1390−lift2 f a b = f &lt;$&gt; a &lt;*&gt; b
1391−</code></pre>
1392−<p><code>(&lt;*&gt;)</code> is recovered from <code>lift2</code> as <code>lift2 ($)</code>. That is, <code>(&lt;*&gt;)</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 &lt;$&gt; computationProducingArg1
1398− &lt;*&gt; computationProducingArg2
1399− &lt;*&gt; ...
1400− &lt;*&gt; 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>(&lt;&lt;&lt;) &lt;$&gt; f &lt;*&gt; g &lt;*&gt; h = f &lt;*&gt; (g &lt;*&gt; 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">-&gt;</span> b<span class="syntax">)</span> <span class="syntax">-&gt;</span> f a <span class="syntax">-&gt;</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:(&lt;*&gt;)"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:(&lt;*&gt;)">#</a><span>(&lt;*&gt;)</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:(&lt;*)"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:(&lt;*)">#</a><span>(&lt;*)</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:(*&gt;)"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:(*&gt;)">#</a><span>(*&gt;)</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">-&gt;</span> <a href="Prim.html#t:Type" title="Prim.Type"><span class="ctor">Type</span></a><span class="syntax">)</span> <span class="syntax">-&gt;</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 -&gt; b</code> into functions
1411−<code>f a -&gt; 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 &lt;&lt;&lt; g) = map f &lt;&lt;&lt; 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">-&gt;</span> b<span class="syntax">)</span> <span class="syntax">-&gt;</span> f a <span class="syntax">-&gt;</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">=&gt;</span> f a <span class="syntax">-&gt;</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 -&gt; void do
1424− print n
1425− print (n * n)
1426−</code></pre>
1427−</div></div><div class="decl" id="v:(&lt;$&gt;)"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:(&lt;$&gt;)">#</a><span>(&lt;$&gt;)</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:(&lt;$)"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:(&lt;$)">#</a><span>(&lt;$)</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:(&lt;#&gt;)"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:(&lt;#&gt;)">#</a><span>(&lt;#&gt;)</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:($&gt;)"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:($&gt;)">#</a><span>($&gt;)</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">-&gt;</span> <a href="Prim.html#t:Type" title="Prim.Type"><span class="ctor">Type</span></a><span class="syntax">)</span> <span class="syntax">-&gt;</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">&lt;=</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>(&lt;*&gt;)</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 =&gt; (a -&gt; b -&gt; c) -&gt; f a -&gt; f b -&gt; f c
1362−lift2 f a b = f &lt;$&gt; a &lt;*&gt; b
1363−</code></pre>
1364−<p><code>(&lt;*&gt;)</code> is recovered from <code>lift2</code> as <code>lift2 ($)</code>. That is, <code>(&lt;*&gt;)</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 &lt;$&gt; computationProducingArg1
1370− &lt;*&gt; computationProducingArg2
1371− &lt;*&gt; ...
1372− &lt;*&gt; 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>(&lt;&lt;&lt;) &lt;$&gt; f &lt;*&gt; g &lt;*&gt; h = f &lt;*&gt; (g &lt;*&gt; 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">-&gt;</span> b<span class="syntax">)</span> <span class="syntax">-&gt;</span> f a <span class="syntax">-&gt;</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:(&lt;*&gt;)"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:(&lt;*&gt;)">#</a><span>(&lt;*&gt;)</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">=&gt;</span> f a <span class="syntax">-&gt;</span> f b <span class="syntax">-&gt;</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:(&lt;*)"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:(&lt;*)">#</a><span>(&lt;*)</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">=&gt;</span> f a <span class="syntax">-&gt;</span> f b <span class="syntax">-&gt;</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:(*&gt;)"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:(*&gt;)">#</a><span>(*&gt;)</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">=&gt;</span> <span class="syntax">(</span>a <span class="syntax">-&gt;</span> b <span class="syntax">-&gt;</span> c<span class="syntax">)</span> <span class="syntax">-&gt;</span> f a <span class="syntax">-&gt;</span> f b <span class="syntax">-&gt;</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">=&gt;</span> <span class="syntax">(</span>a <span class="syntax">-&gt;</span> b <span class="syntax">-&gt;</span> c <span class="syntax">-&gt;</span> d<span class="syntax">)</span> <span class="syntax">-&gt;</span> f a <span class="syntax">-&gt;</span> f b <span class="syntax">-&gt;</span> f c <span class="syntax">-&gt;</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">=&gt;</span> <span class="syntax">(</span>a <span class="syntax">-&gt;</span> b <span class="syntax">-&gt;</span> c <span class="syntax">-&gt;</span> d <span class="syntax">-&gt;</span> e<span class="syntax">)</span> <span class="syntax">-&gt;</span> f a <span class="syntax">-&gt;</span> f b <span class="syntax">-&gt;</span> f c <span class="syntax">-&gt;</span> f d <span class="syntax">-&gt;</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">=&gt;</span> <span class="syntax">(</span>a <span class="syntax">-&gt;</span> b <span class="syntax">-&gt;</span> c <span class="syntax">-&gt;</span> d <span class="syntax">-&gt;</span> e <span class="syntax">-&gt;</span> g<span class="syntax">)</span> <span class="syntax">-&gt;</span> f a <span class="syntax">-&gt;</span> f b <span class="syntax">-&gt;</span> f c <span class="syntax">-&gt;</span> f d <span class="syntax">-&gt;</span> f e <span class="syntax">-&gt;</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">-&gt;</span> <a href="Prim.html#t:Type" title="Prim.Type"><span class="ctor">Type</span></a><span class="syntax">)</span> <span class="syntax">-&gt;</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 -&gt; b</code> into functions
1396−<code>f a -&gt; 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 &lt;&lt;&lt; g) = map f &lt;&lt;&lt; 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">-&gt;</span> b<span class="syntax">)</span> <span class="syntax">-&gt;</span> f a <span class="syntax">-&gt;</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">=&gt;</span> f a <span class="syntax">-&gt;</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 -&gt; void do
1409− print n
1410− print (n * n)
1411−</code></pre>
1412−</div></div><div class="decl" id="v:(&lt;$&gt;)"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:(&lt;$&gt;)">#</a><span>(&lt;$&gt;)</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:(&lt;$)"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:(&lt;$)">#</a><span>(&lt;$)</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:(&lt;#&gt;)"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:(&lt;#&gt;)">#</a><span>(&lt;#&gt;)</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:($&gt;)"><h3 class="decl__title clearfix"><a class="decl__anchor" href="#v:($&gt;)">#</a><span>($&gt;)</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">-&gt;</span> <a href="Prim.html#t:Type" title="Prim.Type"><span class="ctor">Type</span></a> <span class="syntax">-&gt;</span> <a href="Prim.html#t:Type" title="Prim.Type"><span class="ctor">Type</span></a><span class="syntax">)</span> <span class="syntax">-&gt;</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">&lt;=</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">-&gt;</span> b <span class="syntax">-&gt;</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.