Home My Page Projects Code Snippets Project Openings SML/NJ
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files

SCM Repository

[smlnj] Annotation of /tests/trunk/bugs/tests.obsolete/bug1482.1.sml
ViewVC logotype

Annotation of /tests/trunk/bugs/tests.obsolete/bug1482.1.sml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2460 - (view) (download)

1 : dbm 548 (* bug1482.1.sml *)
2 :    
3 :     signature SUM =
4 :     sig
5 :    
6 :     type type1
7 :     type type2
8 :    
9 :     datatype t =
10 :     Type1 of type1
11 :     | Type2 of type2
12 :    
13 :     end
14 :    
15 :    
16 :     signature SET =
17 :     sig
18 :    
19 :     type element
20 :    
21 :     type t
22 :    
23 :     val empty: t
24 :    
25 :     val extend: t * element -> t
26 :    
27 :     end
28 :    
29 :    
30 :     structure UnitSet =
31 :     struct
32 :    
33 :     type element = unit
34 :    
35 :     type t = bool
36 :    
37 :     val empty = false
38 :    
39 :     fun extend(_, ()) = true
40 :    
41 :     end
42 :    
43 :    
44 :     functor SumSet
45 :     (
46 :     structure Sum: SUM
47 :     structure Set1: SET
48 :     where type element = Sum.type1
49 :     structure Set2: SET
50 :     where type element = Sum.type2
51 :     ) :> SET
52 :     where type element = Sum.t
53 :     =
54 :     struct
55 :    
56 :     type element = Sum.t
57 :    
58 :     type t = Set1.t * Set2.t
59 :    
60 :     val empty = (Set1.empty, Set2.empty)
61 :    
62 :     fun extend((set1, set2), Sum.Type1 element1) =
63 :     (Set1.extend(set1, element1), set2)
64 :     | extend((set1, set2), Sum.Type2 element2) =
65 :     (set1, Set2.extend(set2, element2))
66 :    
67 :     end
68 :    
69 :    
70 :     structure UnitUnit =
71 :     struct
72 :    
73 :     type type1 = unit
74 :     type type2 = unit
75 :    
76 :     datatype t =
77 :     Type1 of type1
78 :     | Type2 of type2
79 :    
80 :     end
81 :    
82 :    
83 :     structure UnitUnitSet =
84 :     SumSet
85 :     (
86 :     structure Sum = UnitUnit
87 :     structure Set1 = UnitSet
88 :     structure Set2 = UnitSet
89 :     )

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0