ord_0 :: Num a => a
ord_0 = fromInt (ord '0')
-{-# GENERATE_SPECS subtract a{Int} #-}
+{-# SPECIALISE subtract :: Int -> Int -> Int #-}
subtract :: (Num a) => a -> a -> a
subtract x y = y - x
\end{code}
-- function composition
{-# INLINE (.) #-}
-{- GENERATE_SPECS (.) a b c -}
(.) :: (b -> c) -> (a -> b) -> a -> c
(.) f g x = f (g x)
\begin{code}
data Lift a = Lift a
-{- GENERATE_SPECS data a :: Lift a -}
\end{code}
showParen :: Bool -> ShowS -> ShowS
showParen b p = if b then showChar '(' . p . showChar ')' else p
-{- GENERATE_SPECS showList__ a -}
showList__ :: (a -> ShowS) -> [a] -> ShowS
showList__ showx [] = showString "[]"