diff options
Diffstat (limited to 'html-test/src/TypeOperators.hs')
-rw-r--r-- | html-test/src/TypeOperators.hs | 25 |
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 |