aboutsummaryrefslogtreecommitdiff
path: root/html-test/src/TypeOperators.hs
diff options
context:
space:
mode:
Diffstat (limited to 'html-test/src/TypeOperators.hs')
-rw-r--r--html-test/src/TypeOperators.hs25
1 files changed, 16 insertions, 9 deletions
diff --git a/html-test/src/TypeOperators.hs b/html-test/src/TypeOperators.hs
index edbb9344..e69e89cb 100644
--- a/html-test/src/TypeOperators.hs
+++ b/html-test/src/TypeOperators.hs
@@ -1,12 +1,5 @@
-{-# LANGUAGE TypeOperators #-}
-module TypeOperators (
- -- * stuff
- (:-:),
- (:+:),
- Op,
- O(..),
- biO,
-) where
+{-# LANGUAGE TypeOperators, GADTs, MultiParamTypeClasses, FlexibleContexts #-}
+module TypeOperators where
data a :-: b
@@ -16,5 +9,19 @@ data a `Op` b
newtype (g `O` f) a = O { unO :: g (f a) }
+class a <=> b
+
biO :: (g `O` f) a
biO = undefined
+
+f :: (a ~ b) => a -> b
+f = id
+
+g :: (a ~ b, b ~ c) => a -> c
+g = id
+
+x :: ((a :-: a) <=> (a `Op` a)) => a
+x = undefined
+
+y :: (a <=> a, (a `Op` a) <=> a) => a
+y = undefined