Movatterモバイル変換
[0]ホーム
{-# LANGUAGE Safe #-}------------------------------------------------------------------------------- |-- Module : System.Mem.StableName-- Copyright : (c) The University of Glasgow 2001-- License : BSD-style (see the file libraries/base/LICENSE)---- Maintainer : libraries@haskell.org-- Stability : experimental-- Portability : non-portable---- Stable names are a way of performing fast (O(1)), not-quite-exact-- comparison between objects.---- Stable names solve the following problem: suppose you want to build-- a hash table with Haskell objects as keys, but you want to use-- pointer equality for comparison; maybe because the keys are large-- and hashing would be slow, or perhaps because the keys are infinite-- in size. We can\'t build a hash table using the address of the-- object as the key, because objects get moved around by the garbage-- collector, meaning a re-hash would be necessary after every garbage-- collection.---------------------------------------------------------------------------------moduleSystem.Mem.StableName(-- * Stable NamesStableName,makeStableName,hashStableName,eqStableName)whereimportGHC.StableName
[8]ページ先頭