pure-borrow
Safe HaskellNone
LanguageGHC2021

Data.Ref.Linear.Borrow

Description

A reference cell. To mutate, use as Mut α (Ref a). This module is inteted to be imported qualified.

Synopsis

Documentation

data Ref a Source #

Linearly owned mutable reference.

Instances

Instances details
LinearOnly (Ref a :: Type) Source # 
Instance details

Defined in Data.Ref.Linear

Consumable a => Consumable (Ref a) Source # 
Instance details

Defined in Data.Ref.Linear

Methods

consume :: Ref a %1 -> () #

Dupable a => Dupable (Ref a) Source # 
Instance details

Defined in Data.Ref.Linear

Methods

dupR :: Ref a %1 -> Replicator (Ref a) #

dup2 :: Ref a %1 -> (Ref a, Ref a) #

Affine (Ref a) Source # 
Instance details

Defined in Data.Ref.Linear

Methods

aff :: Ref a %1 -> Aff (Ref a) Source #

Dupable a => Clone (Ref a) Source # 
Instance details

Defined in Data.Ref.Linear

Methods

clone :: forall (α :: Lifetime). Share α (Ref a) %1 -> BO α (Ref a) Source #

Unsatisfiable ('ShowType (Ref a) ':<>: 'Text " cannot be copied!") => Copyable (Ref a) Source # 
Instance details

Defined in Data.Ref.Linear

Methods

copy :: forall (bk :: BorrowKind) (α :: Lifetime). Borrow bk α (Ref a) %1 -> Ref a Source #

update :: forall (α :: Lifetime) (β :: Lifetime) a b. α >= β => (a %1 -> BO β (b, a)) %1 -> Mut α (Ref a) %1 -> BO β (b, Mut α (Ref a)) Source #

modify :: forall (α :: Lifetime) (β :: Lifetime) a. α >= β => (a %1 -> a) %1 -> Mut α (Ref a) %1 -> BO β (Mut α (Ref a)) Source #

swap :: forall (α :: Lifetime) (β :: Lifetime) a. α >= β => Mut α (Ref a) %1 -> Mut α (Ref a) %1 -> BO β (Mut α (Ref a), Mut α (Ref a)) Source #

readShare :: forall (α :: Lifetime) (β :: Lifetime) a. α >= β => Share α (Ref a) %1 -> BO β (Ur (Share α a)) Source #

copyRef :: forall a (α :: Lifetime) (β :: Lifetime) (k :: BorrowKind). (Copyable a, α >= β) => Borrow k α (Ref a) %1 -> BO β a Source #