pure-borrow
Safe HaskellNone
LanguageGHC2021

Control.Monad.Borrow.Pure.Experimental.Borrows

Description

The module provides Borrows, which is a heterogeneous list of Borrows in the same lifetime.

Documentation

data Borrows (bk :: BorrowKind) (α :: Lifetime) (xs :: [Type]) where Source #

Constructors

BNil :: forall (bk :: BorrowKind) (α :: Lifetime). Borrows bk α ('[] :: [Type]) 
(:-) :: forall (bk :: BorrowKind) (α :: Lifetime) x (xs1 :: [Type]). !(Borrow bk α x) -> !(Borrows bk α xs1) -> Borrows bk α (x ': xs1) infixr 5 

Instances

Instances details
β <= α => (Borrows bk α xs :: Type) <: (Borrows bk' β xs :: Type) Source # 
Instance details

Defined in Control.Monad.Borrow.Pure.Experimental.Borrows

Methods

subtype :: SubtypeWitness (Borrows bk α xs) (Borrows bk' β xs) Source #

Reborrowable (Borrows bk :: Lifetime -> [Type] -> Type) Source # 
Instance details

Defined in Control.Monad.Borrow.Pure.Experimental.Borrows

Methods

locally' :: forall (α :: Lifetime) (a :: [Type]) (α' :: Lifetime) r. Borrows bk α a %1 -> (forall (β :: Lifetime). Borrows bk (β /\ α) a %1 -> BO/\ α') (After β r)) %1 -> BO α' (r, Borrows bk α a) Source #

Consumable (Borrows bk α xs) Source # 
Instance details

Defined in Control.Monad.Borrow.Pure.Experimental.Borrows

Methods

consume :: Borrows bk α xs %1 -> () #

Affine (Borrows bk α xs) Source # 
Instance details

Defined in Control.Monad.Borrow.Pure.Experimental.Borrows

Methods

aff :: Borrows bk α xs %1 -> Aff (Borrows bk α xs) Source #