Skip to content

Commit 5520770

Browse files
fix boundRepeat which was forcing i to be int instead of 'T (thanks @Tarmil)
1 parent c20d0a1 commit 5520770

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

src/ZMidi/Internal/ParserMonad.fs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -181,14 +181,15 @@ module ParserMonad =
181181
let inline boundRepeat (n: ^T) (p: ParserMonad<'a>) : ParserMonad<'a array> =
182182
parseMidi {
183183
let l = Array.zeroCreate (int n) // can't use array expression inside a CE (at least as is)
184-
for i in LanguagePrimitives.GenericZero .. (n - LanguagePrimitives.GenericOne) do
184+
for (i: 'T) in LanguagePrimitives.GenericZero .. (n - LanguagePrimitives.GenericOne) do
185185
let! r = p
186-
l.[i] <- r
186+
l.[int i] <- r
187187
return l
188188
}
189+
189190
/// Apply the parser for /count/ times, derive the final answer
190191
/// from the intermediate list with the supplied function.
191-
let inline gencount plen p constr = //(plen: ParserMonad<'T>) (p: ParserMonad<'a>) (constr: ^T -> 'a array -> 'answer) : ParserMonad<'answer> =
192+
let inline gencount (plen: ParserMonad<'T>) (p: ParserMonad<'a>) (constr: ^T -> 'a array -> 'answer) : ParserMonad<'answer> =
192193
parseMidi {
193194
let! l = plen
194195
let! items = boundRepeat l p

0 commit comments

Comments
 (0)