Warning: this is an htmlized version!
The original is here, and
the conversion rules are here.
-- This file:
--   http://angg.twu.net/HASKELL/2021excuse.hs.html
--   http://angg.twu.net/HASKELL/2021excuse.hs
--           (find-angg "HASKELL/2021excuse.hs")
-- Author: Eduardo Ochs <eduardoochs@gmail.com>
--
-- (defun h (interactive) (find-angg "HASKELL/2021excuse.hs"))

f :: Int -> Int -> Int
f a b = 10 * a + b

g :: (Int, Int) -> Int
g (a, b) = 10 * a + b

{-
* (eepitch-ghci)
* (eepitch-kill)
* (eepitch-ghci)
:load 2021excuse.hs
:t g
:print g

:t atimes
:t implElim

-}



{-
* (eepitch-ghci)
* (eepitch-kill)
* (eepitch-ghci)
:load 2021excuse.hs

-}



-- (find-es "haskell" "where")

-- atimes1 :: (b -> c) -> ((a,b) -> (a,c))
-- atimes1 btoc = abtoac where
--   a = fst ab
--   b = snd ab
--   c = btoc b
--   ac = (a,c)
--   abtoac = \ ab -> ac


-- atimes :: (b -> c) -> ((a,b) -> (a,c))
-- atimes = \ btoc -> abtoac where
--   abtoac = \ ab -> ac where
--     a = fst ab
--     b = snd ab
--     c = btoc b
--     ac = (a,c)


atimes :: (b -> c) -> ((a,b) -> (a,c))
atimes btoc = abtoac where
  abtoac ab = ac where
    a = fst ab
    b = snd ab
    c = btoc b
    ac = (a,c)


{-
* (eepitch-ghci)
* (eepitch-kill)
* (eepitch-ghci)
:load 2021excuse.hs

-}





--

--              [ab]^1
--              ------snd                     a = fst ab
--   [ab]^1        b        btoc              b = snd ab
--   ------fst     -------------app           c = btoc b
--     a                c                     ac = (a,c)
--     ------------------(,)                  abtoac = \ ab -> ac
--        ac                                  atimes = \ btoc -> abtoac
--     ------lambda
--     abtoac
--
--     ^atimes