summaryrefslogtreecommitdiff
path: root/testsuite/tests/rep-poly/RepPolyArrowFun.hs
blob: 62ff9f0809f97c01c298a9151215b39bb80ad926 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
{-# LANGUAGE Arrows #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE PolyKinds #-}
{-# LANGUAGE RebindableSyntax #-}
{-# LANGUAGE ScopedTypeVariables #-}

module RepPolyArrowFun where

import Data.Kind
import GHC.Exts
import Prelude ( undefined )

arr :: forall r (arr :: Type -> Type -> TYPE r) a b. (a -> b) -> arr a b
arr = undefined

(.) :: forall r (arr :: Type -> Type -> TYPE r) a b c. arr b c -> arr a b -> arr a c
(.) = undefined

(>>>) :: forall r (arr :: Type -> Type -> TYPE r) a b c. arr a b -> arr b c -> arr a c
(>>>) = undefined

first :: forall r (arr :: Type -> Type -> TYPE r) a b c d. arr a b -> arr c d
first = undefined

returnA :: forall r (arr :: Type -> Type -> TYPE r) a. ( () ~ () ) => arr a a
returnA = undefined

foo :: forall r (arr :: Type -> Type -> TYPE r) a. () -> arr a a
foo _ = proc x -> undefined -< x