Skip to content

Instantly share code, notes, and snippets.

View snoyberg's full-sized avatar

Michael Snoyman snoyberg

View GitHub Profile
@snoyberg
snoyberg / gist:2d4f51a2538be22c62ec
Last active August 26, 2015 07:00
Usages of TypeRep in all of Stackage (nightly-2015-08-25): grep '\bTypeRep\b' -n $(find . -name \*.hs) > typerep-usages.txt
./uniplate-1.6.12/Data/Generics/PlateData.hs:75:containsList :: (Data a, Typeable a) => a -> [(TypeRep, [TypeRep])]
./uniplate-1.6.12/Data/Generics/Uniplate/Internal/Data.hs:30:type TypeKey = TypeRep
./uniplate-1.6.12/Data/Generics/Uniplate/Internal/Data.hs:62:type TypeKey = TypeRep
./hoogle-4.2.41/src/General/TypeMap.hs:13:newtype TypeMap = TypeMap (Map.Map TypeRep Dynamic)
./hoogle-4.2.41/src/General/TypeMap.hs:36:instance Ord TypeRep where
./tagshare-0.0/Control/Monad/TagShare.hs:24: DynMap (M.Map (tag, TypeRep) Dynamic)
./tagshare-0.0/Control/Monad/TagShare.hs:39: (TypeRep -> Maybe a) -> a -> Maybe a
./apiary-1.4.3/src/Data/Apiary/Param.hs:68: ( Typeable, mkTyConApp, typeRepTyCon, typeOf, TypeRep, typeRep, Proxy(..))
./apiary-1.4.3/src/Data/Apiary/Param.hs:108: = Strict TypeRep -- ^ require value
./apiary-1.4.3/src/Data/Apiary/Param.hs:109: | Nullable TypeRep -- ^ allow key only value
@snoyberg
snoyberg / gist:8f3940c26b12faf94382
Created August 26, 2015 07:04
Unpack all nightly-2015-08-26 packages
stack unpack AC-Vector-2.3.2 Agda-2.4.2.3 BlastHTTP-1.2.0 BlogLiterately-0.8.1.1 BlogLiterately-diagrams-0.2.0.1 Boolean-0.2.3 BoundedChan-1.0.3.0 Cabal-1.22.4.0 Cabal-ide-backend-1.23.0.0 Chart-1.5.3 Chart-cairo-1.5.1 Chart-diagrams-1.5.1 ChasingBottoms-1.3.0.13 ConfigFile-1.1.4 DAV-1.0.7 DRBG-0.5.4 Decimal-0.4.2 Diff-0.3.2 Earley-0.10.0 FenwickTree-0.1.2.1 FontyFruity-0.5.2 GLFW-b-1.4.7.3 GenericPretty-1.2.1 Glob-0.7.5 GraphSCC-1.0.4 HCodecs-0.5 HDBC-2.4.0.1 HDBC-postgresql-2.3.2.3 HDBC-sqlite3-2.3.3.1 HList-0.4.1.0 HStringTemplate-0.8.3 HTF-0.13.1.0 HTTP-4000.2.20 HUnit-1.2.5.2 HaTeX-3.16.1.1 HaXml-1.25.3 HandsomeSoup-0.4.2 HaskellNet-0.4.5 HsOpenSSL-0.11.1.1 HsSyck-0.53 IOSpec-0.3 IPv6Addr-0.6.0.2 IfElse-0.85 JuicyPixels-3.2.6.1 List-0.5.2 ListLike-4.2.0 MFlow-0.4.5.10 MemoTrie-0.6.2 MissingH-1.3.0.1 MonadCatchIO-transformers-0.3.1.3 MonadPrompt-1.0.0.5 MonadRandom-0.4 MusicBrainz-0.2.4 Network-NineP-0.4.0 NineP-0.0.2.1 NumInstances-1.4 Octree-0.5.4.2 OneTuple-0.2.1 PSQueue-1.1 QuasiText-0.1.2.5 QuickChec
Wed Jan 29 15:13 2014 Time and Allocation Profiling Report (Final)
hashtable-cheating +RTS -s -p -hd -RTS
total time = 0.73 secs (726 ticks @ 1000 us, 1 processor)
total alloc = 4,485,405,008 bytes (excludes profiling overheads)
COST CENTRE MODULE %time %alloc
lookup Data.HashTable.ST.Cuckoo 39.4 16.1
import Data.List
import System.Environment (getArgs)
import Data.Maybe (fromMaybe)
import qualified Data.Judy as J
import qualified Data.ByteString as S
import Data.ByteString (ByteString)
import Control.Exception (evaluate)
import Data.Word
toWord = S.foldl' (\accum w -> accum * 4 + go w) 0
import Criterion.Main
import Data.Conduit
import qualified Data.Conduit.List as CL
import qualified Data.Foldable as F
import Control.Monad (replicateM_)
import Data.Functor.Identity
test name f =
bench name $ flip nf 200 $ \i -> runIdentity (replicateM_ i (yield ()) $= f (\_ _ -> ((), Nothing)) () $= CL.catMaybes $$ CL.sinkNull)
{-# LANGUAGE OverloadedStrings #-}
import Control.Monad.Trans.Class
import Data.Conduit
import qualified Data.Conduit.Combinators as CC
import qualified Data.Conduit.List as CL
import Data.Monoid (Monoid (..))
import Data.Text (Text, unpack)
import Data.XML.Types
import Safe (readMay)
import Text.XML.Stream.Parse
{-# LANGUAGE RankNTypes #-}
import Control.Monad.Primitive (PrimMonad, PrimState)
import Control.Monad.ST (runST)
import Control.Monad.Trans.State.Strict (execState, put)
import Criterion.Main (bench, bgroup, defaultMain,
whnf, whnfIO)
import qualified Data.ByteString as S
import Data.ByteString.Internal (ByteString (PS),
inlinePerformIO)
import Data.ByteString.Unsafe (unsafeIndex)
{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE OverloadedStrings #-}
import Blaze.ByteString.Builder (Builder, fromByteString, toByteString)
import Control.Exception (Exception)
import Control.Monad.Trans.Class (lift)
import Data.ByteString (ByteString)
import qualified Data.ByteString as S
import qualified Data.ByteString.Lazy as L
import Data.Conduit
import qualified Data.Conduit.Binary as CB
{-# LANGUAGE RankNTypes #-}
import Debug.Trace
import Control.Applicative
import Control.Lens (view, from, zoom, iso, Iso')
import Control.Monad.State.Strict (evalState)
import Pipes
import Pipes.Core as Pc
import qualified Pipes.Parse as Pp
import qualified Pipes.Prelude as P
{-# LANGUAGE DeriveDataTypeable #-}
import Control.Applicative ((<$>), (<*>))
import Control.Exception (Exception, throwIO)
import Control.Monad.Trans.Class (lift)
import Data.Conduit
import Data.Conduit.Extra (fuseLeftovers)
import qualified Data.Conduit.List as CL
import Data.Typeable (Typeable)
import Debug.Trace (traceShow)