pure-borrow: Rust-style borrowing in Linear Haskell with purity
This package realizes rust-style borrowing in Linear Haskell with purity and concurrency support. See Control.Monad.Borrow.Pure for the main API documentation, and see our paper Pure Borrowing: Linear Haskell Meets Rust-Style Borrowing by Y. Matsushita and H. Ishii for the details.
[Skip to Readme]
Modules
[Index] [Quick Jump]
- Control
- Concurrent
- DivideConquer
- Control.Concurrent.DivideConquer.Linear
- Control.Concurrent.DivideConquer.Linear.Internal
- Control.Concurrent.DivideConquer.Linear
- Queue
- DivideConquer
- Monad
- Borrow
- Control.Monad.Borrow.Pure
- Control.Monad.Borrow.Pure.Affine
- Control.Monad.Borrow.Pure.Affine.Internal
- Control.Monad.Borrow.Pure.Affine.Unsafe
- Control.Monad.Borrow.Pure.BO
- Control.Monad.Borrow.Pure.BO.Internal
- Control.Monad.Borrow.Pure.BO.Unsafe
- Control.Monad.Borrow.Pure.Clone
- Control.Monad.Borrow.Pure.Copyable
- Experimental
- Control.Monad.Borrow.Pure.Lifetime
- Control.Monad.Borrow.Pure.Lifetime.Internal
- Control.Monad.Borrow.Pure.Lifetime.Token
- Control.Monad.Borrow.Pure.Lifetime.Token.Internal
- Control.Monad.Borrow.Pure.Lifetime.Token.Unsafe
- Control.Monad.Borrow.Pure.Affine
- Control.Monad.Borrow.Pure
- Borrow
- Syntax
- Concurrent
- Data
- Coerce
- Data.Coerce.Directed
- Data.Coerce.Directed.Internal
- Data.Coerce.Directed.Unsafe
- Data.Coerce.Directed
- Comonad
- HashMap
- RobinHood
- Mutable
- Data.HashMap.RobinHood.Mutable.Linear
- Data.HashMap.RobinHood.Mutable.Linear.Borrow
- Data.HashMap.RobinHood.Mutable.Linear.Borrow.Internal
- Data.HashMap.RobinHood.Mutable.Linear.Internal
- Data.HashMap.RobinHood.Mutable.Linear.Borrow
- Data.HashMap.RobinHood.Mutable.Linear
- Mutable
- RobinHood
- Record
- Linear
- Ref
- Unique
- Vector
- Generic
- Mutable
- Growable
- Linear
- Borrow
- Data.Vector.Generic.Mutable.Growable.Linear.Borrow.Unrestricted
- Data.Vector.Generic.Mutable.Growable.Linear.Borrow.Unrestricted.Internal
- Data.Vector.Generic.Mutable.Growable.Linear.Borrow.Unrestricted
- Borrow
- Linear
- Linear
- Borrow
- Experimental
- Data.Vector.Generic.Mutable.Linear.Borrow.Experimental.Multiplicity
- Data.Vector.Generic.Mutable.Linear.Borrow.Experimental.Multiplicity.Internal
- Data.Vector.Generic.Mutable.Linear.Borrow.Experimental.Multiplicity
- Data.Vector.Generic.Mutable.Linear.Borrow.Unrestricted
- Data.Vector.Generic.Mutable.Linear.Borrow.Unrestricted.Internal
- Experimental
- Borrow
- Growable
- Mutable
- Mutable
- Growable
- Linear
- Data.Vector.Mutable.Growable.Linear.Borrow
- Data.Vector.Mutable.Growable.Linear.Borrow.Internal
- Data.Vector.Mutable.Growable.Linear.Borrow
- Linear
- Linear
- Data.Vector.Mutable.Linear.Borrow
- Data.Vector.Mutable.Linear.Borrow.Internal
- Data.Vector.Mutable.Linear.Borrow
- Growable
- Unboxed
- Mutable
- Growable
- Linear
- Data.Vector.Unboxed.Mutable.Growable.Linear.Borrow
- Data.Vector.Unboxed.Mutable.Growable.Linear.Borrow.Internal
- Data.Vector.Unboxed.Mutable.Growable.Linear.Borrow
- Linear
- Linear
- Data.Vector.Unboxed.Mutable.Linear.Borrow
- Data.Vector.Unboxed.Mutable.Linear.Borrow.Internal
- Data.Vector.Unboxed.Mutable.Linear.Borrow
- Growable
- Mutable
- Generic
- Coerce
Flags
Manual Flags
| Name | Description | Default |
|---|---|---|
| examples | Build the example executable, which runs some examples of the library. | Disabled |
| slow | Restore the previous, sublifetime-allocating implementations of the
scalar borrow scopes ( | Disabled |
Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info
Downloads
- pure-borrow-0.1.0.0.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
- No Candidates
| Versions [RSS] | 0.0.0.0, 0.1.0.0 |
|---|---|
| Change log | CHANGELOG.md |
| Dependencies | array, atomic-primops, base (>=4.17 && <5), bytestring, cassava, containers, deepseq, directory, filepath, fmlist, hashable, hybrid-vectors, integer-logarithms, linear-base (>=0.7), linear-generics, monoidal-containers, optparse-applicative, primitive, pure-borrow, random, stm, stm-chans, tasty-bench, text, unordered-containers, vector, vector-algorithms [details] |
| Tested with | ghc ==9.10.3 || ==9.12.4 || ==9.14.1 |
| License | BSD-3-Clause |
| Copyright | Copyright (c) 2025-present, Yusuke Matsushita and Hiromi Ishii |
| Author | Yusuke Matsushita and Hiromi Ishii |
| Maintainer | ysk.m24t@gmail.com konn.jinro@gmail.com |
| Uploaded | by HiromiIshii at 2026-09-20T08:53:27Z |
| Category | Linear Haskell |
| Home page | https://github.com/SoftwareFoundationGroupAtKyotoU/pure-borrow |
| Source repo | head: git clone https://github.com/SoftwareFoundationGroupAtKyotoU/pure-borrow |
| Distributions | |
| Executables | convert-qsort-bench-csv, fft, qsort |
| Downloads | 25 total (10 in the last 30 days) |
| Rating | (no votes yet) [estimated by Bayesian average] |
| Your Rating | |
| Status | Docs uploaded by user [build log] All reported builds failed as of 2026-09-20 [all 2 reports] |