1 2 3 4 5 6 7 8 9 10 11 | -- section 1 type Foo m n = [(m, Maybe n)] t :: (Show m, Show n) => Foo m n -> String t f = intercalate "." $ map (\(a, b) -> show a ++ show b ) f -- section 2 type JobArgs k a = M.Map k a start :: (Ord k, Exception e) => JobArgs k a -> (a -> IO b) -> IO (M.Map k (Either e b)) |