blob: ac07869b40b7e06640ebf892f36fa0a98896c6be (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
{-# LANGUAGE ExplicitForAll, TypeOperators #-}
module Main where
-- Infix type operator
f1 :: forall m a b. (a `m` b) -> ((a `m` b) -> a) -> a
f1 x g = g x
-- Infix type operator
f2 :: forall a b (-->). (a --> b) -> ((a --> b) -> b) -> b
f2 x g = g x
main = do { print (f1 (3,5) fst); print (f2 (3,5) snd) }
|