lens-utils-1.4.2: src/Control/Lens/Utils/Wrapped.hs
{-# LANGUAGE NoMonomorphismRestriction #-}
module Control.Lens.Utils.Wrapped where
import Prelude
import Control.Lens
import Data.Coerce
wrapped' = _Wrapped' ; {-# INLINE wrapped' #-}
unwrapped' = _Unwrapped' ; {-# INLINE unwrapped' #-}
wrapping' = _Wrapping' ; {-# INLINE wrapping' #-}
unwrapping' = _Unwrapping' ; {-# INLINE unwrapping' #-}
unwrap' = view wrapped' ; {-# INLINE unwrap' #-}
wrap' = view unwrapped' ; {-# INLINE wrap' #-}
wrapped = _Wrapped ; {-# INLINE wrapped #-}
unwrapped = _Unwrapped ; {-# INLINE unwrapped #-}
wrapping = _Wrapping ; {-# INLINE wrapping #-}
unwrapping = _Unwrapping ; {-# INLINE unwrapping #-}
_unwrap = view wrapped ; {-# INLINE _unwrap #-}
_wrap = view unwrapped ; {-# INLINE _wrap #-}
rewrap = _Wrapped %~ id ; {-#INLINE rewrap #-}
wrappedM' f = fmap wrap' . f . unwrap' ; {-# INLINE wrappedM' #-}
wrap :: forall a. Coercible (Unwrapped a) a => Unwrapped a -> a
unwrap :: forall a. Coercible a (Unwrapped a) => a -> Unwrapped a
wrap = coerce ; {-# INLINE wrap #-}
unwrap = coerce ; {-# INLINE unwrap #-}