Cast value to Integer type

Okay so I think Tidal's current behavior is right in this example and I want to explain why:

for something like the scale function you're presumably not wanting to deal with unconstrained microtonality, so it's really only going to make sense if you convert fractional values to whole numbers anyway. but if that's your approach, then I think it should be left to the programmer to decide how the conversion is done. maybe you want to use floor, maybe you want to round, maybe you want to do something weird like check the third digit of the fractional number and if it's not 0 or 4 play middle c. Who knows!

in that case, I think it's good to rely on the actual semantic meanings of the underlying Haskell types and just go the more idiomatic Haskell solution of using fmap (or an infix operator like <$>).

I think the issue here is just better explanations of how things like fmap work so it's not a surprise to people who weren't Haskell programmers first, y'know?