Warning: this is an htmlized version!
The original is here, and the conversion rules are here. |
-- This file: -- http://angg.twu.net/HASKELL/Classes1.hs.html -- http://angg.twu.net/HASKELL/Classes1.hs -- (find-angg "HASKELL/Classes1.hs") -- Author: Eduardo Ochs <eduardoochs@gmail.com> -- -- (defun e () (interactive) (find-angg "HASKELL/Classes1.hs")) -- (find-es "haskell" "class-and-instance") -- (find-es "haskell" "hutton-book" "8:") -- -- «.type» (to "type") -- «.data» (to "data") -- «.newtype» (to "newtype") -- «.class» (to "class") -- «type» (to ".type") -- (find-books "__comp/__comp.el" "haskell-hutton" "8" "Declaring types and classes") -- (find-huttonbookpage 116 "8.1 Type declarations") -- (find-huttonbooktext 116 "8.1 Type declarations") -- type T2 = (Int, Int) type T3 = (T2, Int) o3 :: T3 o3 = ((22, 33), 44) {- * (eepitch-ghci) * (eepitch-kill) * (eepitch-ghci) :load Classes1.hs o3 -} -- «data» (to ".data") -- (find-huttonbookpage 117 "8.2 Data declarations") -- (find-huttonbooktext 117 "8.2 Data declarations") data D1 = D1ca | D1cb deriving Show data D2 = D2ca Int | D2cb Int Int deriving Show data D3 a = D3c0 | D3ca a | D3ci Int | D3c2 (D3 a) (D3 a) deriving Show {- * (eepitch-ghci) * (eepitch-kill) * (eepitch-ghci) :load Classes1.hs D2ca 22 D2cb 22 33 D3ci 22 :t D3c0 :t D3ci 22 :t 33 :t D3ca 33 :t D3ca "foo" D3c2 (D3ci 22) (D3ca "foo") D3c2 (D3ca "foo") (D3ca "bar") -} -- «newtype» (to ".newtype") -- (find-huttonbookpage 119 "8.3 Newtype declarations") -- (find-huttonbooktext 119 "8.3 Newtype declarations") newtype N1 = N1c Int {- * (eepitch-ghci) * (eepitch-kill) * (eepitch-ghci) :load Classes1.hs -} -- «class» (to ".class") -- (find-huttonbookpage 124 "8.5 Class and instance declarations") -- (find-huttonbooktext 124 "8.5 Class and instance declarations") -- (find-huttonbookpage 125 "Derived instances") -- (find-huttonbooktext 125 "Derived instances") -- (find-ghcugdoc "glasgow_exts#deriving-any-other-class") -- (find-ghcugdocr "glasgow_exts#deriving-any-other-class") -- (find-ghcugdoc "glasgow_exts#inferred-context-for-deriving-clauses") -- (find-ghcugdoc "glasgow_exts#extensions-to-the-deriving-mechanism") -- (find-ghcugdoc "glasgow_exts#instance-declarations") -- (find-ghcugdoc "using-warnings#ghc-flag-Wmissing-methods") -- (find-fline "~/LOGS/2022oct01.haskell" "have to declare the instance for C1 before") -- (find-fline "~/LOGS/2022oct01.haskell" "mutually recursive") -- (find-haskell2010page (+ 20 45) "4.3.2 Instance Declarations") -- (find-haskell2010text (+ 20 45) "4.3.2 Instance Declarations") data DD1 = DD1a | DD1b deriving Show data DD2 = DD2a | DD2b deriving Show data DD3 = DD3a | DD3b deriving Show class C1 a where m1 :: a -> String m2 :: a -> String m1 _ = "C1 m1: default" m2 _ = "C1 m2: default" class C1 a => C2 a where m3 :: a -> String m4 :: a -> String m3 _ = "C2 m3: default" m4 _ = "C2 m4: default" instance C1 DD1 instance C1 DD2 instance C2 DD2 where m3 _ = "C2 m3: modified for DD2" {- * (eepitch-ghci) * (eepitch-kill) * (eepitch-ghci) :load Classes1.hs :t m1 :t DD1a DD1a m1 DD1a m1 DD2a m3 DD2a :t m2 :t m2 :info C1 :info C2 -} -- Local Variables: -- coding: utf-8-unix -- End: