git.iko.soy/typeable/postgresql-simple
on master help sign in
Change the FromRow instances to applicative style
1414e24Leon P Smith
src/Database/PostgreSQL/Simple/FromRow.hs+15−75
@@ -83,111 +83,51 @@ numFieldsRemaining = RP $ do
83 return $! (\(PQ.Col x) -> fromIntegral x) (nfields rowresult - column)
83 return $! (\(PQ.Col x) -> fromIntegral x) (nfields rowresult - column)
84
84
85instance (FromField a) => FromRow (Only a) where
85instance (FromField a) => FromRow (Only a) where
86− fromRow = do
86+ fromRow = Only <$> field
87− !a <- field
88− return (Only a)
89
87
90instance (FromField a, FromField b) => FromRow (a,b) where
88instance (FromField a, FromField b) => FromRow (a,b) where
91− fromRow = do
89+ fromRow = (,) <$> field <*> field
92− !a <- field
93− !b <- field
94− return (a,b)
95
90
96instance (FromField a, FromField b, FromField c) => FromRow (a,b,c) where
91instance (FromField a, FromField b, FromField c) => FromRow (a,b,c) where
97− fromRow = do
92+ fromRow = (,,) <$> field <*> field <*> field
98− !a <- field
99− !b <- field
100− !c <- field
101− return (a,b,c)
102
93
103instance (FromField a, FromField b, FromField c, FromField d) =>
94instance (FromField a, FromField b, FromField c, FromField d) =>
104 FromRow (a,b,c,d) where
95 FromRow (a,b,c,d) where
105− fromRow = do
96+ fromRow = (,,,) <$> field <*> field <*> field <*> field
106− !a <- field
107− !b <- field
108− !c <- field
109− !d <- field
110− return (a,b,c,d)
111
97
112instance (FromField a, FromField b, FromField c, FromField d, FromField e) =>
98instance (FromField a, FromField b, FromField c, FromField d, FromField e) =>
113 FromRow (a,b,c,d,e) where
99 FromRow (a,b,c,d,e) where
114− fromRow = do
100+ fromRow = (,,,,) <$> field <*> field <*> field <*> field <*> field
115− !a <- field
116− !b <- field
117− !c <- field
118− !d <- field
119− !e <- field
120− return (a,b,c,d,e)
121
101
122instance (FromField a, FromField b, FromField c, FromField d, FromField e,
102instance (FromField a, FromField b, FromField c, FromField d, FromField e,
123 FromField f) =>
103 FromField f) =>
124 FromRow (a,b,c,d,e,f) where
104 FromRow (a,b,c,d,e,f) where
125− fromRow = do
105+ fromRow = (,,,,,) <$> field <*> field <*> field <*> field <*> field
126− !a <- field
106+ <*> field
127− !b <- field
128− !c <- field
129− !d <- field
130− !e <- field
131− !f <- field
132− return (a,b,c,d,e,f)
133
107
134instance (FromField a, FromField b, FromField c, FromField d, FromField e,
108instance (FromField a, FromField b, FromField c, FromField d, FromField e,
135 FromField f, FromField g) =>
109 FromField f, FromField g) =>
136 FromRow (a,b,c,d,e,f,g) where
110 FromRow (a,b,c,d,e,f,g) where
137− fromRow = do
111+ fromRow = (,,,,,,) <$> field <*> field <*> field <*> field <*> field
138− !a <- field
112+ <*> field <*> field
139− !b <- field
140− !c <- field
141− !d <- field
142− !e <- field
143− !f <- field
144− !g <- field
145− return (a,b,c,d,e,f,g)
146
113
147instance (FromField a, FromField b, FromField c, FromField d, FromField e,
114instance (FromField a, FromField b, FromField c, FromField d, FromField e,
148 FromField f, FromField g, FromField h) =>
115 FromField f, FromField g, FromField h) =>
149 FromRow (a,b,c,d,e,f,g,h) where
116 FromRow (a,b,c,d,e,f,g,h) where
150− fromRow = do
117+ fromRow = (,,,,,,,) <$> field <*> field <*> field <*> field <*> field
151− !a <- field
118+ <*> field <*> field <*> field
152− !b <- field
153− !c <- field
154− !d <- field
155− !e <- field
156− !f <- field
157− !g <- field
158− !h <- field
159− return (a,b,c,d,e,f,g,h)
160
119
161instance (FromField a, FromField b, FromField c, FromField d, FromField e,
120instance (FromField a, FromField b, FromField c, FromField d, FromField e,
162 FromField f, FromField g, FromField h, FromField i) =>
121 FromField f, FromField g, FromField h, FromField i) =>
163 FromRow (a,b,c,d,e,f,g,h,i) where
122 FromRow (a,b,c,d,e,f,g,h,i) where
164− fromRow = do
123+ fromRow = (,,,,,,,,) <$> field <*> field <*> field <*> field <*> field
165− !a <- field
124+ <*> field <*> field <*> field <*> field
166− !b <- field
167− !c <- field
168− !d <- field
169− !e <- field
170− !f <- field
171− !g <- field
172− !h <- field
173− !i <- field
174− return (a,b,c,d,e,f,g,h,i)
175
125
176instance (FromField a, FromField b, FromField c, FromField d, FromField e,
126instance (FromField a, FromField b, FromField c, FromField d, FromField e,
177 FromField f, FromField g, FromField h, FromField i, FromField j) =>
127 FromField f, FromField g, FromField h, FromField i, FromField j) =>
178 FromRow (a,b,c,d,e,f,g,h,i,j) where
128 FromRow (a,b,c,d,e,f,g,h,i,j) where
179− fromRow = do
129+ fromRow = (,,,,,,,,,) <$> field <*> field <*> field <*> field <*> field
180− !a <- field
130+ <*> field <*> field <*> field <*> field <*> field
181− !b <- field
182− !c <- field
183− !d <- field
184− !e <- field
185− !f <- field
186− !g <- field
187− !h <- field
188− !i <- field
189− !j <- field
190− return (a,b,c,d,e,f,g,h,i,j)
191
131
192instance FromField a => FromRow [a] where
132instance FromField a => FromRow [a] where
193 fromRow = do
133 fromRow = do