{-# LANGUAGE KindSignatures #-} {-# LANGUAGE TypeOperators #-} -- | General Purpose Newtype Wrappers -- -- A zoo of /newtype/ wrappers. -- -- In everyday Haskell programming newtype wrappers occur again and again, to -- convey some extra meaning for the maintainer of the code, and to prevent -- mixing up parameters to functions with the same type. -- -- For example: -- -- @ -- applyConfiguration :: MyConfig -> MyConfig -> IO MyConfig -- @ -- -- What the user actually wanted to express was: -- -- @ -- applyConfiguration :: `Wanted` MyConfig -> `Current` MyConfig -> IO (`Active` MyConfig) -- @ module NewtypeZoo ( module X ) where import NewtypeZoo.Wanted as X import NewtypeZoo.Valid as X import NewtypeZoo.Updated as X import NewtypeZoo.Unwanted as X import NewtypeZoo.Unchecked as X import NewtypeZoo.Single as X import NewtypeZoo.Responded as X import NewtypeZoo.Required as X import NewtypeZoo.Requested as X import NewtypeZoo.Replied as X import NewtypeZoo.Remaining as X import NewtypeZoo.Rejected as X import NewtypeZoo.Proposed as X import NewtypeZoo.Previous as X import NewtypeZoo.Pending as X import NewtypeZoo.Partial as X import NewtypeZoo.Old as X import NewtypeZoo.Offered as X import NewtypeZoo.Obsolete as X import NewtypeZoo.Next as X import NewtypeZoo.New as X import NewtypeZoo.Needed as X import NewtypeZoo.Multiple as X import NewtypeZoo.Missing as X import NewtypeZoo.Marked as X import NewtypeZoo.Invalid as X import NewtypeZoo.Inconsistent as X import NewtypeZoo.Failed as X import NewtypeZoo.Existing as X import NewtypeZoo.Established as X import NewtypeZoo.Enabled as X import NewtypeZoo.Disabled as X import NewtypeZoo.Current as X import NewtypeZoo.Consistent as X import NewtypeZoo.Completed as X import NewtypeZoo.Complete as X import NewtypeZoo.Cached as X import NewtypeZoo.Broken as X import NewtypeZoo.Available as X import NewtypeZoo.Allocated as X import NewtypeZoo.Active as X