diff options
Diffstat (limited to 'html-test/src')
| -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 | 
