/usr/share/doc/libghc-dynamic-state-doc/html/dynamic-state.txt is in libghc-dynamic-state-doc 0.2.2.0-3build3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 | -- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | Optionally serializable dynamic state keyed by type
--
-- Optionally serializable dynamic state keyed by type
@package dynamic-state
@version 0.2.2.0
-- | Copyright (c)2011, Reiner Pope
--
-- All rights reserved.
--
-- Redistribution and use in source and binary forms, with or without
-- modification, are permitted provided that the following conditions are
-- met:
--
-- <ul>
-- <li>Redistributions of source code must retain the above copyright
-- notice, this list of conditions and the following disclaimer.</li>
-- <li>Redistributions in binary form must reproduce the above copyright
-- notice, this list of conditions and the following disclaimer in the
-- documentation and/or other materials provided with the
-- distribution.</li>
-- <li>Neither the name of Reiner Pope nor the names of other
-- contributors may be used to endorse or promote products derived from
-- this software without specific prior written permission.</li>
-- </ul>
--
-- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-- "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-- A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-- OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-- SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-- LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-- DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-- THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-- OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
--
-- This module defines <a>Binary</a> and <a>Hashable</a> instances for
-- <a>TypeRep</a>. These are defined on a newtype of <a>TypeRep</a>,
-- namely <a>ConcreteTypeRep</a>, for two purposes:
--
-- <ul>
-- <li>to avoid making orphan instances</li>
-- <li>the <a>Hashable</a> instance for <a>ConcreteTypeRep</a> may not be
-- pure enough for some people's tastes.</li>
-- </ul>
--
-- As usual with <a>Typeable</a>, this module will typically be used with
-- some variant of <tt>Data.Dynamic</tt>. Two possible uses of this
-- module are:
--
-- <ul>
-- <li>making hashmaps: <tt>HashMap <a>ConcreteTypeRep</a>
-- Dynamic</tt></li>
-- <li>serializing <tt>Dynamic</tt>s.</li>
-- </ul>
module Data.ConcreteTypeRep
-- | Abstract type providing the functionality of <a>TypeRep</a>, but
-- additionally supporting hashing and serialization.
--
-- The <a>Eq</a> instance is just the <a>Eq</a> instance for
-- <a>TypeRep</a>, so an analogous guarantee holds: <tt><a>cTypeOf</a> a
-- == <a>cTypeOf</a> b</tt> if and only if <tt>a</tt> and <tt>b</tt> have
-- the same type. The hashing and serialization functions preserve this
-- equality.
data ConcreteTypeRep
-- | "Concrete" version of <a>typeOf</a>.
cTypeOf :: Typeable a => a -> ConcreteTypeRep
-- | Converts to the underlying <a>TypeRep</a>
toTypeRep :: ConcreteTypeRep -> TypeRep
-- | Converts from the underlying <a>TypeRep</a>
fromTypeRep :: TypeRep -> ConcreteTypeRep
instance Data.Binary.Class.Binary Data.ConcreteTypeRep.SerialRep
instance GHC.Classes.Eq Data.ConcreteTypeRep.ConcreteTypeRep
instance GHC.Show.Show Data.ConcreteTypeRep.ConcreteTypeRep
instance Data.Hashable.Class.Hashable Data.ConcreteTypeRep.ConcreteTypeRep
instance Data.Binary.Class.Binary Data.ConcreteTypeRep.ConcreteTypeRep
-- | This module implements a simple HashMap ConcreteTypeRep Dynamic
module Data.DynamicState
-- | An extensible record, indexed by type
newtype DynamicState
DynamicState :: HashMap ConcreteTypeRep Dynamic -> DynamicState
[unDynamicState] :: DynamicState -> HashMap ConcreteTypeRep Dynamic
getDyn :: forall a. Typeable a => DynamicState -> Maybe a
setDyn :: forall a. Typeable a => DynamicState -> a -> DynamicState
-- | Lens with default value
_dyn :: (Typeable a, Functor f) => a -> (a -> f a) -> DynamicState -> f DynamicState
instance GHC.Base.Monoid Data.DynamicState.DynamicState
-- | This module is HashMap ConcreteTypeRep Dynamic with a twist. The
-- Dynamic used can also be ByteString, to make repeated reserialization
-- cheap. A user-provided State-like is used to store this.
module Data.DynamicState.Serializable
-- | An extensible record, indexed by type, using state to cache
-- deserializtion
newtype DynamicState
DynamicState :: HashMap ConcreteTypeRep Dynamic -> DynamicState
[unDynamicState] :: DynamicState -> HashMap ConcreteTypeRep Dynamic
-- | Get a value, inside a State-like monad specified by the first two
-- functions
getDyn :: forall m a. (Typeable a, Binary a, Monad m) => m DynamicState -> (DynamicState -> m ()) -> m (Maybe a)
-- | Set a value, inside a State-like monad specified by the first two
-- functions
putDyn :: forall m a. (Typeable a, Binary a, Monad m) => m DynamicState -> (DynamicState -> m ()) -> a -> m ()
instance Data.Binary.Class.Binary Data.DynamicState.Serializable.Dynamic
instance GHC.Base.Monoid Data.DynamicState.Serializable.DynamicState
instance Data.Binary.Class.Binary Data.DynamicState.Serializable.DynamicState
|