aboutsummaryrefslogtreecommitdiff
path: root/tests/extensions/TypeOperators.hs
blob: aa0fbe8cb01718be9098e0d58698e6dc7442f77e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
module TypeOperators (
  -- * stuff
  (:-:),
  (:+:),
  Op,
  O(..),
  biO,
  Flip(..)
) where

data a :-: b

data (a :+: b) c

data a `Op` b

newtype (g `O` f) a = O { unO :: g (f a) }

biO :: (g `O` f) a
biO = undefined

newtype Flip (~>) b a = Flip { unFlip :: a ~> b }