| Safe Haskell | None |
|---|---|
| Language | GHC2021 |
Control.Monad.Borrow.Pure.Copyable
Synopsis
- class Copyable a where
- copy :: forall (bk :: BorrowKind) (α :: Lifetime). Borrow bk α a %1 -> a
- copyMut :: forall a (α :: Lifetime). Copyable a => Mut α a %1 -> Ur a
- genericCopy :: forall a (bk :: BorrowKind) (α :: Lifetime). GenericCopyable a => Borrow bk α a %1 -> a
- type GenericCopyable a = (Generic a, GCopyable (Rep a))
- class Copyable1 (f :: Type -> Type) where
- liftCopy :: forall (bk :: BorrowKind) (α :: Lifetime) a b. (Borrow bk α a %1 -> b) -> Borrow bk α (f a) %1 -> f b
- newtype AsCopyable1 (f :: k -> Type) (a :: k) = AsCopyable1 (f a)
- type GenericCopyable1 (f :: Type -> Type) = (Copyable1 (Rep1 f), Generic1 f)
- copy1 :: forall f a (bk :: BorrowKind) (α :: Lifetime). (Copyable1 f, Copyable a) => Borrow bk α (f a) %1 -> f a
- genericCopy1 :: forall f a (α :: Lifetime). (GenericCopyable1 f, Copyable a) => Share α (f a) %1 -> f a
- genericLiftCopy :: forall f (bk :: BorrowKind) a b (α :: Lifetime). GenericCopyable1 f => (Borrow bk α a %1 -> b) -> Borrow bk α (f a) %1 -> f b
Documentation
class Copyable a where Source #
Instances
genericCopy :: forall a (bk :: BorrowKind) (α :: Lifetime). GenericCopyable a => Borrow bk α a %1 -> a Source #
type GenericCopyable a = (Generic a, GCopyable (Rep a)) Source #
class Copyable1 (f :: Type -> Type) where Source #
Lifting of the Copyable operation to unary type constructors.
Methods
liftCopy :: forall (bk :: BorrowKind) (α :: Lifetime) a b. (Borrow bk α a %1 -> b) -> Borrow bk α (f a) %1 -> f b Source #
Instances
| Copyable1 Par1 Source # | |
Defined in Control.Monad.Borrow.Pure.Copyable | |
| GenericCopyable1 f => Copyable1 (Generically1 f) Source # | |
Defined in Control.Monad.Borrow.Pure.Copyable Methods liftCopy :: forall (bk :: BorrowKind) (α :: Lifetime) a b. (Borrow bk α a %1 -> b) -> Borrow bk α (Generically1 f a) %1 -> Generically1 f b Source # | |
| (Copyable1 l, Copyable1 r) => Copyable1 (l :*: r) Source # | |
Defined in Control.Monad.Borrow.Pure.Copyable | |
| (Copyable1 l, Copyable1 r) => Copyable1 (l :+: r) Source # | |
Defined in Control.Monad.Borrow.Pure.Copyable | |
| Copyable c => Copyable1 (K1 i c :: Type -> Type) Source # | |
Defined in Control.Monad.Borrow.Pure.Copyable | |
| Copyable1 f => Copyable1 (M1 i c f) Source # | |
Defined in Control.Monad.Borrow.Pure.Copyable | |
| (Copyable1 f, Copyable1 g) => Copyable1 (f :.: g) Source # | |
Defined in Control.Monad.Borrow.Pure.Copyable | |
newtype AsCopyable1 (f :: k -> Type) (a :: k) Source #
Constructors
| AsCopyable1 (f a) |
Instances
| (Copyable1 f, Copyable a) => Copyable (AsCopyable1 f a) Source # | |
Defined in Control.Monad.Borrow.Pure.Copyable Methods copy :: forall (bk :: BorrowKind) (α :: Lifetime). Borrow bk α (AsCopyable1 f a) %1 -> AsCopyable1 f a Source # | |
copy1 :: forall f a (bk :: BorrowKind) (α :: Lifetime). (Copyable1 f, Copyable a) => Borrow bk α (f a) %1 -> f a Source #
genericCopy1 :: forall f a (α :: Lifetime). (GenericCopyable1 f, Copyable a) => Share α (f a) %1 -> f a Source #
genericLiftCopy :: forall f (bk :: BorrowKind) a b (α :: Lifetime). GenericCopyable1 f => (Borrow bk α a %1 -> b) -> Borrow bk α (f a) %1 -> f b Source #