summaryrefslogtreecommitdiff
path: root/testsuite/tests/arrows/should_compile/arrowapply4.hs
blob: af0dac4cee3b123bdd32cbc7aeccb677d07cfc1c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{-# LANGUAGE Arrows #-}

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) "***"