base: Fix a few TODOs in Typeable.Internal
authorBen Gamari <bgamari.foss@gmail.com>
Tue, 23 May 2017 13:42:12 +0000 (09:42 -0400)
committerBen Gamari <ben@smart-cactus.org>
Tue, 23 May 2017 14:57:29 +0000 (10:57 -0400)
Test Plan: Validate

Reviewers: austin, hvr, dfeuer

Reviewed By: dfeuer

Subscribers: rwbarton, thomie

GHC Trac Issues: #13746

Differential Revision: https://phabricator.haskell.org/D3605

libraries/base/Data/Typeable/Internal.hs

index 48da8dd..cf645ad 100644 (file)
@@ -187,9 +187,6 @@ data TypeRep (a :: k) where
             -> TypeRep b
             -> TypeRep (a -> b)
 
-on :: (a -> a -> r) -> (b -> a) -> (b -> b -> r)
-on f g = \ x y -> g x `f` g y
-
 -- Compare keys for equality
 
 -- | @since 2.01
@@ -207,7 +204,8 @@ instance TestEquality TypeRep where
 
 -- | @since 4.4.0.0
 instance Ord (TypeRep a) where
-  compare = compare `on` typeRepFingerprint
+  compare _ _ = EQ
+  {-# INLINABLE compare #-}
 
 -- | A non-indexed type representation.
 data SomeTypeRep where
@@ -305,11 +303,11 @@ someTypeRepTyCon (SomeTypeRep t) = typeRepTyCon t
 typeRepTyCon :: TypeRep a -> TyCon
 typeRepTyCon (TrTyCon _ tc _) = tc
 typeRepTyCon (TrApp _ a _)    = typeRepTyCon a
-typeRepTyCon (TrFun _ _ _)    = error "typeRepTyCon: FunTy" -- TODO
+typeRepTyCon (TrFun _ _ _)    = typeRepTyCon $ typeRep @(->)
 
 -- | Type equality
 --
--- @since TODO
+-- @since 4.10
 eqTypeRep :: forall k1 k2 (a :: k1) (b :: k2).
              TypeRep a -> TypeRep b -> Maybe (a :~~: b)
 eqTypeRep a b