This file is indexed.

/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