Subversion

Galculator

?curdirlinks? -

Blame information for rev 1

Line No. Rev Author Line
1 1 paulosilva  
2 {-# OPTIONS_GHC -Wall #-}
3  
4 -------------------------------------------------------------------------------
5  
6 {- |
7 Module      :  Language.Type.Pretty
8 Description :  Pretty-printer of the type representation.
9 Copyright   :  (c) Paulo Silva
10 License     :  LGPL
11  
12 Maintainer  :  paufil@di.uminho.pt
13 Stability   :  experimental
14 Portability :  portable
15  
16 -}
17  
18  
19 -------------------------------------------------------------------------------
20  
21 module Language.Type.Pretty (
22   showType
23  ) where
24  
25 import {-# SOURCE #-} Language.Type.Syntax
26  
27 showType :: Type t -> ShowS
28 showType (TVar a) =
29   parens $
30     showString "TVar " .
31     showString a
32  
33 showType One      = showString "One"
34 showType Bool     = showString "Bool"
35 showType Char     = showString "Char"
36 showType String   = showString "String"
37 showType Int      = showString "Int"
38 showType Float    = showString "Float"
39  
40 showType (Prod a b) =
41   parens $
42     showString "Prod " .
43     showType a .
44     space .
45     showType b
46  
47 showType (Either a b) =
48   parens $
49     showString "Either " .
50     showType a .
51     space .
52     showType b
53  
54 showType (Maybe a) =
55   parens $
56     showString "Maybe " .
57     showType a
58  
59 showType (List a) =
60   parens $
61     showString "List " .
62     showType a
63  
64 showType (Set a) =
65   parens $
66     showString "Set " .
67     showType a
68  
69 showType (Map a b) =
70   parens $
71     showString "Map " .
72     showType a .
73     space .
74     showType b
75  
76 showType (Fun a b) =
77   parens $
78     showString "Fun " .
79     showType a .
80     space .
81     showType b
82  
83 showType (Rel a b) =
84   parens $
85     showString "Rel " .
86     showType a .
87     space .
88     showType b
89  
90 showType (Ord a) =
91   parens $
92     showString "Ord " .
93     showType a
94  
95 showType (GC a b) =
96   parens $
97     showString "GC " .
98     showType a .
99     space .
100     showType b
101  
102 -------------------------------------------------------------------------------
103  
104 parens :: ShowS -> String -> String
105 parens = showParen True
106  
107 -------------------------------------------------------------------------------
108  
109 space :: ShowS
110 space = showChar ' '
111  
112 -------------------------------------------------------------------------------
113  

Theme by Vikram Singh | Powered by WebSVN v2.3.3