Skip to content

Instantly share code, notes, and snippets.

@snoyberg
Last active August 26, 2015 07:00
Show Gist options
  • Save snoyberg/2d4f51a2538be22c62ec to your computer and use it in GitHub Desktop.
Save snoyberg/2d4f51a2538be22c62ec to your computer and use it in GitHub Desktop.
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
./apiary-1.4.3/src/Data/Apiary/Param.hs:119: pathRep :: proxy a -> TypeRep
./apiary-1.4.3/src/Data/Apiary/Param.hs:178: qTypeRep :: proxy a -> TypeRep
./apiary-1.4.3/src/Data/Apiary/Document/Internal.hs:15:import Data.Typeable(TypeRep)
./apiary-1.4.3/src/Data/Apiary/Document/Internal.hs:30: | DocFetch T.Text TypeRep (Maybe Html) Doc
./apiary-1.4.3/src/Data/Apiary/Document/Internal.hs:47: | Fetch T.Text TypeRep (Maybe Html) Route
./types-compat-0.1.1/src/Data/Typeable/Compat.hs:7: , TypeRep, showsTypeRep
./types-compat-0.1.1/src/Data/Typeable/Compat.hs:20:typeRep :: forall proxy a. Typeable a => proxy a -> TypeRep
./text-show-2/tests/Spec/Data/OldTypeableSpec.hs:27:import Data.OldTypeable (TyCon, TypeRep)
./text-show-2/tests/Spec/Data/OldTypeableSpec.hs:41: describe "TypeRep" $
./text-show-2/tests/Spec/Data/OldTypeableSpec.hs:42: prop "TextShow instance" (prop_matchesTextShow :: Int -> TypeRep -> Bool)
./text-show-2/tests/Spec/Data/TypeableSpec.hs:13:import Data.Typeable (TyCon, TypeRep)
./text-show-2/tests/Spec/Data/TypeableSpec.hs:27: describe "TypeRep" $
./text-show-2/tests/Spec/Data/TypeableSpec.hs:28: prop "TextShow instance" (prop_matchesTextShow :: Int -> TypeRep -> Bool)
./text-show-2/tests/Instances/Data/OldTypeable.hs:21:import Data.OldTypeable.Internal (TyCon(..), TypeRep(..))
./text-show-2/tests/Instances/Data/OldTypeable.hs:31:instance Arbitrary TypeRep where
./text-show-2/tests/Instances/Data/OldTypeable.hs:32: arbitrary = TypeRep <$> arbitrary <*> arbitrary <@> []
./text-show-2/tests/Instances/Data/OldTypeable.hs:33:-- arbitrary = TypeRep <$> arbitrary <*> arbitrary <*> arbitrary
./text-show-2/tests/Instances/Data/Typeable.hs:17:import Data.Typeable.Internal (TyCon(..), TypeRep(..))
./text-show-2/tests/Instances/Data/Typeable.hs:20:import Data.Typeable (TyCon, TypeRep, mkTyCon, typeOf)
./text-show-2/tests/Instances/Data/Typeable.hs:31:instance Arbitrary TypeRep where
./text-show-2/tests/Instances/Data/Typeable.hs:33: arbitrary = TypeRep <$> arbitrary
./text-show-2/src/TextShow/Data/OldTypeable.hs:29:import Data.OldTypeable.Internal (TyCon(TyCon, tyConName), TypeRep(..),
./text-show-2/src/TextShow/Data/OldTypeable.hs:45:-- | Convert a 'TypeRep' to a 'Builder' with the given precedence.
./text-show-2/src/TextShow/Data/OldTypeable.hs:49:showbTypeRepPrec :: Int -> TypeRep -> Builder
./text-show-2/src/TextShow/Data/OldTypeable.hs:50:showbTypeRepPrec p (TypeRep _ tycon tys) =
./text-show-2/src/TextShow/Data/OldTypeable.hs:73:instance TextShow TypeRep where
./text-show-2/src/TextShow/Data/Typeable.hs:20:import Data.Typeable (TypeRep, typeRepArgs, typeRepTyCon)
./text-show-2/src/TextShow/Data/Typeable.hs:37:-- | Convert a 'TypeRep' to a 'Builder' with the given precedence.
./text-show-2/src/TextShow/Data/Typeable.hs:40:showbTypeRepPrec :: Int -> TypeRep -> Builder
./text-show-2/src/TextShow/Data/Typeable.hs:96:instance TextShow TypeRep where
./diagrams-core-1.3.0.2/src/Diagrams/Core/Style.hs:188:attributeType :: Attribute v n -> TypeRep
./diagrams-core-1.3.0.2/src/Diagrams/Core/Style.hs:195:mType :: forall n a. Typeable a => Measured n a -> TypeRep
./diagrams-core-1.3.0.2/src/Diagrams/Core/Style.hs:214:newtype Style v n = Style (HM.HashMap TypeRep (Attribute v n))
./diagrams-core-1.3.0.2/src/Diagrams/Core/Style.hs:223: type Unwrapped (Style v n) = HM.HashMap TypeRep (Attribute v n)
./diagrams-core-1.3.0.2/src/Diagrams/Core/Style.hs:231:type instance Index (Style v n) = TypeRep
./diagrams-core-1.3.0.2/src/Diagrams/Core/Style.hs:298: => (a -> TypeRep)
./stackage-types-1.1.0/Stackage/Types.hs:53:import Data.Typeable (TypeRep, Typeable, typeOf)
./stackage-types-1.1.0/Stackage/Types.hs:190: withTypeRep :: Typeable a => (TypeRep -> m a) -> m a
./stackage-types-1.1.0/Stackage/Types.hs:199:data ParseFailedException = ParseFailedException TypeRep Text
./cmdargs-0.10.13/Data/Generics/Any.hs:54:typeOf :: Any -> TypeRep
./hakyll-4.7.2.3/src/Hakyll/Core/Store.hs:30:import Data.Typeable (TypeRep, Typeable, cast, typeOf)
./hakyll-4.7.2.3/src/Hakyll/Core/Store.hs:62: | WrongType TypeRep TypeRep -- ^ Expected, true type
./shake-0.15.5/src/Development/Shake/Special.hs:18:specialIsFileKey :: TypeRep -> Bool
./shake-0.15.5/src/Development/Shake/Errors.hs:51:errorNoRuleToBuildType :: TypeRep -> Maybe String -> Maybe TypeRep -> IO a
./shake-0.15.5/src/Development/Shake/Errors.hs:59:errorRuleTypeMismatch :: TypeRep -> Maybe String -> TypeRep -> TypeRep -> IO a
./shake-0.15.5/src/Development/Shake/Errors.hs:68:errorIncompatibleRules :: TypeRep -> TypeRep -> TypeRep -> IO a
./shake-0.15.5/src/Development/Shake/Errors.hs:76:errorMultipleRulesMatch :: TypeRep -> String -> Int -> IO a
./shake-0.15.5/src/Development/Shake/Errors.hs:87:errorRuleRecursion :: Maybe TypeRep -> Maybe String -> IO a
./shake-0.15.5/src/Development/Shake/Errors.hs:94:errorDuplicateOracle :: TypeRep -> Maybe String -> [TypeRep] -> IO a
./shake-0.15.5/src/Development/Shake/Errors.hs:102:errorNoApply :: TypeRep -> Maybe String -> String -> IO a
./shake-0.15.5/src/Development/Shake/Errors.hs:112:specialIsOracleKey :: TypeRep -> Bool
./shake-0.15.5/src/Development/Shake/Value.hs:41:typeKey :: Key -> TypeRep
./shake-0.15.5/src/Development/Shake/Value.hs:44:typeValue :: Value -> TypeRep
./shake-0.15.5/src/Development/Shake/Value.hs:74:witness :: IORef (Map.HashMap TypeRep Value)
./shake-0.15.5/src/Development/Shake/Value.hs:82:-- Produce a list in a predictable order from a Map TypeRep, which should be consistent regardless of the order
./shake-0.15.5/src/Development/Shake/Value.hs:85:toStableList :: Map.HashMap TypeRep v -> [(TypeRep,v)]
./shake-0.15.5/src/Development/Shake/Value.hs:92: ,witnessOut :: Map.HashMap TypeRep Word16 -- for writing out, find the value
./shake-0.15.5/src/Development/Shake/Core.hs:203: ,rules :: Map.HashMap TypeRep{-k-} (TypeRep{-k-},TypeRep{-v-},[(Double,ARule m)]) -- higher fst is higher priority
./shake-0.15.5/src/Development/Shake/Core.hs:296: ,resultType :: TypeRep
./shake-0.15.5/src/Development/Shake/Core.hs:299:createRuleinfo :: ShakeOptions -> SRules Action -> Map.HashMap TypeRep (RuleInfo Action)
./shake-0.15.5/src/Development/Shake/Core.hs:318:runStored :: Map.HashMap TypeRep (RuleInfo m) -> Key -> IO (Maybe Value)
./shake-0.15.5/src/Development/Shake/Core.hs:323:runEqual :: Map.HashMap TypeRep (RuleInfo m) -> Key -> Value -> Value -> EqualCost
./shake-0.15.5/src/Development/Shake/Core.hs:328:runExecute :: MonadIO m => Map.HashMap TypeRep (RuleInfo m) -> Key -> m Value
./shake-0.15.5/src/Development/Shake/Core.hs:343: ,globalRules :: Map.HashMap TypeRep (RuleInfo Action)
./shake-0.15.5/src/Development/Shake/Core.hs:734: arrow1Type :: forall a b . Typeable a => (a -> b) -> TypeRep
./haskell-src-exts-1.16.0.1/tests/examples/GenericTree.hs:6:dynRep :: (Typeable a) => a -> (TypeRep, forall b. (Typeable b) => b -> (Maybe b))
./haskell-src-exts-1.16.0.1/tests/examples/PolyKinds.hs:5: typeOf :: Proxy t -> TypeRep
./haskell-src-exts-1.16.0.1/tests/examples/PolyKinds.hs:7:instance Typeable Int where typeOf _ = TypeRep
./haskell-src-exts-1.16.0.1/tests/examples/PolyKinds.hs:8:instance Typeable [] where typeOf _ = TypeRep
./bson-0.3.1/Data/Bson.hs:209:typeOfVal :: Value -> TypeRep
./ghc-typelits-natnormalise-0.3/src/GHC/TypeLits/Normalise/Unify.hs:40:import TypeRep (Type (..), TyLit (..))
./derive-2.5.22/Data/Derive/Typeable.hs:9: 'TypeRep'.
./clash-prelude-0.9.2/src/CLaSH/Sized/Fixed.hs:75:import Data.Typeable (Typeable, TypeRep, typeRep)
./clash-prelude-0.9.2/src/CLaSH/Sized/Fixed.hs:436:decFixed :: TypeRep -> Integer -> Integer -> TypeQ
./generics-sop-0.1.1.2/src/Generics/SOP/Instances.hs:217:-- TypeRep
./lens-4.12.3/src/Generics/Deriving/Lens.hs:89: tinplated :: Typeable b => Maybe TypeRep -> Traversal' (f a) b
./lens-4.12.3/src/Control/Lens/Internal/Exception.hs:178:-- here we simply generate a fresh TypeRep so we'll fail to compare as equal to any other TypeRep.
./lens-4.12.3/src/Data/Data/Lens.hs:281: { dataBoxKey :: TypeRep
./lens-4.12.3/src/Data/Data/Lens.hs:303:type HitMap = HashMap TypeRep (HashSet TypeRep)
./lens-4.12.3/src/Data/Data/Lens.hs:347:data Cache = Cache HitMap (HashMap TypeRep (HashMap TypeRep (Maybe Follower)))
./lens-4.12.3/src/Data/Data/Lens.hs:353:readCacheFollower :: DataBox -> TypeRep -> Maybe Follower
./lens-4.12.3/src/Data/Data/Lens.hs:361:insert2 :: TypeRep -> TypeRep -> a -> HashMap TypeRep (HashMap TypeRep a) -> HashMap TypeRep (HashMap TypeRep a)
./lens-4.12.3/src/Data/Data/Lens.hs:434:type Follower = TypeRep -> Bool
./lens-4.12.3/src/Data/Data/Lens.hs:436:follower :: TypeRep -> TypeRep -> HitMap -> Follower
./tasty-0.10.1.2/Test/Tasty/Core.hs:243: => t -> Map.Map TypeRep [OptionDescription]
./tasty-0.10.1.2/Test/Tasty/Options.hs:82:newtype OptionSet = OptionSet (Map TypeRep OptionValue)
./stack-0.1.3.1/src/Stack/Types/BuildPlan.hs:52:import Data.Typeable (TypeRep, Typeable, typeOf)
./stack-0.1.3.1/src/Stack/Types/BuildPlan.hs:139: withTypeRep :: Typeable a => (TypeRep -> m a) -> m a
./stack-0.1.3.1/src/Stack/Types/BuildPlan.hs:150: | ParseFailedException TypeRep Text
./HList-0.4.1.0/Data/HList/Data.hs:292: typeRepsList :: a -> [TypeRep]
./hashable-1.2.3.3/Data/Hashable/Class.hs:72:import Data.Typeable.Internal(TypeRep(..))
./hashable-1.2.3.3/Data/Hashable/Class.hs:456:-- | Compute the hash of a TypeRep, in various GHC versions we can do this quickly.
./hashable-1.2.3.3/Data/Hashable/Class.hs:457:hashTypeRep :: TypeRep -> Int
./hashable-1.2.3.3/Data/Hashable/Class.hs:464:hashTypeRep (TypeRep (Fingerprint x _) _ _) = fromIntegral x
./hashable-1.2.3.3/Data/Hashable/Class.hs:471:instance Hashable TypeRep where
./TCache-0.12.0/Data/TCache/Triggers.hs:25:cmtriggers :: IORef [(TypeRep ,[CMTrigger])]
./yesod-core-1.4.15/Yesod/Core/TypeCache.hs:7:-- Note that a TypeRep is unique to a module in a package, so types from different modules will not conflict if they have the same name.
./yesod-core-1.4.15/Yesod/Core/TypeCache.hs:13:import Data.Typeable (Typeable, TypeRep, typeOf)
./yesod-core-1.4.15/Yesod/Core/TypeCache.hs:18:type TypeMap = HashMap TypeRep Dynamic
./yesod-core-1.4.15/Yesod/Core/TypeCache.hs:19:type KeyedTypeMap = HashMap (TypeRep, ByteString) Dynamic
./yesod-core-1.4.15/Yesod/Core/TypeCache.hs:22:-- Values are stored by their TypeRep from Typeable.
./resourcet-1.1.6/Control/Monad/Trans/Resource/Internal.hs:192: goType :: Typeable1 m => m a -> ResourceT m a -> TypeRep
./mysql-simple-0.2.2.5/Database/MySQL/Simple/Result.hs:41:import Data.Typeable (TypeRep, Typeable, typeOf)
./mysql-simple-0.2.2.5/Database/MySQL/Simple/Result.hs:220:incompatible :: Field -> TypeRep -> String -> a
./clash-ghc-0.5.11/src-ghc/CLaSH/GHC/GHC2Core.hs:73:import TypeRep (TyLit (..), Type (..))
./MFlow-0.4.5.10/src/MFlow/Forms/Internals.hs:656: mfData :: M.Map TypeRep Void,
./nsis-0.3/Development/NSIS/Sugar.hs:32: ,scopes :: [[(String,(TypeRep,Val))]] -- nearest scope is here
./singletons-1.1.2.1/src/Data/Singletons/TypeRepStar.hs:55: type DemoteRep ('KProxy :: KProxy *) = TypeRep
./singletons-1.1.2.1/src/Data/Singletons/TypeRepStar.hs:92:dirty_mk_STypeRep :: TypeRep -> SomeSing ('KProxy :: KProxy *)
./singletons-1.1.2.1/src/Data/Singletons/TypeRepStar.hs:95: let justLikeTypeable :: Proxy# a -> TypeRep
./singletons-1.1.2.1/src/Data/Singletons/TypeRepStar.hs:99: let justLikeTypeable :: a -> TypeRep
./singletons-1.1.2.1/src/Data/Singletons/Names.hs:21:import Data.Typeable ( TypeRep )
./singletons-1.1.2.1/src/Data/Singletons/Names.hs:53:typeRepName = ''TypeRep
./tagged-binary-0.2.0.0/Data/Binary/Tagged.hs:39:-- platforms to agree on a meaningful 'TypeRep' serialization, and we will
./acid-state-0.12.4/src/Data/Acid/Core.hs:49:import Data.Typeable ( Typeable, TypeRep, typeOf )
./acid-state-0.12.4/src/Data/Acid/Core.hs:54:import Data.Typeable.Internal ( TypeRep (..), tyConModule )
./acid-state-0.12.4/src/Data/Acid/Core.hs:56:-- in base >= 4.4 the Show instance for TypeRep no longer provides a
./acid-state-0.12.4/src/Data/Acid/Core.hs:61:showQualifiedTypeRep :: TypeRep -> String
./acid-state-0.12.4/src/Data/Acid/Core.hs:65: extractTypeRepCon (TypeRep _ c _ _) = c
./acid-state-0.12.4/src/Data/Acid/Core.hs:67: extractTypeRepCon (TypeRep _ c _) = c
./acid-state-0.12.4/src/Data/Acid/Core.hs:72:showQualifiedTypeRep :: TypeRep -> String
./web-routing-0.6.2/src/Network/Routing/Dict/Internal.hs:38:import Data.Typeable(typeOf, Typeable, TypeRep)
./web-routing-0.6.2/src/Network/Routing/Dict/Internal.hs:123: showDict :: Int -> Dict kvs -> [(String, String, TypeRep)]
./Agda-2.4.2.3/src/full/Agda/TypeChecking/Serialise.hs:57:import Data.Typeable ( cast, Typeable, typeOf, TypeRep )
./Agda-2.4.2.3/src/full/Agda/TypeChecking/Serialise.hs:199:type Memo = HashTable (Int32, TypeRep) U -- (node index, type rep)
./haddock-api-2.16.1/src/Haddock/Convert.hs:38:import TypeRep
./haddock-api-2.16.1/src/Haddock/Interface/AttachInstances.hs:45:import TypeRep
./syb-0.5.1/src/Data/Generics/Instances.hs:73:instance Data TypeRep where
./syb-0.5.1/src/Data/Generics/Instances.hs:76: dataTypeOf _ = myMkNoRepType "Data.Typeable.TypeRep"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment