{-| Module : Data.HdrHistogram.Tutorial Copyright : (c) Josh Bohde, 2015 License : GPL-3 Maintainer : josh@joshbohde.com Stability : experimental Portability : POSIX -} {-# LANGUAGE DataKinds #-} {-# LANGUAGE ScopedTypeVariables #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-} module Data.HdrHistogram.Tutorial ( -- * Example -- $example ) where import Control.Monad (forM_) import qualified Data.HdrHistogram as H import qualified Data.HdrHistogram.Mutable as MH {- $example > {-# LANGUAGE DataKinds #-} > {-# LANGUAGE ScopedTypeVariables #-} > > import Control.Monad (forM_) > import qualified Data.HdrHistogram as H > import qualified Data.HdrHistogram.Mutable as MH > > vals :: [Int] > vals = undefined > > -- Measure from 1ms to 1 hour, with 3 points of precision > type Config = H.Config 1 3600000 3 > > main :: IO () > main = do > h <- MH.new > forM_ vals (MH.record h) > (frozen :: H.Histogram Config Int Int) <- MH.freeze h > print $ H.percentile frozen 50 > -}