module Composable where import Prelude class Transform a b where from :: a -> b instance tbi :: Transform Boolean Int where from true = 1 from false = 0 else instance tis :: Transform Int String where from = show else instance ti :: Transform i i where from = identity else instance tc :: (Transform a b, Transform b c) => Transform a c where from = (from :: a -> b) >>> from {- This doensn't work: a :: String a = from true -}