-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Generic Haskell's Record Accessors -- -- Usage: http://github.com/nonowarn/has/blob/master/README.md -- -- And its test would be helpful: -- http://github.com/nonowarn/has/blob/master/test/Main.hs @package has @version 0.2 -- | Provides some pliant data types and functions. module Data.Has -- | Represents Type level list. data (:*:) a b (:*:) :: a -> b -> :*: a b -- | Provides plient function. Holds e == prj (inj e s) for all -- s and e. class Has e s inj :: (Has e s) => e -> s -> s prj :: (Has e s) => s -> e -- | Updates a value e in s, using given function e -- -> e. upd :: (Has e s) => (e -> e) -> s -> s instance [overlap ok] (MayHas e s, Contains e s TyTrue) => Has e s