{-# language Safe #-}
module LazyAsync.Types.Resource where
import LazyAsync.Prelude (Functor)
data Resource m a = Resource{ forall (m :: * -> *) a. Resource m a -> m ()
release :: m (), forall (m :: * -> *) a. Resource m a -> a
resource :: a }
deriving (forall a b. (a -> b) -> Resource m a -> Resource m b)
-> (forall a b. a -> Resource m b -> Resource m a)
-> Functor (Resource m)
forall a b. a -> Resource m b -> Resource m a
forall a b. (a -> b) -> Resource m a -> Resource m b
forall (f :: * -> *).
(forall a b. (a -> b) -> f a -> f b)
-> (forall a b. a -> f b -> f a) -> Functor f
forall (m :: * -> *) a b. a -> Resource m b -> Resource m a
forall (m :: * -> *) a b. (a -> b) -> Resource m a -> Resource m b
$cfmap :: forall (m :: * -> *) a b. (a -> b) -> Resource m a -> Resource m b
fmap :: forall a b. (a -> b) -> Resource m a -> Resource m b
$c<$ :: forall (m :: * -> *) a b. a -> Resource m b -> Resource m a
<$ :: forall a b. a -> Resource m b -> Resource m a
Functor