[examples
martin.hofmann@uni-bamberg.de**20091203140218] hunk ./expl/Examples.hs 1
+{-# OPTIONS_GHC -XTypeOperators -XTypeFamilies   #-}
hunk ./expl/Examples.hs 4
-data Peano = Z | S Peano deriving (Show)
-data NTree a = NilT | Branch a (NTree a)(NTree a) -- deriving (Show)
+import Generics.Pointless.Combinators
+import Generics.Pointless.Functors
+import Generics.Pointless.RecursionPatterns
+
+--
+-- data type definitions
+--
+
+-- Peano's Natural Numbers
+data Nat = Z | S Nat deriving (Show)
+
+-- Con Lists    
+data List a = NilL | Cons a (List a) deriving (Show)
+
+-- Binary Node Trees    
+data NTree a  = NilT | Node a (NTree a)(NTree a) deriving (Show)
+
+    
+-- Binary Leaf Trees    
+data LTree a = Leaf a | Branch (LTree a) (LTree a) deriving (Show)
+
+-- Rose Trees 
+data Rose a = Forest a [Rose a] deriving (Show)
+
+--
+-- Examples
+--      
hunk ./expl/Examples.hs 36
-ack :: Peano -> Peano -> Peano
+
+ack :: Nat -> Nat -> Nat
hunk ./expl/Examples.hs 66
-add :: Peano -> Peano -> Peano
+add :: Nat -> Nat -> Nat
hunk ./expl/Examples.hs 81
-addN :: Peano -> [Peano] -> [Peano]
+addN :: Nat -> [Nat] -> [Nat]
hunk ./expl/Examples.hs 102
-allodd :: [Peano] -> Bool
+allodd :: [Nat] -> Bool
hunk ./expl/Examples.hs 182
-droP :: Peano -> [a] -> [a]
+droP :: Nat -> [a] -> [a]
hunk ./expl/Examples.hs 204
-eveN :: Peano -> Bool
+eveN :: Nat -> Bool
hunk ./expl/Examples.hs 221
-evens :: [Peano] -> [Peano]
+evens :: [Nat] -> [Nat]
hunk ./expl/Examples.hs 244
-eq :: Peano -> Peano -> Bool
+eq :: Nat -> Nat -> Bool
hunk ./expl/Examples.hs 255
-fib :: Peano -> Peano
+fib :: Nat -> Nat
hunk ./expl/Examples.hs 263
-fibAdd :: Peano -> Peano -> Peano
+fibAdd :: Nat -> Nat -> Nat
hunk ./expl/Examples.hs 269
+flatten :: (NTree a) -> [a]
+flatten NilT = []
+flatten (Node a NilT NilT) = [a]
+flatten (Node a
+         (Node b NilT NilT)
+         (Node c NilT NilT)) = [a,b,c]
+flatten (Node a
+         (Node b 
+          (Node c NilT NilT)
+          (Node d NilT NilT))
+         (Node e 
+          (Node f NilT NilT)
+          (Node g NilT NilT))) = [a,b,c,d,e,f,g]
+         
+flatapp :: [a] -> [a] -> [a]
+flatapp [] [] = []
+flatapp [a] [b] = [a,b]
+flatapp [a,b,c][d,e,f] = [a,b,c,d,e,f]
+
hunk ./expl/Examples.hs 294
-incr :: [Peano] -> [Peano]
+incr :: [Nat] -> [Nat]
hunk ./expl/Examples.hs 310
-insert :: Peano -> [Peano] -> [Peano]
+insert :: Nat -> [Nat] -> [Nat]
hunk ./expl/Examples.hs 361
-lengtH :: [a] -> Peano
+lengtH :: [a] -> Nat
hunk ./expl/Examples.hs 367
-lengths :: [[a]] -> [Peano]
+lengths :: [[a]] -> [Nat]
hunk ./expl/Examples.hs 447
-odD :: Peano -> Bool
+odD :: Nat -> Bool
hunk ./expl/Examples.hs 457
-mirror (Branch a NilT NilT) = (Branch a NilT NilT)
-mirror (Branch b
-        (Branch a NilT NilT)
-        (Branch c NilT NilT)) = (Branch b 
-                                 (Branch c NilT NilT) 
-                                 (Branch a NilT NilT))
-mirror (Branch d
-        (Branch b 
-         (Branch a NilT NilT)
-         (Branch c NilT NilT))
-        (Branch f 
-         (Branch e NilT NilT)
-         (Branch g NilT NilT))) = (Branch d
-                                   (Branch f 
-                                    (Branch g NilT NilT)
-                                    (Branch e NilT NilT))
-                                   (Branch b 
-                                    (Branch c NilT NilT)
-                                    (Branch a NilT NilT)))
-
-flatten :: (NTree a) -> [a]
-flatten NilT = []
-flatten (Branch a NilT NilT) = [a]
-flatten (Branch a
-        (Branch b NilT NilT)
-        (Branch c NilT NilT)) = [a,b,c]
-flatten (Branch a
-        (Branch b 
-         (Branch c NilT NilT)
-         (Branch d NilT NilT))
-        (Branch e 
-         (Branch f NilT NilT)
-         (Branch g NilT NilT))) = [a,b,c,d,e,f,g]
-         
-flatapp :: [a] -> [a] -> [a]
-flatapp [] [] = []
-flatapp [a] [b] = [a,b]
-flatapp [a,b,c][d,e,f] = [a,b,c,d,e,f]
+mirror (Node a NilT NilT) = (Node a NilT NilT)
+mirror (Node b
+        (Node a NilT NilT)
+        (Node c NilT NilT)) = (Node b 
+                                 (Node c NilT NilT) 
+                                 (Node a NilT NilT))
+mirror (Node d
+        (Node b 
+         (Node a NilT NilT)
+         (Node c NilT NilT))
+        (Node f 
+         (Node e NilT NilT)
+         (Node g NilT NilT))) = (Node d
+                                   (Node f 
+                                    (Node g NilT NilT)
+                                    (Node e NilT NilT))
+                                   (Node b 
+                                    (Node c NilT NilT)
+                                    (Node a NilT NilT)))
hunk ./expl/Examples.hs 478
-pepper' :: Peano -> [a] -> [(Peano, Maybe a)]
+pepper' :: Nat -> [a] -> [(Nat, Maybe a)]
hunk ./expl/Examples.hs 487
-pepper :: Peano -> [a] -> [(Peano, Maybe (a,Peano))]
+pepper :: Nat -> [a] -> [(Nat, Maybe (a,Nat))]
hunk ./expl/Examples.hs 545
-sort :: [Peano] -> [Peano]
+sort :: [Nat] -> [Nat]
hunk ./expl/Examples.hs 564
-sortIns :: Peano -> [Peano] -> [Peano]
+sortIns :: Nat -> [Nat] -> [Nat]
hunk ./expl/Examples.hs 578
-suM :: [Peano] -> Peano
+suM :: [Nat] -> Nat
hunk ./expl/Examples.hs 618
-takE :: Peano -> [a] -> [a]
+takE :: Nat -> [a] -> [a]
hunk ./expl/Examples.hs 647
-zeros :: [Peano] -> [Peano]
+zeros :: [Nat] -> [Nat]