[speed up sortFooLike checking, handle case of literal type properly in typechecker
John Meacham <john@repetae.net>**20070314005322] hunk ./E/TypeCheck.hs 140
-sortKindLike e = not (sortSortLike e) && sortSortLike (getType e)
-sortTypeLike e = not (sortSortLike e) && not (sortKindLike e) && sortKindLike (getType e)
-sortTermLike e = not (sortSortLike e) && not (sortKindLike e) && not (sortTypeLike e) && sortTypeLike (getType e)
+
+sortKindLike (ESort s) =  s /=  EHashHash && s /= EStarStar
+sortKindLike e = sortSortLike (getType e)
+
+sortTypeLike ESort {} = False
+sortTypeLike e = sortKindLike (getType e)
+
+sortTermLike ESort {} = False
+sortTermLike e = sortTypeLike (getType e)
hunk ./E/TypeCheck.hs 217
-    fc ec@ECase { eCaseScrutinee = e@ELit {}, eCaseBind = b, eCaseAlts = as, eCaseDefault =  (Just d) } | sortTypeLike e = do   -- TODO - this is a hack to get around case of constants.
+    fc ec@ECase { eCaseScrutinee = e@ELit {}, eCaseBind = b, eCaseAlts = as, eCaseType = dt } | sortTypeLike e = do   -- TODO - this is a hack to get around case of constants.
hunk ./E/TypeCheck.hs 220
-        dt <- rfc d
hunk ./E/TypeCheck.hs 224
-        return dt
+        strong' dt