arrowapply4.hs 405 Bytes
Newer Older
ross's avatar
ross committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{-# OPTIONS -farrows #-}

module ShouldCompile where

-- example from Sebastian Boldt <Sebastian.Boldt@arcor.de>:
--	(f -< a) b  ===  f -< (a,b)

import Control.Arrow

mshowA :: (Arrow a, Show b) => a (b, String) String
mshowA = proc (x,s) -> returnA -< s ++ show x ++ s

f :: Arrow a => a Int String
f = proc x -> (mshowA -< x) "***"

g :: ArrowApply a => a Int String
g = proc x -> (mshowA -<< x) "***"