
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
SF.hs:11:10: `>>>' is not a (visible) method of class `Arrow' Failed, modules loaded: none.
In the base package Arrows are defined a bit different from what you some times see in the literature. I also stumbled over this once. The (>>>) operator is just a synonym for (.) from Control.Category. Note that (.) is not the same (.) as in Prelude. class Category cat where Control.Category.id :: cat a a (Control.Category..) :: cat b c -> cat a b -> cat a c class Category a => Arrow a where arr :: (b -> c) -> a b c first :: a b c -> a (b, d) (c, d) f >>> g = g . f your implementation would probably look something like this. module Main where import Control.Arrow import Control.Category as Cat newtype SF a b = SF {runSF :: [a] -> [b]} instance Category SF where id = SF Cat.id SF f . SF g = SF (f Cat.. g) instance Arrow SF where arr f = SF (map f) first (SF f) = SF (unzip >>> first f >>> uncurry zip) -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iQIcBAEBAgAGBQJOqWTQAAoJEDLsP+zrbatWcmgP/j5DXHq5lEUKM2CHkfLuoVeQ wJkRjsH9lRKVS/LHsfYlXEEodjpSKZwN3lL4vAQhoTwAiGys/wkd13NvXUQdV7YL lZjlVSAyMk+q+VNdSFmaQMiIsIZ5pl31xtrAIWaqQ9+dypTOsqxEqhaf3CxqARjR qOrJiXmeQHpSSCoQVAN6oUSEAHqyHmxOWs7cKebxFmJM96+8jTiF2SpUyJVvlqMX jgfGlnTS5h3DMFx3GStUaZezk/JaFRJmxtRdTzFj4HpL3COOjrQBmGt4X8v4OzWX 4+hFLcaLxjr3Kgnn3LEs7QM8SwzPeZechdPFBor8SxymXrJNmD0GpBBRdMqGXREI m7sC32H3wzpbuHQXIM32Is3wjehrAOn2h1cHsImGxC6qglIvIFm4BwIZ5UYPoiaK oFIEN7HsfyLPXZumMKxGd3Al8PrxXyMJZFQMfcdzI5IuPCWQGJCo6Bin+k9d5CuU fxM1SDoFx4LzphjLuTLJeD1biVKs0Wj/DaSDDcaVxhITB4inJDOMyzT3PelXipkS xveMS4G0xQNRo21SY4QpHwZhCTnKftapovmJeOH4jA2i5D4UeXdvMIAHJbp1vFqQ CZ2aA1p2Ji4RxdMOrNbGPpR8sz6A9E16PQoN7XGV3xaHcJ6Ge0kKd2EYaT4pLNxH vvLMLop0dVJuhL6h/cLj =luI1 -----END PGP SIGNATURE-----