<div dir="ltr"><div>You can factor out the fromIntegral t part using (***) from Control.Arrow.<br>For functions,<br><br>> (f *** g) (x,y) = (f x, g y)<br><br>Drop time (t) handling from render:<br><br>> playSong :: DtzEvents -> IO()<br>

> playSong events = runContT (foo "128:0" 120 (map (fromIntegral *** render) events)) print<br>>   where<br>>     render (NoteOn c n v) = noteOn c n v<br>>     ...<br><br></div>-- Conal<br><div><div>

<div class="gmail_extra"><br><br><div class="gmail_quote">On Sun, Nov 3, 2013 at 9:36 AM, martin <span dir="ltr"><<a href="mailto:martin.drautzburg@web.de" target="_blank">martin.drautzburg@web.de</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Am 11/03/2013 03:35 PM, schrieb Niklas Hambüchen:<br>
<div class="im">> It depends a bit:<br>
><br>
> What is supposed to happen / what happens in your library when one of<br>
> the numbers is larger than a Word8?<br>
><br>
> That usually determines where / how the conversion fits in nicely.<br>
><br>
> For example, if you already know that all the values in DtzEvent can<br>
> only be Word8s, then they should probably already be Word8s and not Int.<br>
<br>
<br>
</div>Silly me,<br>
<br>
yes using Word8 instead of Ints got rid of most of the fromIntegrals. I didn't know that Word8 was an actual haskell<br>
type. Thought it was something private to ALSA.Sequencer.<br>
<br>
There is one remaining fromIntegral. This is "time"<br>
<br>
<br>
    Couldn't match expected type `alsa-seq-0.6.0.2:Sound.ALSA.Sequencer.Marshal.Time.Tick'<br>
                with actual type `T'<br>
<br>
This seems to be realy a private thing and I found to way other than fromIntegral to make the compiler happy.<br>
<div class=""><div class="h5"><br>
_______________________________________________<br>
Haskell-Cafe mailing list<br>
<a href="mailto:Haskell-Cafe@haskell.org">Haskell-Cafe@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank">http://www.haskell.org/mailman/listinfo/haskell-cafe</a><br>
</div></div></blockquote></div><br></div></div></div></div>