{-# LANGUAGE LinearTypes #-}
{-# LANGUAGE NoImplicitPrelude #-}
module Prelude.Linear.Generically
( Generically (..),
unGenerically,
Generically1 (..),
unGenerically1,
)
where
newtype Generically a = Generically a
unGenerically :: Generically a %1 -> a
unGenerically :: forall a. Generically a %1 -> a
unGenerically (Generically a
a) = a
a
newtype Generically1 f a = Generically1 (f a)
unGenerically1 :: Generically1 f a %1 -> f a
unGenerically1 :: forall (f :: * -> *) a. Generically1 f a %1 -> f a
unGenerically1 (Generically1 f a
fa) = f a
fa