Skip to content

Commit 6b72d52

Browse files
committed
Remove / change redundant code
1 parent 8668d1c commit 6b72d52

File tree

5 files changed

+20
-49
lines changed

5 files changed

+20
-49
lines changed

src/ZMidi/ExtraTypes.fs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
module ZMidi.Internal.ExtraTypes
2-
open ZMidi.DataTypes
2+
open FSharpPlus.Math.Generic
33

44

55

@@ -31,8 +31,8 @@ let fromVarlen =
3131
let inline encodeVarlen (myValue) =
3232
let inline initMask nBits =
3333
[|0 .. nBits - 1|]
34-
|> Array.map (fun shift -> LanguagePrimitives.GenericOne <<< shift)
35-
|> Array.fold ((|||)) LanguagePrimitives.GenericZero
34+
|> Array.map (fun shift -> 1G <<< shift)
35+
|> Array.fold ((|||)) 0G
3636
let nBits = 7
3737
let maxBits =
3838
let nMaxBytes = System.Runtime.InteropServices.Marshal.SizeOf(myValue.GetType())
@@ -50,7 +50,7 @@ let inline encodeVarlen (myValue) =
5050

5151
shiftAnd7Bits
5252
|> Array.rev
53-
|> Array.skipWhile ((=) LanguagePrimitives.GenericZero)
54-
|> function | [||] -> [|LanguagePrimitives.GenericZero|]
53+
|> Array.skipWhile ((=) 0G)
54+
|> function | [||] -> [|0G|]
5555
| bytes -> bytes
5656

src/ZMidi/Internal/ParserMonad.fs

Lines changed: 2 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ module ParserMonad =
66
open System.IO
77
open FSharpPlus
88
open FSharpPlus.Data
9-
open ZMidi.Internal.Utils
109

1110
/// Status is either OFF or the previous VoiceEvent * Channel.
1211
type VoiceEvent =
@@ -130,15 +129,7 @@ module ParserMonad =
130129
)
131130
)
132131

133-
let inline mreturn (x:'a) : ParserMonad<'a> =
134-
StateT <| fun st -> Ok (x, st)
135-
136-
let inline private bindM (parser : ParserMonad<'a>)
137-
(next : 'a -> ParserMonad<'b>) : ParserMonad<'b> =
138-
StateT <| fun state ->
139-
match apply1 parser state with
140-
| Error msg -> Error msg
141-
| Ok (ans, st1) -> apply1 (next ans) st1
132+
let inline mreturn (x:'a) : ParserMonad<'a> = result x
142133

143134
let mzero () : ParserMonad<'a> =
144135
StateT <| fun state -> Error (mkParseError state (EOF "mzero"))
@@ -149,14 +140,7 @@ module ParserMonad =
149140
| Error _ -> apply1 parser2 state
150141
| Ok res -> Ok res
151142

152-
let inline private delayM (fn:unit -> ParserMonad<'a>) : ParserMonad<'a> =
153-
bindM (mreturn ()) fn
154-
155143
let inline mfor (items: #seq<'a>) (fn: 'a -> ParserMonad<'b>) : ParserMonad<seq<'b>> = failwithf ""
156-
157-
158-
let (>>=) (m: ParserMonad<'a>) (k: 'a -> ParserMonad<'b>) : ParserMonad<'b> =
159-
bindM m k
160144

161145
let parseMidi = monad
162146

@@ -183,17 +167,8 @@ module ParserMonad =
183167
Error(mkOtherParseError st genMessage)
184168

185169
///
186-
let fmap (f: 'a -> 'b) (p: ParserMonad<'a>) : ParserMonad<'b> =
187-
parseMidi {
188-
let! a = p
189-
return (f a)
190-
}
170+
let fmap (f: 'a -> 'b) (p: ParserMonad<'a>) : ParserMonad<'b> = map f p
191171
let inline ( <~> (* <$> *) ) (a) b = fmap a b
192-
let ( *> ) (a: ParserMonad<'a>) (b: 'a -> ParserMonad<'b>) : ParserMonad<'b> =
193-
parseMidi {
194-
let! a = a
195-
return! (b a)
196-
}
197172

198173
// http://hackage.haskell.org/package/base-4.12.0.0/docs/src/GHC.Base.html#%3C%24
199174
/// Replace all locations in the input with the same value.

src/ZMidi/Internal/Utils.fs

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
namespace ZMidi.Internal
22
open ZMidi.DataTypes
3+
open FSharpPlus
34

4-
module Evil =
5-
let inline uncurry4 f = fun (a,b,c,d) -> f a b c d
65
module DataTypes =
76
module FromBytes =
87

@@ -39,21 +38,21 @@ module DataTypes =
3938
module Iso =
4039
let reverse iso = snd iso, fst iso
4140

42-
let word32be : Iso<_,_> = (ToBytes.word32be), (Evil.uncurry4 FromBytes.word32be)
41+
let word32be : Iso<_,_> = (ToBytes.word32be), (uncurryN FromBytes.word32be)
4342

4443
module Utils =
45-
open System.IO
44+
open FSharpPlus.Math.Generic
4645

4746
let inline (|TestBit|_|) (bit: int) (i: ^T) =
48-
let mask = LanguagePrimitives.GenericOne <<< bit
47+
let mask = 1G <<< bit
4948
if mask &&& i = mask then Some () else None
5049

5150
let inline clearBit (bit: int) (i: ^T) =
52-
let mask = ~~~ (LanguagePrimitives.GenericOne <<< bit)
51+
let mask = ~~~ (1G <<< bit)
5352
i &&& mask
5453

5554
let inline setBit (bit: int) (i: ^T) =
56-
let mask = (LanguagePrimitives.GenericOne <<< bit)
55+
let mask = (1G <<< bit)
5756
i ||| mask
5857
let inline msbHigh i =
5958
match i with
@@ -86,8 +85,8 @@ module Utils =
8685
[|0 .. (maxSize - 1)|]
8786
|> Array.rev
8887
|> Array.map (fun shift ->
89-
let mask = LanguagePrimitives.GenericOne <<< shift
90-
if (number &&& mask <> LanguagePrimitives.GenericZero) then "" else " "
88+
let mask = 1G <<< shift
89+
if (number &&& mask <> 0G) then "" else " "
9190
)
9291
|> String.concat ""
9392
|> sprintf "[%s]"

src/ZMidi/Read.fs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,6 @@ module ReadFile =
157157
}
158158

159159
let metaEvent i =
160-
let konst k _ = k
161160
parseMidi {
162161
match i with
163162
| 0x00uy -> return! metaEventSequenceNumber <??> (konst "sequence number")

src/ZMidi/Write.fs

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,17 @@ open ZMidi.DataTypes
33
open ZMidi.Internal.Utils
44
open ZMidi.Internal.WriterMonad
55
open System.Text
6+
open FSharpPlus
7+
68
module WriteFile =
79
module PutOps =
810

9-
let putAscii (text: string) = text |> Encoding.ASCII.GetBytes |> PutBytes
11+
let putAscii (text: string) = String.getBytes Encoding.ASCII text |> PutBytes
1012

11-
let putWord32be (value: uint32) = PutBytes [| byte (value >>> 24)
12-
byte (value >>> 16)
13-
byte (value >>> 8)
14-
byte (value >>> 0) |]
13+
let putWord32be (value: uint32) = PutBytes (toBytesBE value)
1514

1615

17-
let putWord16be (value: uint16) = PutBytes [| byte (value >>> 8)
18-
byte (value >>> 0) |]
16+
let putWord16be (value: uint16) = PutBytes (toBytesBE value)
1917

2018
let putFormat = putWord16be << function | MidiFormat0 -> 0us
2119
| MidiFormat1 -> 1us

0 commit comments

Comments
 (0)