1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
  | 
module Prelude.Collection (
  Collectiontype-class `Prelude.Collection.Collection`
   arguments: ('c :: *) ('e :: *)
   functional deps: 'c -> 'e
   super-class constraints:
     - Prelude.BasicClasses.Monoid 'c(..)class-constant `fromList`
class-constant `insert`
class-constant `isEmptyP`
class-constant `memberP`
class-constant `singleton`
,
  emptyconstant `Prelude.Collection.empty`
   constant
   type `Collection 'c 'e => 'c`
   executable,
  unionconstant `Prelude.Collection.union`
   constant
   type `Collection 'c 'e => 'c -> 'c -> 'c`
   executable,
  imageconstant `Prelude.Collection.image`
   constant
   type `(!Functor 'C, Collection ('C 'e1) 'e1, Collection ('C 'e2) 'e2) => ('e1 -> 'e2) -> 'C 'e1 -> 'C 'e2`
   executable,
  setEmptyconstant `Prelude.Collection.setEmpty`
   constant
   type `SetLike 'c 'e => 'c`
   executable,
  setInsertconstant `Prelude.Collection.setInsert`
   constant
   type `SetLike 'c 'e => 'e -> 'c -> 'c`
   executable,
  setFromListconstant `Prelude.Collection.setFromList`
   constant
   type `SetLike 'c 'e => ['e] -> 'c`
   executable,
  CollectionWithEmptynessTesttype-class `Prelude.Collection.CollectionWithEmptynessTest`
   arguments: ('c :: *) ('e :: *)
   functional deps: 'c -> 'e
   super-class constraints:
     - Prelude.Collection.Collection 'c 'e(..)class-constant `isEmpty`
,
  CollectionWithMembershipTesttype-class `Prelude.Collection.CollectionWithMembershipTest`
   arguments: ('c :: *) ('e :: *)
   functional deps: 'c -> 'e
   super-class constraints:
     - Prelude.Collection.Collection 'c 'e(..)class-constant `member`
class-constant `occur`
,
  CollectionWithDeletetype-class `Prelude.Collection.CollectionWithDelete`
   arguments: ('c :: *) ('e :: *)
   functional deps: 'c -> 'e
   super-class constraints:
     - Prelude.Eq.Eq 'e
     - Prelude.Collection.CollectionWithMembershipTest 'c 'e(..)class-constant `delete`
class-constant `difference`
class-constant `filter`
class-constant `intersection`
class-constant `partition`
,
  FiniteCollectiontype-class `Prelude.Collection.FiniteCollection`
   arguments: ('c :: *) ('e :: *)
   functional deps: 'c -> 'e
   super-class constraints:
     - Prelude.Collection.CollectionWithMembershipTest 'c 'e
     - Prelude.Foldable.Foldable 'c 'e
     - Prelude.Collection.CollectionWithEmptynessTest 'c 'e(..),
  CollectionWithSubsetTesttype-class `Prelude.Collection.CollectionWithSubsetTest`
   arguments: ('c :: *) ('e :: *)
   functional deps: 'c -> 'e
   super-class constraints:
     - Prelude.Collection.CollectionWithDelete 'c 'e
     - Prelude.Collection.CollectionWithEmptynessTest 'c 'e(..)class-constant `disjoint`
class-constant `isProperSubsetOf`
class-constant `isSetEquiv`
class-constant `isSubsetOf`
,
  SetLiketype-class `Prelude.Collection.SetLike`
   arguments: ('c :: *) ('e :: *)
   functional deps: 'c -> 'e
   super-class constraints:
     - Prelude.Collection.CollectionWithMembershipTest 'c 'e(..),
  BagLiketype-class `Prelude.Collection.BagLike`
   arguments: ('c :: *) ('e :: *)
   functional deps: 'c -> 'e
   super-class constraints:
     - Prelude.Collection.CollectionWithMembershipTest 'c 'e(..),
  Settype-class `Prelude.Collection.Set`
   arguments: ('c :: *) ('e :: *)
   functional deps: 'c -> 'e
   super-class constraints:
     - Prelude.Collection.SetLike 'c 'e
     - Prelude.Collection.CollectionWithDelete 'c 'e
     - Prelude.Collection.CollectionWithEmptynessTest 'c 'e(..),
  FiniteSettype-class `Prelude.Collection.FiniteSet`
   arguments: ('c :: *) ('e :: *)
   functional deps: 'c -> 'e
   super-class constraints:
     - Prelude.Collection.Set 'c 'e
     - Prelude.Collection.FiniteCollection 'c 'e(..),
  Bagtype-class `Prelude.Collection.Bag`
   arguments: ('c :: *) ('e :: *)
   functional deps: 'c -> 'e
   super-class constraints:
     - Prelude.Collection.BagLike 'c 'e
     - Prelude.Collection.CollectionWithDelete 'c 'e
     - Prelude.Collection.CollectionWithEmptynessTest 'c 'e(..),
  FiniteBagtype-class `Prelude.Collection.FiniteBag`
   arguments: ('c :: *) ('e :: *)
   functional deps: 'c -> 'e
   super-class constraints:
     - Prelude.Collection.Bag 'c 'e
     - Prelude.Collection.FiniteCollection 'c 'e(..)
) where
{-# NoImplicitPrelude #-}
import Prelude.Bool
import Prelude.BasicClasses
import Prelude.Eq
import Prelude.Ord
import Prelude.Function
import Prelude.Tuple
import Prelude.Functor
import Prelude.Foldable
import Prelude.Num
import qualified Prelude.List as List
class Monoidtype-class `Prelude.BasicClasses.Monoid`
   arguments: ('a :: *)
   super-class constraints:
     - Prelude.BasicClasses.Semigroup 'a 'ctype-variable `'c`
   kind `*` => Collection 'ctype-variable `'c`
   kind `*` 'etype-variable `'e`
   kind `*` | 'c -> 'e where
  declare insertconstant `Prelude.Collection.insert`
   constant of type-class `Collection`
   type `'e -> 'c -> 'c`
   executable :: 'etype-variable `'e`
   kind `*` -> 'ctype-variable `'c`
   kind `*` -> 'ctype-variable `'c`
   kind `*`
  define insertconstant `Prelude.Collection.insert`
   default instance of type-class constant
   type `('e -> 'c) -> 'e -> 'c -> 'c`
   executable evariable `e`
   type `'e` cvariable `c`
   type `'c` := (singletonconstant `Prelude.Collection.singleton`
   constant of type-class `Collection`
   type `'e -> 'c`
   executable
   same type-class instance evariable `e`
   type `'e`) <>constant `Prelude.BasicClasses.(<>)`
   constant of type-class `Semigroup`
   type `'a -> 'a -> 'a`
   type in context `'c -> 'c -> 'c`
   executable
   type-class instance from context cvariable `c`
   type `'c`
  declare fromListconstant `Prelude.Collection.fromList`
   constant of type-class `Collection`
   type `['e] -> 'c`
   executable :: ['etype-variable `'e`
   kind `*`] -> 'ctype-variable `'c`
   kind `*`
  define fromListconstant `Prelude.Collection.fromList`
   default instance of type-class constant
   type `('e -> 'c -> 'c) -> ['e] -> 'c`
   executable := foldlconstant `Prelude.Foldable.foldl`
   statically resolved constant of type-class `Foldable`
   type `('acc -> 'e -> 'acc) -> 'acc -> 't -> 'acc`
   type in context `('c -> 'e -> 'c) -> 'c -> ['e] -> 'c`
   executable
   statically resolved type-class instance (fntype `'c -> 'e -> 'c` cvariable `c`
   type `'c` evariable `e`
   type `'e` -> insertconstant `Prelude.Collection.insert`
   constant of type-class `Collection`
   type `'e -> 'c -> 'c`
   executable
   same type-class instance evariable `e`
   type `'e` cvariable `c`
   type `'c`) memptyconstant `Prelude.BasicClasses.mempty`
   constant of type-class `Monoid`
   type `'a`
   type in context `'c`
   executable
   type-class instance from context
  declare singletonconstant `Prelude.Collection.singleton`
   constant of type-class `Collection`
   type `'e -> 'c`
   executable :: 'etype-variable `'e`
   kind `*` -> 'ctype-variable `'c`
   kind `*`
  define singletonconstant `Prelude.Collection.singleton`
   default instance of type-class constant
   type `('e -> 'c -> 'c) -> 'e -> 'c`
   executable evariable `e`
   type `'e` := insertconstant `Prelude.Collection.insert`
   constant of type-class `Collection`
   type `'e -> 'c -> 'c`
   executable
   same type-class instance evariable `e`
   type `'e` memptyconstant `Prelude.BasicClasses.mempty`
   constant of type-class `Monoid`
   type `'a`
   type in context `'c`
   executable
   type-class instance from context
  declare non-exec memberPconstant `Prelude.Collection.memberP`
   constant of type-class `Collection`
   type `EqP 'e => 'e -> 'c -> Prop`
   non-executable :: EqPtype-class `Prelude.Eq.EqP`
   arguments: ('a :: *)
   has default derive templates
   derive-template labels
     - eq (only deriving)
     - full 'etype-variable `'e`
   kind `*` => 'etype-variable `'e`
   kind `*` -> 'ctype-variable `'c`
   kind `*` -> Proptype `Prelude.Bool.Prop`
   kind `*`
   non-executable
  declare non-exec isEmptyPconstant `Prelude.Collection.isEmptyP`
   constant of type-class `Collection`
   type `'c -> Prop`
   non-executable :: 'ctype-variable `'c`
   kind `*` -> Proptype `Prelude.Bool.Prop`
   kind `*`
   non-executable
  property EqPtype-class `Prelude.Eq.EqP`
   arguments: ('a :: *)
   has default derive templates
   derive-template labels
     - eq (only deriving)
     - full 'etype-variable `'e`
   kind `*` => isEmptyP_okconstant `Prelude.Collection.isEmptyP_ok`
   type-class property
   type `EqP 'e => 'c -> Prop`
   non-executable (cvariable `c`
   type `'c` :: 'ctype-variable `'c`
   kind `*`) := isEmptyPconstant `Prelude.Collection.isEmptyP`
   constant of type-class `Collection`
   type `'c -> Prop`
   non-executable
   same type-class instance cvariable `c`
   type `'c` <=>constant `Prelude.Bool.(<=>)`
   constant
   type `Prop -> Prop -> Prop`
   non-executable (forallP evariable `e`
   type `'e`. notPconstant `Prelude.Bool.notP`
   constant
   type `Prop -> Prop`
   non-executable (memberPconstant `Prelude.Collection.memberP`
   constant of type-class `Collection`
   type `EqP 'e => 'e -> 'c -> Prop`
   type in context `'e -> 'c -> Prop`
   non-executable
   same type-class instance evariable `e`
   type `'e` cvariable `c`
   type `'c`))
  property isEmptyP_emptyconstant `Prelude.Collection.isEmptyP_empty`
   type-class property
   type `Prop`
   non-executable := isEmptyPconstant `Prelude.Collection.isEmptyP`
   constant of type-class `Collection`
   type `'c -> Prop`
   non-executable
   same type-class instance (memptyconstant `Prelude.BasicClasses.mempty`
   constant of type-class `Monoid`
   type `'a`
   type in context `'c`
   executable
   type-class instance from context :: 'ctype-variable `'c`
   kind `*`)
  property EqPtype-class `Prelude.Eq.EqP`
   arguments: ('a :: *)
   has default derive templates
   derive-template labels
     - eq (only deriving)
     - full 'etype-variable `'e`
   kind `*` => memberP_insertconstant `Prelude.Collection.memberP_insert`
   type-class property
   type `EqP 'e => 'e -> 'e -> 'c -> Prop`
   non-executable (e1variable `e1`
   type `'e` :: 'etype-variable `'e`
   kind `*`) e2variable `e2`
   type `'e` (cvariable `c`
   type `'c` :: 'ctype-variable `'c`
   kind `*`) := (memberPconstant `Prelude.Collection.memberP`
   constant of type-class `Collection`
   type `EqP 'e => 'e -> 'c -> Prop`
   type in context `'e -> 'c -> Prop`
   non-executable
   same type-class instance e1variable `e1`
   type `'e` (insertconstant `Prelude.Collection.insert`
   constant of type-class `Collection`
   type `'e -> 'c -> 'c`
   executable
   same type-class instance e2variable `e2`
   type `'e` cvariable `c`
   type `'c`) <=>constant `Prelude.Bool.(<=>)`
   constant
   type `Prop -> Prop -> Prop`
   non-executable ((e1variable `e1`
   type `'e` ===constant `Prelude.Eq.(===)`
   constant of type-class `EqP`
   type `'a -> 'a -> Prop`
   type in context `'e -> 'e -> Prop`
   non-executable
   type-class instance from argument e2variable `e2`
   type `'e`) \/constant `Prelude.Bool.(\/)`
   constant
   type `Prop -> Prop -> Prop`
   non-executable memberPconstant `Prelude.Collection.memberP`
   constant of type-class `Collection`
   type `EqP 'e => 'e -> 'c -> Prop`
   type in context `'e -> 'c -> Prop`
   non-executable
   same type-class instance e1variable `e1`
   type `'e` cvariable `c`
   type `'c`))
  property EqPtype-class `Prelude.Eq.EqP`
   arguments: ('a :: *)
   has default derive templates
   derive-template labels
     - eq (only deriving)
     - full 'etype-variable `'e`
   kind `*` => memberP_fromListconstant `Prelude.Collection.memberP_fromList`
   type-class property
   type `EqP 'e => 'e -> ['e] -> Prop`
   non-executable (evariable `e`
   type `'e` :: 'etype-variable `'e`
   kind `*`) (lvariable `l`
   type `['e]` :: ['etype-variable `'e`
   kind `*`]) := (memberPconstant `Prelude.Collection.memberP`
   constant of type-class `Collection`
   type `EqP 'e => 'e -> 'c -> Prop`
   type in context `'e -> 'c -> Prop`
   non-executable
   same type-class instance evariable `e`
   type `'e` ((fromListconstant `Prelude.Collection.fromList`
   constant of type-class `Collection`
   type `['e] -> 'c`
   executable
   same type-class instance lvariable `l`
   type `['e]`)::'ctype-variable `'c`
   kind `*`) <=>constant `Prelude.Bool.(<=>)`
   constant
   type `Prop -> Prop -> Prop`
   non-executable List.elemPconstant `Prelude.List.elemP`
   constant
   type `EqP 'a => 'a -> ['a] -> Prop`
   type in context `'e -> ['e] -> Prop`
   non-executable evariable `e`
   type `'e` lvariable `l`
   type `['e]`)
end-class
declare emptyconstant `Prelude.Collection.empty`
   constant
   type `Collection 'c 'e => 'c`
   executable :: Collectiontype-class `Prelude.Collection.Collection`
   arguments: ('c :: *) ('e :: *)
   functional deps: 'c -> 'e
   super-class constraints:
     - Prelude.BasicClasses.Monoid 'c 'ctype-variable `'c`
   kind `*` 'etype-variable `'e`
   kind `*` => 'ctype-variable `'c`
   kind `*`
define emptyconstant `Prelude.Collection.empty`
   constant
   type `Collection 'c 'e => 'c`
   executable := memptyconstant `Prelude.BasicClasses.mempty`
   constant of type-class `Monoid`
   type `'a`
   type in context `'c`
   executable
   type-class instance from argument
{-# inline emptyconstant `Prelude.Collection.empty`
   constant
   type `Collection 'c 'e => 'c`
   executable #-}
declare unionconstant `Prelude.Collection.union`
   constant
   type `Collection 'c 'e => 'c -> 'c -> 'c`
   executable :: Collectiontype-class `Prelude.Collection.Collection`
   arguments: ('c :: *) ('e :: *)
   functional deps: 'c -> 'e
   super-class constraints:
     - Prelude.BasicClasses.Monoid 'c 'ctype-variable `'c`
   kind `*` 'etype-variable `'e`
   kind `*` => 'ctype-variable `'c`
   kind `*` -> 'ctype-variable `'c`
   kind `*` -> 'ctype-variable `'c`
   kind `*`
define unionconstant `Prelude.Collection.union`
   constant
   type `Collection 'c 'e => 'c -> 'c -> 'c`
   executable := (<>)constant `Prelude.BasicClasses.(<>)`
   constant of type-class `Semigroup`
   type `'a -> 'a -> 'a`
   type in context `'c -> 'c -> 'c`
   executable
   type-class instance from argument
{-# inline unionconstant `Prelude.Collection.union`
   constant
   type `Collection 'c 'e => 'c -> 'c -> 'c`
   executable #-}
{-# severity class-constr-unusedclass-constraint is not needed, since it is not used ignore #-}
declare imageconstant `Prelude.Collection.image`
   constant
   type `(!Functor 'C, Collection ('C 'e1) 'e1, Collection ('C 'e2) 'e2) => ('e1 -> 'e2) -> 'C 'e1 -> 'C 'e2`
   executable :: (!Functortype-class `Prelude.Functor.Functor`
   arguments: ('F :: * -> *)
   reserved var-names: 'a, 'b
   statically-resolved 'Ctype-variable `'C`
   kind `* -> *`, Collectiontype-class `Prelude.Collection.Collection`
   arguments: ('c :: *) ('e :: *)
   functional deps: 'c -> 'e
   super-class constraints:
     - Prelude.BasicClasses.Monoid 'c ('Ctype-variable `'C`
   kind `* -> *` 'e1type-variable `'e1`
   kind `*`) 'e1type-variable `'e1`
   kind `*`, Collectiontype-class `Prelude.Collection.Collection`
   arguments: ('c :: *) ('e :: *)
   functional deps: 'c -> 'e
   super-class constraints:
     - Prelude.BasicClasses.Monoid 'c ('Ctype-variable `'C`
   kind `* -> *` 'e2type-variable `'e2`
   kind `*`) 'e2type-variable `'e2`
   kind `*`) => ('e1type-variable `'e1`
   kind `*` -> 'e2type-variable `'e2`
   kind `*`) -> 'Ctype-variable `'C`
   kind `* -> *` 'e1type-variable `'e1`
   kind `*` -> 'Ctype-variable `'C`
   kind `* -> *` 'e2type-variable `'e2`
   kind `*`
define imageconstant `Prelude.Collection.image`
   constant
   type `(!Functor 'C, Collection ('C 'e1) 'e1, Collection ('C 'e2) 'e2) => ('e1 -> 'e2) -> 'C 'e1 -> 'C 'e2`
   executable := fmapconstant `Prelude.Functor.fmap`
   statically resolved constant of type-class `Functor`
   type `('a -> 'b) -> 'F 'a -> 'F 'b`
   type in context `('e1 -> 'e2) -> 'C 'e1 -> 'C 'e2`
   executable
   type-class instance from argument
{-# inline imageconstant `Prelude.Collection.image`
   constant
   type `(!Functor 'C, Collection ('C 'e1) 'e1, Collection ('C 'e2) 'e2) => ('e1 -> 'e2) -> 'C 'e1 -> 'C 'e2`
   executable #-}
{-# severity class-constr-unusedclass-constraint is not needed, since it is not used reset #-}
class Collectiontype-class `Prelude.Collection.Collection`
   arguments: ('c :: *) ('e :: *)
   functional deps: 'c -> 'e
   super-class constraints:
     - Prelude.BasicClasses.Monoid 'c 'ctype-variable `'c`
   kind `*` 'etype-variable `'e`
   kind `*` => CollectionWithEmptynessTest 'ctype-variable `'c`
   kind `*` 'etype-variable `'e`
   kind `*` | 'c -> 'e where
  declare isEmptyconstant `Prelude.Collection.isEmpty`
   constant of type-class `CollectionWithEmptynessTest`
   type `'c -> Bool`
   executable :: 'ctype-variable `'c`
   kind `*` -> Booldatatype `Prelude.Bool.Bool`
   kind `*`
   executable
  property isEmptyP_eq_isEmptyconstant `Prelude.Collection.isEmptyP_eq_isEmpty`
   type-class property
   type `'c -> Prop`
   non-executable (cvariable `c`
   type `'c` :: 'ctype-variable `'c`
   kind `*`) := (isEmptyPconstant `Prelude.Collection.isEmptyP`
   constant of type-class `Collection`
   type `'c -> Prop`
   non-executable
   type-class instance from context cvariable `c`
   type `'c` <=>constant `Prelude.Bool.(<=>)`
   constant
   type `Prop -> Prop -> Prop`
   non-executable (isEmptyconstant `Prelude.Collection.isEmpty`
   constant of type-class `CollectionWithEmptynessTest`
   type `'c -> Bool`
   executable
   same type-class instance cvariable `c`
   type `'c` ===constant `Prelude.Eq.(===)`
   constant of type-class `EqP`
   type `'a -> 'a -> Prop`
   type in context `Bool -> Bool -> Prop`
   non-executable
   statically resolved type-class instance Trueconstant `Prelude.Bool.True`
   constructor of datatype `Bool`
   type `Bool`
   executable))
end-class
class Collectiontype-class `Prelude.Collection.Collection`
   arguments: ('c :: *) ('e :: *)
   functional deps: 'c -> 'e
   super-class constraints:
     - Prelude.BasicClasses.Monoid 'c 'ctype-variable `'c`
   kind `*` 'etype-variable `'e`
   kind `*` => CollectionWithMembershipTest 'ctype-variable `'c`
   kind `*` 'etype-variable `'e`
   kind `*` | 'c -> 'e where
  declare occurconstant `Prelude.Collection.occur`
   constant of type-class `CollectionWithMembershipTest`
   type `Eq 'e => 'e -> 'c -> Natural`
   executable :: Eqtype-class `Prelude.Eq.Eq`
   arguments: ('a :: *)
   super-class constraints:
     - Prelude.Eq.EqP 'a
   has default derive templates 'etype-variable `'e`
   kind `*` => 'etype-variable `'e`
   kind `*` -> 'ctype-variable `'c`
   kind `*` -> Naturaldatatype `Prelude.Num.Natural`
   kind `*`
   executable
  declare memberconstant `Prelude.Collection.member`
   constant of type-class `CollectionWithMembershipTest`
   type `Eq 'e => 'e -> 'c -> Bool`
   executable :: Eqtype-class `Prelude.Eq.Eq`
   arguments: ('a :: *)
   super-class constraints:
     - Prelude.Eq.EqP 'a
   has default derive templates 'etype-variable `'e`
   kind `*` => 'etype-variable `'e`
   kind `*` -> 'ctype-variable `'c`
   kind `*` -> Booldatatype `Prelude.Bool.Bool`
   kind `*`
   executable
  define memberconstant `Prelude.Collection.member`
   default instance of type-class constant
   type `Eq 'e => ('e -> 'c -> Natural) -> 'e -> 'c -> Bool`
   executable evariable `e`
   type `'e` cvariable `c`
   type `'c` := (occurconstant `Prelude.Collection.occur`
   constant of type-class `CollectionWithMembershipTest`
   type `Eq 'e => 'e -> 'c -> Natural`
   type in context `'e -> 'c -> Natural`
   executable
   same type-class instance evariable `e`
   type `'e` cvariable `c`
   type `'c` >constant `Prelude.Ord.(>)`
   constant of type-class `Ord`
   type `'a -> 'a -> Bool`
   type in context `Natural -> Natural -> Bool`
   executable
   statically resolved type-class instance 0natural number literal
   type `Natural`
   decimal value: 0
   hexadecimal value: 0x0
   octal value: 0o0
   binary value: 0b0)
  test Eqtype-class `Prelude.Eq.Eq`
   arguments: ('a :: *)
   super-class constraints:
     - Prelude.Eq.EqP 'a
   has default derive templates 'etype-variable `'e`
   kind `*` => occur_insert_1constant `Prelude.Collection.occur_insert_1`
   type-class test
   type `Eq 'e => 'e -> 'c -> Bool`
   executable (evariable `e`
   type `'e` :: 'etype-variable `'e`
   kind `*`) (cvariable `c`
   type `'c` :: 'ctype-variable `'c`
   kind `*`) :=
                   (occurconstant `Prelude.Collection.occur`
   constant of type-class `CollectionWithMembershipTest`
   type `Eq 'e => 'e -> 'c -> Natural`
   type in context `'e -> 'c -> Natural`
   executable
   same type-class instance evariable `e`
   type `'e` (insertconstant `Prelude.Collection.insert`
   constant of type-class `Collection`
   type `'e -> 'c -> 'c`
   executable
   type-class instance from context evariable `e`
   type `'e` cvariable `c`
   type `'c`) ==constant `Prelude.Eq.(==)`
   constant of type-class `Eq`
   type `'a -> 'a -> Bool`
   type in context `Natural -> Natural -> Bool`
   executable
   statically resolved type-class instance occurconstant `Prelude.Collection.occur`
   constant of type-class `CollectionWithMembershipTest`
   type `Eq 'e => 'e -> 'c -> Natural`
   type in context `'e -> 'c -> Natural`
   executable
   same type-class instance evariable `e`
   type `'e` cvariable `c`
   type `'c` +constant `Prelude.Num.(+)`
   constant of type-class `NumPlus`
   type `'a -> 'a -> 'a`
   type in context `Natural -> Natural -> Natural`
   executable
   statically resolved type-class instance 1natural number literal
   type `Natural`
   decimal value: 1
   hexadecimal value: 0x1
   octal value: 0o1
   binary value: 0b1) ||constant `Prelude.Bool.(||)`
   constant
   type `Bool -> Bool -> Bool`
   executable
                   ((occurconstant `Prelude.Collection.occur`
   constant of type-class `CollectionWithMembershipTest`
   type `Eq 'e => 'e -> 'c -> Natural`
   type in context `'e -> 'c -> Natural`
   executable
   same type-class instance evariable `e`
   type `'e` (insertconstant `Prelude.Collection.insert`
   constant of type-class `Collection`
   type `'e -> 'c -> 'c`
   executable
   type-class instance from context evariable `e`
   type `'e` cvariable `c`
   type `'c`) ==constant `Prelude.Eq.(==)`
   constant of type-class `Eq`
   type `'a -> 'a -> Bool`
   type in context `Natural -> Natural -> Bool`
   executable
   statically resolved type-class instance 1natural number literal
   type `Natural`
   decimal value: 1
   hexadecimal value: 0x1
   octal value: 0o1
   binary value: 0b1) &&constant `Prelude.Bool.(&&)`
   constant
   type `Bool -> Bool -> Bool`
   executable (occurconstant `Prelude.Collection.occur`
   constant of type-class `CollectionWithMembershipTest`
   type `Eq 'e => 'e -> 'c -> Natural`
   type in context `'e -> 'c -> Natural`
   executable
   same type-class instance evariable `e`
   type `'e` cvariable `c`
   type `'c` ==constant `Prelude.Eq.(==)`
   constant of type-class `Eq`
   type `'a -> 'a -> Bool`
   type in context `Natural -> Natural -> Bool`
   executable
   statically resolved type-class instance 1natural number literal
   type `Natural`
   decimal value: 1
   hexadecimal value: 0x1
   octal value: 0o1
   binary value: 0b1))
  test Eqtype-class `Prelude.Eq.Eq`
   arguments: ('a :: *)
   super-class constraints:
     - Prelude.Eq.EqP 'a
   has default derive templates 'etype-variable `'e`
   kind `*` => occur_insert_2constant `Prelude.Collection.occur_insert_2`
   type-class test
   type `Eq 'e => 'e -> 'e -> 'c -> Bool`
   executable (e1variable `e1`
   type `'e` :: 'etype-variable `'e`
   kind `*`) (e2variable `e2`
   type `'e` :: 'etype-variable `'e`
   kind `*`) (cvariable `c`
   type `'c` :: 'ctype-variable `'c`
   kind `*`) :=
                   (e1variable `e1`
   type `'e` /=constant `Prelude.Eq.(/=)`
   constant of type-class `Eq`
   type `'a -> 'a -> Bool`
   type in context `'e -> 'e -> Bool`
   executable
   type-class instance from argument e2variable `e2`
   type `'e`) -->constant `Prelude.Bool.(-->)`
   constant
   type `Bool -> Bool -> Bool`
   executable
                   ((occurconstant `Prelude.Collection.occur`
   constant of type-class `CollectionWithMembershipTest`
   type `Eq 'e => 'e -> 'c -> Natural`
   type in context `'e -> 'c -> Natural`
   executable
   same type-class instance e1variable `e1`
   type `'e` (insertconstant `Prelude.Collection.insert`
   constant of type-class `Collection`
   type `'e -> 'c -> 'c`
   executable
   type-class instance from context e2variable `e2`
   type `'e` cvariable `c`
   type `'c`) ==constant `Prelude.Eq.(==)`
   constant of type-class `Eq`
   type `'a -> 'a -> Bool`
   type in context `Natural -> Natural -> Bool`
   executable
   statically resolved type-class instance occurconstant `Prelude.Collection.occur`
   constant of type-class `CollectionWithMembershipTest`
   type `Eq 'e => 'e -> 'c -> Natural`
   type in context `'e -> 'c -> Natural`
   executable
   same type-class instance e1variable `e1`
   type `'e` cvariable `c`
   type `'c`))
  property Eqtype-class `Prelude.Eq.Eq`
   arguments: ('a :: *)
   super-class constraints:
     - Prelude.Eq.EqP 'a
   has default derive templates 'etype-variable `'e`
   kind `*` => memberP_memberconstant `Prelude.Collection.memberP_member`
   type-class property
   type `Eq 'e => 'e -> 'c -> Prop`
   non-executable (evariable `e`
   type `'e` :: 'etype-variable `'e`
   kind `*`) (cvariable `c`
   type `'c` :: 'ctype-variable `'c`
   kind `*`) :=
    (memberPconstant `Prelude.Collection.memberP`
   constant of type-class `Collection`
   type `EqP 'e => 'e -> 'c -> Prop`
   type in context `'e -> 'c -> Prop`
   non-executable
   type-class instance from context evariable `e`
   type `'e` cvariable `c`
   type `'c` <=>constant `Prelude.Bool.(<=>)`
   constant
   type `Prop -> Prop -> Prop`
   non-executable (memberconstant `Prelude.Collection.member`
   constant of type-class `CollectionWithMembershipTest`
   type `Eq 'e => 'e -> 'c -> Bool`
   type in context `'e -> 'c -> Bool`
   executable
   same type-class instance evariable `e`
   type `'e` cvariable `c`
   type `'c` ===constant `Prelude.Eq.(===)`
   constant of type-class `EqP`
   type `'a -> 'a -> Prop`
   type in context `Bool -> Bool -> Prop`
   non-executable
   statically resolved type-class instance Trueconstant `Prelude.Bool.True`
   constructor of datatype `Bool`
   type `Bool`
   executable))
end-class
class (Eqtype-class `Prelude.Eq.Eq`
   arguments: ('a :: *)
   super-class constraints:
     - Prelude.Eq.EqP 'a
   has default derive templates 'etype-variable `'e`
   kind `*`, CollectionWithMembershipTesttype-class `Prelude.Collection.CollectionWithMembershipTest`
   arguments: ('c :: *) ('e :: *)
   functional deps: 'c -> 'e
   super-class constraints:
     - Prelude.Collection.Collection 'c 'e 'ctype-variable `'c`
   kind `*` 'etype-variable `'e`
   kind `*`) => CollectionWithDelete 'ctype-variable `'c`
   kind `*` 'etype-variable `'e`
   kind `*` | 'c -> 'e where
  
  declare deleteconstant `Prelude.Collection.delete`
   constant of type-class `CollectionWithDelete`
   type `'e -> 'c -> 'c`
   executable :: 'etype-variable `'e`
   kind `*` -> 'ctype-variable `'c`
   kind `*` -> 'ctype-variable `'c`
   kind `*`
  
  declare filterconstant `Prelude.Collection.filter`
   constant of type-class `CollectionWithDelete`
   type `('e -> Bool) -> 'c -> 'c`
   executable :: ('etype-variable `'e`
   kind `*` -> Booldatatype `Prelude.Bool.Bool`
   kind `*`
   executable) -> 'ctype-variable `'c`
   kind `*` -> 'ctype-variable `'c`
   kind `*`
  define filterconstant `Prelude.Collection.filter`
   default instance of type-class constant
   type `(('e -> Bool) -> 'c -> ('c, 'c)) -> ('e -> Bool) -> 'c -> 'c`
   executable pvariable `p`
   type `'e -> Bool` svariable `s`
   type `'c` := fstconstant `Prelude.Tuple.fst`
   constant
   type `('a, 'b) -> 'a`
   type in context `('c, 'c) -> 'c`
   executable (partitionconstant `Prelude.Collection.partition`
   constant of type-class `CollectionWithDelete`
   type `('e -> Bool) -> 'c -> ('c, 'c)`
   executable
   same type-class instance pvariable `p`
   type `'e -> Bool` svariable `s`
   type `'c`)
  declare differenceconstant `Prelude.Collection.difference`
   constant of type-class `CollectionWithDelete`
   type `'c -> 'c -> 'c`
   executable :: 'ctype-variable `'c`
   kind `*` -> 'ctype-variable `'c`
   kind `*` -> 'ctype-variable `'c`
   kind `*`
  declare intersectionconstant `Prelude.Collection.intersection`
   constant of type-class `CollectionWithDelete`
   type `'c -> 'c -> 'c`
   executable :: 'ctype-variable `'c`
   kind `*` -> 'ctype-variable `'c`
   kind `*` -> 'ctype-variable `'c`
   kind `*`
  
  declare partitionconstant `Prelude.Collection.partition`
   constant of type-class `CollectionWithDelete`
   type `('e -> Bool) -> 'c -> ('c, 'c)`
   executable :: ('etype-variable `'e`
   kind `*` -> Booldatatype `Prelude.Bool.Bool`
   kind `*`
   executable) -> 'ctype-variable `'c`
   kind `*` -> ('ctype-variable `'c`
   kind `*`, 'ctype-variable `'c`
   kind `*`)
  define partitionconstant `Prelude.Collection.partition`
   default instance of type-class constant
   type `(('e -> Bool) -> 'c -> 'c) -> ('e -> Bool) -> 'c -> ('c, 'c)`
   executable pvariable `p`
   type `'e -> Bool` svariable `s`
   type `'c` := (filterconstant `Prelude.Collection.filter`
   constant of type-class `CollectionWithDelete`
   type `('e -> Bool) -> 'c -> 'c`
   executable
   same type-class instance pvariable `p`
   type `'e -> Bool` svariable `s`
   type `'c`, filterconstant `Prelude.Collection.filter`
   constant of type-class `CollectionWithDelete`
   type `('e -> Bool) -> 'c -> 'c`
   executable
   same type-class instance (notconstant `Prelude.Bool.not`
   constant
   type `Bool -> Bool`
   executable .constant `Prelude.Function.(.)`
   constant of type-class `Dot`
   type `'a -> 'b -> 'c`
   type in context `(Bool -> Bool) -> ('e -> Bool) -> 'e -> Bool`
   executable
   statically resolved type-class instance pvariable `p`
   type `'e -> Bool`) svariable `s`
   type `'c`)
  test member_filterconstant `Prelude.Collection.member_filter`
   type-class test
   type `'e -> 'c -> ('e -> Bool) -> Bool`
   executable (evariable `e`
   type `'e` :: 'etype-variable `'e`
   kind `*`) (cvariable `c`
   type `'c` :: 'ctype-variable `'c`
   kind `*`) pvariable `p`
   type `'e -> Bool` :=
    memberconstant `Prelude.Collection.member`
   constant of type-class `CollectionWithMembershipTest`
   type `Eq 'e => 'e -> 'c -> Bool`
   type in context `'e -> 'c -> Bool`
   executable
   type-class instance from context evariable `e`
   type `'e` (filterconstant `Prelude.Collection.filter`
   constant of type-class `CollectionWithDelete`
   type `('e -> Bool) -> 'c -> 'c`
   executable
   same type-class instance pvariable `p`
   type `'e -> Bool` cvariable `c`
   type `'c`) <->constant `Prelude.Bool.(<->)`
   constant
   type `Bool -> Bool -> Bool`
   executable (memberconstant `Prelude.Collection.member`
   constant of type-class `CollectionWithMembershipTest`
   type `Eq 'e => 'e -> 'c -> Bool`
   type in context `'e -> 'c -> Bool`
   executable
   type-class instance from context evariable `e`
   type `'e` cvariable `c`
   type `'c` &&constant `Prelude.Bool.(&&)`
   constant
   type `Bool -> Bool -> Bool`
   executable pvariable `p`
   type `'e -> Bool` evariable `e`
   type `'e`)
  test occur_filterconstant `Prelude.Collection.occur_filter`
   type-class test
   type `'e -> 'c -> ('e -> Bool) -> Bool`
   executable (evariable `e`
   type `'e` :: 'etype-variable `'e`
   kind `*`) (cvariable `c`
   type `'c` :: 'ctype-variable `'c`
   kind `*`) pvariable `p`
   type `'e -> Bool` :=
    occurconstant `Prelude.Collection.occur`
   constant of type-class `CollectionWithMembershipTest`
   type `Eq 'e => 'e -> 'c -> Natural`
   type in context `'e -> 'c -> Natural`
   executable
   type-class instance from context evariable `e`
   type `'e` (filterconstant `Prelude.Collection.filter`
   constant of type-class `CollectionWithDelete`
   type `('e -> Bool) -> 'c -> 'c`
   executable
   same type-class instance pvariable `p`
   type `'e -> Bool` cvariable `c`
   type `'c`) ==constant `Prelude.Eq.(==)`
   constant of type-class `Eq`
   type `'a -> 'a -> Bool`
   type in context `Natural -> Natural -> Bool`
   executable
   statically resolved type-class instance (if pvariable `p`
   type `'e -> Bool` evariable `e`
   type `'e` then occurconstant `Prelude.Collection.occur`
   constant of type-class `CollectionWithMembershipTest`
   type `Eq 'e => 'e -> 'c -> Natural`
   type in context `'e -> 'c -> Natural`
   executable
   type-class instance from context evariable `e`
   type `'e` cvariable `c`
   type `'c` else 0natural number literal
   type `Natural`
   decimal value: 0
   hexadecimal value: 0x0
   octal value: 0o0
   binary value: 0b0)
  test occur_deleteconstant `Prelude.Collection.occur_delete`
   type-class test
   type `'e -> 'c -> Bool`
   executable (evariable `e`
   type `'e` :: 'etype-variable `'e`
   kind `*`) (cvariable `c`
   type `'c` :: 'ctype-variable `'c`
   kind `*`) :=
    occurconstant `Prelude.Collection.occur`
   constant of type-class `CollectionWithMembershipTest`
   type `Eq 'e => 'e -> 'c -> Natural`
   type in context `'e -> 'c -> Natural`
   executable
   type-class instance from context evariable `e`
   type `'e` (deleteconstant `Prelude.Collection.delete`
   constant of type-class `CollectionWithDelete`
   type `'e -> 'c -> 'c`
   executable
   same type-class instance evariable `e`
   type `'e` cvariable `c`
   type `'c`) ==constant `Prelude.Eq.(==)`
   constant of type-class `Eq`
   type `'a -> 'a -> Bool`
   type in context `Natural -> Natural -> Bool`
   executable
   statically resolved type-class instance maxconstant `Prelude.Ord.max`
   constant of type-class `Ord`
   type `'a -> 'a -> 'a`
   type in context `Natural -> Natural -> Natural`
   executable
   statically resolved type-class instance 0natural number literal
   type `Natural`
   decimal value: 0
   hexadecimal value: 0x0
   octal value: 0o0
   binary value: 0b0 (occurconstant `Prelude.Collection.occur`
   constant of type-class `CollectionWithMembershipTest`
   type `Eq 'e => 'e -> 'c -> Natural`
   type in context `'e -> 'c -> Natural`
   executable
   type-class instance from context evariable `e`
   type `'e` cvariable `c`
   type `'c` -constant `Prelude.Num.(-)`
   constant of type-class `NumMinus`
   type `'a -> 'a -> 'a`
   type in context `Natural -> Natural -> Natural`
   executable
   statically resolved type-class instance 1natural number literal
   type `Natural`
   decimal value: 1
   hexadecimal value: 0x1
   octal value: 0o1
   binary value: 0b1)
  test member_deleteconstant `Prelude.Collection.member_delete`
   type-class test
   type `'e -> 'e -> 'c -> Bool`
   executable (e1variable `e1`
   type `'e` :: 'etype-variable `'e`
   kind `*`) (e2variable `e2`
   type `'e` :: 'etype-variable `'e`
   kind `*`) (cvariable `c`
   type `'c` :: 'ctype-variable `'c`
   kind `*`) :=
    (e1variable `e1`
   type `'e` /=constant `Prelude.Eq.(/=)`
   constant of type-class `Eq`
   type `'a -> 'a -> Bool`
   type in context `'e -> 'e -> Bool`
   executable
   type-class instance from context e2variable `e2`
   type `'e`) -->constant `Prelude.Bool.(-->)`
   constant
   type `Bool -> Bool -> Bool`
   executable (occurconstant `Prelude.Collection.occur`
   constant of type-class `CollectionWithMembershipTest`
   type `Eq 'e => 'e -> 'c -> Natural`
   type in context `'e -> 'c -> Natural`
   executable
   type-class instance from context e1variable `e1`
   type `'e` (deleteconstant `Prelude.Collection.delete`
   constant of type-class `CollectionWithDelete`
   type `'e -> 'c -> 'c`
   executable
   same type-class instance e2variable `e2`
   type `'e` cvariable `c`
   type `'c`) ==constant `Prelude.Eq.(==)`
   constant of type-class `Eq`
   type `'a -> 'a -> Bool`
   type in context `Natural -> Natural -> Bool`
   executable
   statically resolved type-class instance occurconstant `Prelude.Collection.occur`
   constant of type-class `CollectionWithMembershipTest`
   type `Eq 'e => 'e -> 'c -> Natural`
   type in context `'e -> 'c -> Natural`
   executable
   type-class instance from context e1variable `e1`
   type `'e` cvariable `c`
   type `'c`)
  test intersection_okconstant `Prelude.Collection.intersection_ok`
   type-class test
   type `'e -> 'c -> 'c -> Bool`
   executable (evariable `e`
   type `'e` :: 'etype-variable `'e`
   kind `*`) (c1variable `c1`
   type `'c` :: 'ctype-variable `'c`
   kind `*`) (c2variable `c2`
   type `'c` :: 'ctype-variable `'c`
   kind `*`) :=
    occurconstant `Prelude.Collection.occur`
   constant of type-class `CollectionWithMembershipTest`
   type `Eq 'e => 'e -> 'c -> Natural`
   type in context `'e -> 'c -> Natural`
   executable
   type-class instance from context evariable `e`
   type `'e` (intersectionconstant `Prelude.Collection.intersection`
   constant of type-class `CollectionWithDelete`
   type `'c -> 'c -> 'c`
   executable
   same type-class instance c1variable `c1`
   type `'c` c2variable `c2`
   type `'c`) ==constant `Prelude.Eq.(==)`
   constant of type-class `Eq`
   type `'a -> 'a -> Bool`
   type in context `Natural -> Natural -> Bool`
   executable
   statically resolved type-class instance minconstant `Prelude.Ord.min`
   constant of type-class `Ord`
   type `'a -> 'a -> 'a`
   type in context `Natural -> Natural -> Natural`
   executable
   statically resolved type-class instance (occurconstant `Prelude.Collection.occur`
   constant of type-class `CollectionWithMembershipTest`
   type `Eq 'e => 'e -> 'c -> Natural`
   type in context `'e -> 'c -> Natural`
   executable
   type-class instance from context evariable `e`
   type `'e` c1variable `c1`
   type `'c`) (occurconstant `Prelude.Collection.occur`
   constant of type-class `CollectionWithMembershipTest`
   type `Eq 'e => 'e -> 'c -> Natural`
   type in context `'e -> 'c -> Natural`
   executable
   type-class instance from context evariable `e`
   type `'e` c2variable `c2`
   type `'c`)
  test difference_okconstant `Prelude.Collection.difference_ok`
   type-class test
   type `'e -> 'c -> 'c -> Bool`
   executable (evariable `e`
   type `'e` :: 'etype-variable `'e`
   kind `*`) (c1variable `c1`
   type `'c` :: 'ctype-variable `'c`
   kind `*`) (c2variable `c2`
   type `'c` :: 'ctype-variable `'c`
   kind `*`) :=
    occurconstant `Prelude.Collection.occur`
   constant of type-class `CollectionWithMembershipTest`
   type `Eq 'e => 'e -> 'c -> Natural`
   type in context `'e -> 'c -> Natural`
   executable
   type-class instance from context evariable `e`
   type `'e` (differenceconstant `Prelude.Collection.difference`
   constant of type-class `CollectionWithDelete`
   type `'c -> 'c -> 'c`
   executable
   same type-class instance c1variable `c1`
   type `'c` c2variable `c2`
   type `'c`) ==constant `Prelude.Eq.(==)`
   constant of type-class `Eq`
   type `'a -> 'a -> Bool`
   type in context `Natural -> Natural -> Bool`
   executable
   statically resolved type-class instance maxconstant `Prelude.Ord.max`
   constant of type-class `Ord`
   type `'a -> 'a -> 'a`
   type in context `Natural -> Natural -> Natural`
   executable
   statically resolved type-class instance 0natural number literal
   type `Natural`
   decimal value: 0
   hexadecimal value: 0x0
   octal value: 0o0
   binary value: 0b0 (occurconstant `Prelude.Collection.occur`
   constant of type-class `CollectionWithMembershipTest`
   type `Eq 'e => 'e -> 'c -> Natural`
   type in context `'e -> 'c -> Natural`
   executable
   type-class instance from context evariable `e`
   type `'e` c1variable `c1`
   type `'c` -constant `Prelude.Num.(-)`
   constant of type-class `NumMinus`
   type `'a -> 'a -> 'a`
   type in context `Natural -> Natural -> Natural`
   executable
   statically resolved type-class instance occurconstant `Prelude.Collection.occur`
   constant of type-class `CollectionWithMembershipTest`
   type `Eq 'e => 'e -> 'c -> Natural`
   type in context `'e -> 'c -> Natural`
   executable
   type-class instance from context evariable `e`
   type `'e` c2variable `c2`
   type `'c`)
end-class
class (CollectionWithMembershipTesttype-class `Prelude.Collection.CollectionWithMembershipTest`
   arguments: ('c :: *) ('e :: *)
   functional deps: 'c -> 'e
   super-class constraints:
     - Prelude.Collection.Collection 'c 'e 'ctype-variable `'c`
   kind `*` 'etype-variable `'e`
   kind `*`, CollectionWithEmptynessTesttype-class `Prelude.Collection.CollectionWithEmptynessTest`
   arguments: ('c :: *) ('e :: *)
   functional deps: 'c -> 'e
   super-class constraints:
     - Prelude.Collection.Collection 'c 'e 'ctype-variable `'c`
   kind `*` 'etype-variable `'e`
   kind `*`, Foldabletype-class `Prelude.Foldable.Foldable`
   arguments: ('t :: *) ('e :: *)
   functional deps: 't -> 'e
   reserved var-names: 'acc 'ctype-variable `'c`
   kind `*` 'etype-variable `'e`
   kind `*`) => FiniteCollection 'ctype-variable `'c`
   kind `*` 'etype-variable `'e`
   kind `*` | 'c -> 'e where
  test empty_sizeconstant `Prelude.Collection.empty_size`
   type-class test
   type `Bool`
   executable := (sizeconstant `Prelude.Foldable.size`
   constant of type-class `Foldable`
   type `'t -> Natural`
   type in context `'c -> Natural`
   executable
   type-class instance from context (emptyconstant `Prelude.Collection.empty`
   constant
   type `Collection 'c 'e => 'c`
   type in context `'c`
   executable :: 'ctype-variable `'c`
   kind `*`) ==constant `Prelude.Eq.(==)`
   constant of type-class `Eq`
   type `'a -> 'a -> Bool`
   type in context `Natural -> Natural -> Bool`
   executable
   statically resolved type-class instance 0natural number literal
   type `Natural`
   decimal value: 0
   hexadecimal value: 0x0
   octal value: 0o0
   binary value: 0b0)
  test null_okconstant `Prelude.Collection.null_ok`
   type-class test
   type `'c -> Bool`
   executable (cvariable `c`
   type `'c` :: 'ctype-variable `'c`
   kind `*`) := (isEmptyconstant `Prelude.Collection.isEmpty`
   constant of type-class `CollectionWithEmptynessTest`
   type `'c -> Bool`
   executable
   type-class instance from context cvariable `c`
   type `'c` <->constant `Prelude.Bool.(<->)`
   constant
   type `Bool -> Bool -> Bool`
   executable nullconstant `Prelude.Foldable.null`
   constant of type-class `Foldable`
   type `'t -> Bool`
   type in context `'c -> Bool`
   executable
   type-class instance from context cvariable `c`
   type `'c`)
  test size_fromToListconstant `Prelude.Collection.size_fromToList`
   type-class test
   type `'c -> Bool`
   executable (cvariable `c`
   type `'c` :: 'ctype-variable `'c`
   kind `*`) := sizeconstant `Prelude.Foldable.size`
   constant of type-class `Foldable`
   type `'t -> Natural`
   type in context `'c -> Natural`
   executable
   type-class instance from context ((fromListconstant `Prelude.Collection.fromList`
   constant of type-class `Collection`
   type `['e] -> 'c`
   executable
   type-class instance from context ((toListconstant `Prelude.Foldable.toList`
   constant of type-class `Foldable`
   type `'t -> ['e]`
   type in context `'c -> ['e]`
   executable
   type-class instance from context cvariable `c`
   type `'c`) :: ['etype-variable `'e`
   kind `*`])) :: 'ctype-variable `'c`
   kind `*`) ==constant `Prelude.Eq.(==)`
   constant of type-class `Eq`
   type `'a -> 'a -> Bool`
   type in context `Natural -> Natural -> Bool`
   executable
   statically resolved type-class instance sizeconstant `Prelude.Foldable.size`
   constant of type-class `Foldable`
   type `'t -> Natural`
   type in context `'c -> Natural`
   executable
   type-class instance from context cvariable `c`
   type `'c`
  test size_toFromListconstant `Prelude.Collection.size_toFromList`
   type-class test
   type `['e] -> Bool`
   executable (lvariable `l`
   type `['e]` :: ['etype-variable `'e`
   kind `*`]) := sizeconstant `Prelude.Foldable.size`
   constant of type-class `Foldable`
   type `'t -> Natural`
   type in context `'c -> Natural`
   executable
   type-class instance from context ((fromListconstant `Prelude.Collection.fromList`
   constant of type-class `Collection`
   type `['e] -> 'c`
   executable
   type-class instance from context lvariable `l`
   type `['e]`) :: 'ctype-variable `'c`
   kind `*`) <=constant `Prelude.Ord.(<=)`
   constant of type-class `Ord`
   type `'a -> 'a -> Bool`
   type in context `Natural -> Natural -> Bool`
   executable
   statically resolved type-class instance List.lengthconstant `Prelude.List.length`
   constant
   type `['a] -> Natural`
   type in context `['e] -> Natural`
   executable lvariable `l`
   type `['e]`
  test Eqtype-class `Prelude.Eq.Eq`
   arguments: ('a :: *)
   super-class constraints:
     - Prelude.Eq.EqP 'a
   has default derive templates 'etype-variable `'e`
   kind `*` => elem_okconstant `Prelude.Collection.elem_ok`
   type-class test
   type `Eq 'e => 'e -> 'c -> Bool`
   executable (evariable `e`
   type `'e` :: 'etype-variable `'e`
   kind `*`) (cvariable `c`
   type `'c` :: 'ctype-variable `'c`
   kind `*`) := memberconstant `Prelude.Collection.member`
   constant of type-class `CollectionWithMembershipTest`
   type `Eq 'e => 'e -> 'c -> Bool`
   type in context `'e -> 'c -> Bool`
   executable
   type-class instance from context evariable `e`
   type `'e` cvariable `c`
   type `'c` <->constant `Prelude.Bool.(<->)`
   constant
   type `Bool -> Bool -> Bool`
   executable elemconstant `Prelude.Foldable.elem`
   constant of type-class `Foldable`
   type `Eq 'e => 'e -> 't -> Bool`
   type in context `'e -> 'c -> Bool`
   executable
   type-class instance from context evariable `e`
   type `'e` cvariable `c`
   type `'c`
  property EqPtype-class `Prelude.Eq.EqP`
   arguments: ('a :: *)
   has default derive templates
   derive-template labels
     - eq (only deriving)
     - full 'etype-variable `'e`
   kind `*` => memberP_toListconstant `Prelude.Collection.memberP_toList`
   type-class property
   type `EqP 'e => 'e -> 'c -> Prop`
   non-executable (evariable `e`
   type `'e` :: 'etype-variable `'e`
   kind `*`) (cvariable `c`
   type `'c` :: 'ctype-variable `'c`
   kind `*`) :=
    (List.elemPconstant `Prelude.List.elemP`
   constant
   type `EqP 'a => 'a -> ['a] -> Prop`
   type in context `'e -> ['e] -> Prop`
   non-executable evariable `e`
   type `'e` (toListconstant `Prelude.Foldable.toList`
   constant of type-class `Foldable`
   type `'t -> ['e]`
   type in context `'c -> ['e]`
   executable
   type-class instance from context (cvariable `c`
   type `'c`::'ctype-variable `'c`
   kind `*`)) <=>constant `Prelude.Bool.(<=>)`
   constant
   type `Prop -> Prop -> Prop`
   non-executable memberPconstant `Prelude.Collection.memberP`
   constant of type-class `Collection`
   type `EqP 'e => 'e -> 'c -> Prop`
   type in context `'e -> 'c -> Prop`
   non-executable
   type-class instance from context evariable `e`
   type `'e` cvariable `c`
   type `'c`)
  test Eqtype-class `Prelude.Eq.Eq`
   arguments: ('a :: *)
   super-class constraints:
     - Prelude.Eq.EqP 'a
   has default derive templates 'etype-variable `'e`
   kind `*` => member_elemconstant `Prelude.Collection.member_elem`
   type-class test
   type `Eq 'e => 'e -> 'c -> Bool`
   executable (evariable `e`
   type `'e` :: 'etype-variable `'e`
   kind `*`) (cvariable `c`
   type `'c` :: 'ctype-variable `'c`
   kind `*`) := (elemconstant `Prelude.Foldable.elem`
   constant of type-class `Foldable`
   type `Eq 'e => 'e -> 't -> Bool`
   type in context `'e -> 'c -> Bool`
   executable
   type-class instance from context evariable `e`
   type `'e` cvariable `c`
   type `'c` <->constant `Prelude.Bool.(<->)`
   constant
   type `Bool -> Bool -> Bool`
   executable memberconstant `Prelude.Collection.member`
   constant of type-class `CollectionWithMembershipTest`
   type `Eq 'e => 'e -> 'c -> Bool`
   type in context `'e -> 'c -> Bool`
   executable
   type-class instance from context evariable `e`
   type `'e` cvariable `c`
   type `'c`)
end-class
class (CollectionWithDeletetype-class `Prelude.Collection.CollectionWithDelete`
   arguments: ('c :: *) ('e :: *)
   functional deps: 'c -> 'e
   super-class constraints:
     - Prelude.Eq.Eq 'e
     - Prelude.Collection.CollectionWithMembershipTest 'c 'e 'ctype-variable `'c`
   kind `*` 'etype-variable `'e`
   kind `*`, CollectionWithEmptynessTesttype-class `Prelude.Collection.CollectionWithEmptynessTest`
   arguments: ('c :: *) ('e :: *)
   functional deps: 'c -> 'e
   super-class constraints:
     - Prelude.Collection.Collection 'c 'e 'ctype-variable `'c`
   kind `*` 'etype-variable `'e`
   kind `*`) => CollectionWithSubsetTest 'ctype-variable `'c`
   kind `*` 'etype-variable `'e`
   kind `*` | 'c -> 'e where
  declare disjointconstant `Prelude.Collection.disjoint`
   constant of type-class `CollectionWithSubsetTest`
   type `'c -> 'c -> Bool`
   executable :: 'ctype-variable `'c`
   kind `*` -> 'ctype-variable `'c`
   kind `*` -> Booldatatype `Prelude.Bool.Bool`
   kind `*`
   executable
  declare isSubsetOfconstant `Prelude.Collection.isSubsetOf`
   constant of type-class `CollectionWithSubsetTest`
   type `'c -> 'c -> Bool`
   executable :: 'ctype-variable `'c`
   kind `*` -> 'ctype-variable `'c`
   kind `*` -> Booldatatype `Prelude.Bool.Bool`
   kind `*`
   executable
  declare isProperSubsetOfconstant `Prelude.Collection.isProperSubsetOf`
   constant of type-class `CollectionWithSubsetTest`
   type `'c -> 'c -> Bool`
   executable :: 'ctype-variable `'c`
   kind `*` -> 'ctype-variable `'c`
   kind `*` -> Booldatatype `Prelude.Bool.Bool`
   kind `*`
   executable
  declare isSetEquivconstant `Prelude.Collection.isSetEquiv`
   constant of type-class `CollectionWithSubsetTest`
   type `'c -> 'c -> Bool`
   executable :: 'ctype-variable `'c`
   kind `*` -> 'ctype-variable `'c`
   kind `*` -> Booldatatype `Prelude.Bool.Bool`
   kind `*`
   executable
  define isSetEquivconstant `Prelude.Collection.isSetEquiv`
   default instance of type-class constant
   type `('c -> 'c -> Bool) -> 'c -> 'c -> Bool`
   executable xsvariable `xs`
   type `'c` ysvariable `ys`
   type `'c` := isSubsetOfconstant `Prelude.Collection.isSubsetOf`
   constant of type-class `CollectionWithSubsetTest`
   type `'c -> 'c -> Bool`
   executable
   same type-class instance xsvariable `xs`
   type `'c` ysvariable `ys`
   type `'c` &&constant `Prelude.Bool.(&&)`
   constant
   type `Bool -> Bool -> Bool`
   executable isSubsetOfconstant `Prelude.Collection.isSubsetOf`
   constant of type-class `CollectionWithSubsetTest`
   type `'c -> 'c -> Bool`
   executable
   same type-class instance ysvariable `ys`
   type `'c` xsvariable `xs`
   type `'c`
  define disjointconstant `Prelude.Collection.disjoint`
   default instance of type-class constant
   type `'c -> 'c -> Bool`
   executable xsvariable `xs`
   type `'c` ysvariable `ys`
   type `'c` := isEmptyconstant `Prelude.Collection.isEmpty`
   constant of type-class `CollectionWithEmptynessTest`
   type `'c -> Bool`
   executable
   type-class instance from context (intersectionconstant `Prelude.Collection.intersection`
   constant of type-class `CollectionWithDelete`
   type `'c -> 'c -> 'c`
   executable
   type-class instance from context xsvariable `xs`
   type `'c` ysvariable `ys`
   type `'c`)
  test disjoint_okconstant `Prelude.Collection.disjoint_ok`
   type-class test
   type `'e -> 'c -> 'c -> Bool`
   executable (evariable `e`
   type `'e` :: 'etype-variable `'e`
   kind `*`) (c1variable `c1`
   type `'c` :: 'ctype-variable `'c`
   kind `*`) (c2variable `c2`
   type `'c` :: 'ctype-variable `'c`
   kind `*`) := notconstant `Prelude.Bool.not`
   constant
   type `Bool -> Bool`
   executable (memberconstant `Prelude.Collection.member`
   constant of type-class `CollectionWithMembershipTest`
   type `Eq 'e => 'e -> 'c -> Bool`
   type in context `'e -> 'c -> Bool`
   executable
   type-class instance from context evariable `e`
   type `'e` c1variable `c1`
   type `'c` &&constant `Prelude.Bool.(&&)`
   constant
   type `Bool -> Bool -> Bool`
   executable memberconstant `Prelude.Collection.member`
   constant of type-class `CollectionWithMembershipTest`
   type `Eq 'e => 'e -> 'c -> Bool`
   type in context `'e -> 'c -> Bool`
   executable
   type-class instance from context evariable `e`
   type `'e` c2variable `c2`
   type `'c`)
  test isSubsetOf_okconstant `Prelude.Collection.isSubsetOf_ok`
   type-class test
   type `'e -> 'c -> 'c -> Bool`
   executable (evariable `e`
   type `'e` :: 'etype-variable `'e`
   kind `*`) (c1variable `c1`
   type `'c` :: 'ctype-variable `'c`
   kind `*`) (c2variable `c2`
   type `'c` :: 'ctype-variable `'c`
   kind `*`) := (occurconstant `Prelude.Collection.occur`
   constant of type-class `CollectionWithMembershipTest`
   type `Eq 'e => 'e -> 'c -> Natural`
   type in context `'e -> 'c -> Natural`
   executable
   type-class instance from context evariable `e`
   type `'e` c1variable `c1`
   type `'c` <=constant `Prelude.Ord.(<=)`
   constant of type-class `Ord`
   type `'a -> 'a -> Bool`
   type in context `Natural -> Natural -> Bool`
   executable
   statically resolved type-class instance occurconstant `Prelude.Collection.occur`
   constant of type-class `CollectionWithMembershipTest`
   type `Eq 'e => 'e -> 'c -> Natural`
   type in context `'e -> 'c -> Natural`
   executable
   type-class instance from context evariable `e`
   type `'e` c2variable `c2`
   type `'c`)
  test isProperSubsetOf_okconstant `Prelude.Collection.isProperSubsetOf_ok`
   type-class test
   type `'c -> 'c -> Bool`
   executable (c1variable `c1`
   type `'c` :: 'ctype-variable `'c`
   kind `*`) (c2variable `c2`
   type `'c` :: 'ctype-variable `'c`
   kind `*`) :=  (isSubsetOfconstant `Prelude.Collection.isSubsetOf`
   constant of type-class `CollectionWithSubsetTest`
   type `'c -> 'c -> Bool`
   executable
   same type-class instance c1variable `c1`
   type `'c` c2variable `c2`
   type `'c`) &&constant `Prelude.Bool.(&&)`
   constant
   type `Bool -> Bool -> Bool`
   executable notconstant `Prelude.Bool.not`
   constant
   type `Bool -> Bool`
   executable (isSubsetOfconstant `Prelude.Collection.isSubsetOf`
   constant of type-class `CollectionWithSubsetTest`
   type `'c -> 'c -> Bool`
   executable
   same type-class instance c2variable `c2`
   type `'c` c1variable `c1`
   type `'c`)
end-class
class CollectionWithMembershipTesttype-class `Prelude.Collection.CollectionWithMembershipTest`
   arguments: ('c :: *) ('e :: *)
   functional deps: 'c -> 'e
   super-class constraints:
     - Prelude.Collection.Collection 'c 'e 'ctype-variable `'c`
   kind `*` 'etype-variable `'e`
   kind `*` => SetLike 'ctype-variable `'c`
   kind `*` 'etype-variable `'e`
   kind `*` | 'c -> 'e where
  test Eqtype-class `Prelude.Eq.Eq`
   arguments: ('a :: *)
   super-class constraints:
     - Prelude.Eq.EqP 'a
   has default derive templates 'etype-variable `'e`
   kind `*` => noDups_occurconstant `Prelude.Collection.noDups_occur`
   type-class test
   type `Eq 'e => 'e -> 'c -> Bool`
   executable (evariable `e`
   type `'e` :: 'etype-variable `'e`
   kind `*`) (cvariable `c`
   type `'c` :: 'ctype-variable `'c`
   kind `*`) := occurconstant `Prelude.Collection.occur`
   constant of type-class `CollectionWithMembershipTest`
   type `Eq 'e => 'e -> 'c -> Natural`
   type in context `'e -> 'c -> Natural`
   executable
   type-class instance from context evariable `e`
   type `'e` cvariable `c`
   type `'c` <=constant `Prelude.Ord.(<=)`
   constant of type-class `Ord`
   type `'a -> 'a -> Bool`
   type in context `Natural -> Natural -> Bool`
   executable
   statically resolved type-class instance 1natural number literal
   type `Natural`
   decimal value: 1
   hexadecimal value: 0x1
   octal value: 0o1
   binary value: 0b1
end-class
declare setEmptyconstant `Prelude.Collection.setEmpty`
   constant
   type `SetLike 'c 'e => 'c`
   executable :: SetLiketype-class `Prelude.Collection.SetLike`
   arguments: ('c :: *) ('e :: *)
   functional deps: 'c -> 'e
   super-class constraints:
     - Prelude.Collection.CollectionWithMembershipTest 'c 'e 'ctype-variable `'c`
   kind `*` 'etype-variable `'e`
   kind `*` => 'ctype-variable `'c`
   kind `*`
define setEmptyconstant `Prelude.Collection.setEmpty`
   constant
   type `SetLike 'c 'e => 'c`
   executable := memptyconstant `Prelude.BasicClasses.mempty`
   constant of type-class `Monoid`
   type `'a`
   type in context `'c`
   executable
   type-class instance from argument
{-# inline setEmptyconstant `Prelude.Collection.setEmpty`
   constant
   type `SetLike 'c 'e => 'c`
   executable #-}
declare setInsertconstant `Prelude.Collection.setInsert`
   constant
   type `SetLike 'c 'e => 'e -> 'c -> 'c`
   executable :: SetLiketype-class `Prelude.Collection.SetLike`
   arguments: ('c :: *) ('e :: *)
   functional deps: 'c -> 'e
   super-class constraints:
     - Prelude.Collection.CollectionWithMembershipTest 'c 'e 'ctype-variable `'c`
   kind `*` 'etype-variable `'e`
   kind `*` => 'etype-variable `'e`
   kind `*` -> 'ctype-variable `'c`
   kind `*` -> 'ctype-variable `'c`
   kind `*`
define setInsertconstant `Prelude.Collection.setInsert`
   constant
   type `SetLike 'c 'e => 'e -> 'c -> 'c`
   executable := insertconstant `Prelude.Collection.insert`
   constant of type-class `Collection`
   type `'e -> 'c -> 'c`
   executable
   type-class instance from argument
{-# inline setInsertconstant `Prelude.Collection.setInsert`
   constant
   type `SetLike 'c 'e => 'e -> 'c -> 'c`
   executable #-}
declare setFromListconstant `Prelude.Collection.setFromList`
   constant
   type `SetLike 'c 'e => ['e] -> 'c`
   executable :: SetLiketype-class `Prelude.Collection.SetLike`
   arguments: ('c :: *) ('e :: *)
   functional deps: 'c -> 'e
   super-class constraints:
     - Prelude.Collection.CollectionWithMembershipTest 'c 'e 'ctype-variable `'c`
   kind `*` 'etype-variable `'e`
   kind `*` => ['etype-variable `'e`
   kind `*`] -> 'ctype-variable `'c`
   kind `*`
define setFromListconstant `Prelude.Collection.setFromList`
   constant
   type `SetLike 'c 'e => ['e] -> 'c`
   executable := fromListconstant `Prelude.Collection.fromList`
   constant of type-class `Collection`
   type `['e] -> 'c`
   executable
   type-class instance from argument
{-# inline setFromListconstant `Prelude.Collection.setFromList`
   constant
   type `SetLike 'c 'e => ['e] -> 'c`
   executable #-}
class CollectionWithMembershipTesttype-class `Prelude.Collection.CollectionWithMembershipTest`
   arguments: ('c :: *) ('e :: *)
   functional deps: 'c -> 'e
   super-class constraints:
     - Prelude.Collection.Collection 'c 'e 'ctype-variable `'c`
   kind `*` 'etype-variable `'e`
   kind `*` => BagLike 'ctype-variable `'c`
   kind `*` 'etype-variable `'e`
   kind `*` | 'c -> 'e where
  test Eqtype-class `Prelude.Eq.Eq`
   arguments: ('a :: *)
   super-class constraints:
     - Prelude.Eq.EqP 'a
   has default derive templates 'etype-variable `'e`
   kind `*` => occur_insert_bagconstant `Prelude.Collection.occur_insert_bag`
   type-class test
   type `Eq 'e => 'e -> 'c -> Bool`
   executable (evariable `e`
   type `'e` :: 'etype-variable `'e`
   kind `*`) (cvariable `c`
   type `'c` :: 'ctype-variable `'c`
   kind `*`) := (occurconstant `Prelude.Collection.occur`
   constant of type-class `CollectionWithMembershipTest`
   type `Eq 'e => 'e -> 'c -> Natural`
   type in context `'e -> 'c -> Natural`
   executable
   type-class instance from context evariable `e`
   type `'e` (insertconstant `Prelude.Collection.insert`
   constant of type-class `Collection`
   type `'e -> 'c -> 'c`
   executable
   type-class instance from context evariable `e`
   type `'e` cvariable `c`
   type `'c`) ==constant `Prelude.Eq.(==)`
   constant of type-class `Eq`
   type `'a -> 'a -> Bool`
   type in context `Natural -> Natural -> Bool`
   executable
   statically resolved type-class instance occurconstant `Prelude.Collection.occur`
   constant of type-class `CollectionWithMembershipTest`
   type `Eq 'e => 'e -> 'c -> Natural`
   type in context `'e -> 'c -> Natural`
   executable
   type-class instance from context evariable `e`
   type `'e` cvariable `c`
   type `'c` +constant `Prelude.Num.(+)`
   constant of type-class `NumPlus`
   type `'a -> 'a -> 'a`
   type in context `Natural -> Natural -> Natural`
   executable
   statically resolved type-class instance 1natural number literal
   type `Natural`
   decimal value: 1
   hexadecimal value: 0x1
   octal value: 0o1
   binary value: 0b1)
end-class
class (SetLiketype-class `Prelude.Collection.SetLike`
   arguments: ('c :: *) ('e :: *)
   functional deps: 'c -> 'e
   super-class constraints:
     - Prelude.Collection.CollectionWithMembershipTest 'c 'e 'ctype-variable `'c`
   kind `*` 'etype-variable `'e`
   kind `*`, CollectionWithDeletetype-class `Prelude.Collection.CollectionWithDelete`
   arguments: ('c :: *) ('e :: *)
   functional deps: 'c -> 'e
   super-class constraints:
     - Prelude.Eq.Eq 'e
     - Prelude.Collection.CollectionWithMembershipTest 'c 'e 'ctype-variable `'c`
   kind `*` 'etype-variable `'e`
   kind `*`, CollectionWithEmptynessTesttype-class `Prelude.Collection.CollectionWithEmptynessTest`
   arguments: ('c :: *) ('e :: *)
   functional deps: 'c -> 'e
   super-class constraints:
     - Prelude.Collection.Collection 'c 'e 'ctype-variable `'c`
   kind `*` 'etype-variable `'e`
   kind `*`) => Set 'ctype-variable `'c`
   kind `*` 'etype-variable `'e`
   kind `*` | 'c -> 'e where
end-class
class (Settype-class `Prelude.Collection.Set`
   arguments: ('c :: *) ('e :: *)
   functional deps: 'c -> 'e
   super-class constraints:
     - Prelude.Collection.SetLike 'c 'e
     - Prelude.Collection.CollectionWithDelete 'c 'e
     - Prelude.Collection.CollectionWithEmptynessTest 'c 'e 'ctype-variable `'c`
   kind `*` 'etype-variable `'e`
   kind `*`, FiniteCollectiontype-class `Prelude.Collection.FiniteCollection`
   arguments: ('c :: *) ('e :: *)
   functional deps: 'c -> 'e
   super-class constraints:
     - Prelude.Collection.CollectionWithMembershipTest 'c 'e
     - Prelude.Foldable.Foldable 'c 'e
     - Prelude.Collection.CollectionWithEmptynessTest 'c 'e 'ctype-variable `'c`
   kind `*` 'etype-variable `'e`
   kind `*`) => FiniteSet 'ctype-variable `'c`
   kind `*` 'etype-variable `'e`
   kind `*` | 'c -> 'e where
end-class
class (BagLiketype-class `Prelude.Collection.BagLike`
   arguments: ('c :: *) ('e :: *)
   functional deps: 'c -> 'e
   super-class constraints:
     - Prelude.Collection.CollectionWithMembershipTest 'c 'e 'ctype-variable `'c`
   kind `*` 'etype-variable `'e`
   kind `*`, CollectionWithDeletetype-class `Prelude.Collection.CollectionWithDelete`
   arguments: ('c :: *) ('e :: *)
   functional deps: 'c -> 'e
   super-class constraints:
     - Prelude.Eq.Eq 'e
     - Prelude.Collection.CollectionWithMembershipTest 'c 'e 'ctype-variable `'c`
   kind `*` 'etype-variable `'e`
   kind `*`, CollectionWithEmptynessTesttype-class `Prelude.Collection.CollectionWithEmptynessTest`
   arguments: ('c :: *) ('e :: *)
   functional deps: 'c -> 'e
   super-class constraints:
     - Prelude.Collection.Collection 'c 'e 'ctype-variable `'c`
   kind `*` 'etype-variable `'e`
   kind `*`) => Bag 'ctype-variable `'c`
   kind `*` 'etype-variable `'e`
   kind `*` | 'c -> 'e where
end-class
class (Bagtype-class `Prelude.Collection.Bag`
   arguments: ('c :: *) ('e :: *)
   functional deps: 'c -> 'e
   super-class constraints:
     - Prelude.Collection.BagLike 'c 'e
     - Prelude.Collection.CollectionWithDelete 'c 'e
     - Prelude.Collection.CollectionWithEmptynessTest 'c 'e 'ctype-variable `'c`
   kind `*` 'etype-variable `'e`
   kind `*`, FiniteCollectiontype-class `Prelude.Collection.FiniteCollection`
   arguments: ('c :: *) ('e :: *)
   functional deps: 'c -> 'e
   super-class constraints:
     - Prelude.Collection.CollectionWithMembershipTest 'c 'e
     - Prelude.Foldable.Foldable 'c 'e
     - Prelude.Collection.CollectionWithEmptynessTest 'c 'e 'ctype-variable `'c`
   kind `*` 'etype-variable `'e`
   kind `*`) => FiniteBag 'ctype-variable `'c`
   kind `*` 'etype-variable `'e`
   kind `*` | 'c -> 'e where
end-class
end-moduleend of module Prelude.Collection
 |