module Symantic.Base.Routable where import Data.Eq (Eq) import Text.Show (Show) import Symantic.Base.Composable -- * Class 'Routable' class Routable repr where (<!>) = trans2 (<!>) default (<!>) :: Transformable repr => Routable (UnTrans repr) => repr a k -> repr b k -> repr (a:!:b) k (<!>) :: repr a k -> repr b k -> repr (a:!:b) k infixr 3 <!> -- ** Type (':!:') -- | Like @(,)@ but @infixr@. data (:!:) a b = a:!:b deriving (Eq,Show) infixr 3 :!: