{-# LANGUAGE DataKinds #-} {-# LANGUAGE PolyKinds #-} module Control.Category.Indiscrete where import Prelude hiding (id, (.)) import Control.Category import Data.Kind (Type) type Indiscrete :: k -> k -> Type data Indiscrete (a :: k) (b :: k) = Indiscrete deriving (Int -> Indiscrete a b -> ShowS [Indiscrete a b] -> ShowS Indiscrete a b -> String (Int -> Indiscrete a b -> ShowS) -> (Indiscrete a b -> String) -> ([Indiscrete a b] -> ShowS) -> Show (Indiscrete a b) forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a forall k (a :: k) (b :: k). Int -> Indiscrete a b -> ShowS forall k (a :: k) (b :: k). [Indiscrete a b] -> ShowS forall k (a :: k) (b :: k). Indiscrete a b -> String $cshowsPrec :: forall k (a :: k) (b :: k). Int -> Indiscrete a b -> ShowS showsPrec :: Int -> Indiscrete a b -> ShowS $cshow :: forall k (a :: k) (b :: k). Indiscrete a b -> String show :: Indiscrete a b -> String $cshowList :: forall k (a :: k) (b :: k). [Indiscrete a b] -> ShowS showList :: [Indiscrete a b] -> ShowS Show, Indiscrete a b -> Indiscrete a b -> Bool (Indiscrete a b -> Indiscrete a b -> Bool) -> (Indiscrete a b -> Indiscrete a b -> Bool) -> Eq (Indiscrete a b) forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a forall k (a :: k) (b :: k). Indiscrete a b -> Indiscrete a b -> Bool $c== :: forall k (a :: k) (b :: k). Indiscrete a b -> Indiscrete a b -> Bool == :: Indiscrete a b -> Indiscrete a b -> Bool $c/= :: forall k (a :: k) (b :: k). Indiscrete a b -> Indiscrete a b -> Bool /= :: Indiscrete a b -> Indiscrete a b -> Bool Eq) instance Category Indiscrete where id :: forall (a :: k). Indiscrete a a id = Indiscrete a a forall k (a :: k) (b :: k). Indiscrete a b Indiscrete Indiscrete b c _ . :: forall (b :: k) (c :: k) (a :: k). Indiscrete b c -> Indiscrete a b -> Indiscrete a c . Indiscrete a b _ = Indiscrete a c forall k (a :: k) (b :: k). Indiscrete a b Indiscrete