-- | -- Internal module containing utilities for hiding data -- behind constructors that can't be accessed externally. -- -- Used for things such as hiding the 'Mischief.ECS.World.World' in a 'Mischief.ECS.World.ParSystem' so -- it can't be mutated unsafely. module Mischief.ECS.Hidden where newtype Hidden a = Hidden a hide :: a -> Hidden a hide :: forall a. a -> Hidden a hide = a -> Hidden a forall a. a -> Hidden a Hidden unhide :: Hidden a -> a unhide :: forall a. Hidden a -> a unhide (Hidden a a) = a a