A first stab at documenting strictness properties
authorJohan Tibell <johan.tibell@gmail.com>
Fri, 18 Nov 2011 05:22:07 +0000 (21:22 -0800)
committerJohan Tibell <johan.tibell@gmail.com>
Fri, 18 Nov 2011 05:22:07 +0000 (21:22 -0800)
Data/Map/Strict.hs

index a9868be..d3a1545 100644 (file)
@@ -56,6 +56,8 @@
 
 module Data.Map.Strict
     (
+    -- * Strictness properties
+    -- $strictness
 
     -- * Map type
 #if !defined(TESTING)
@@ -259,6 +261,19 @@ import Data.Map.Base hiding
     , updateMaxWithKey
     )
 
+-- $strictness
+--
+-- * All functions are strict in both key and value arguments.  Examples:
+--
+-- > insertWith (+) k undefined m  ==  undefined
+-- > delete undefined m  ==  undefined
+--
+-- * Keys and values are evaluated to WHNF before they are stored in
+-- the map.  Examples:
+--
+-- > map (\ v -> undefined)  ==  undefined
+-- > mapKeys (\ k -> undefined)  ==  undefined
+
 {--------------------------------------------------------------------
   Query
 --------------------------------------------------------------------}