]> Git — Sourcephile - haskell/symantic-base.git/blob - src/Symantic/Base/Routable.hs
add trans1 and trans2
[haskell/symantic-base.git] / src / Symantic / Base / Routable.hs
1 module Symantic.Base.Routable where
2
3 import Data.Eq (Eq)
4 import Text.Show (Show)
5
6 import Symantic.Base.Composable
7
8 -- * Class 'Routable'
9 class Routable repr where
10 (<!>) = trans2 (<!>)
11 default (<!>) :: Transformable repr => Routable (UnTrans repr) =>
12 repr a k -> repr b k -> repr (a:!:b) k
13 (<!>) :: repr a k -> repr b k -> repr (a:!:b) k
14 infixr 3 <!>
15
16 -- ** Type (':!:')
17 -- | Like @(,)@ but @infixr@.
18 data (:!:) a b = a:!:b
19 deriving (Eq,Show)
20 infixr 3 :!: