{-# LANGUAGE RankNTypes #-} {-# LANGUAGE PolyKinds, ConstraintKinds #-} {-# OPTIONS_GHC -Wall -fno-warn-tabs #-} module Data.TypeLevel.Bool (b) where b :: forall {k} c (f :: k) (t :: k) tp b . (c (tp f), c (tp t)) => tp f -> tp t -> Bool -> (forall (a :: k) . c (tp a) => tp a -> b) -> b b :: forall {k} (c :: * -> Constraint) (f :: k) (t :: k) (tp :: k -> *) b. (c (tp f), c (tp t)) => tp f -> tp t -> Bool -> (forall (a :: k). c (tp a) => tp a -> b) -> b b tp f f tp t _ Bool False forall (a :: k). c (tp a) => tp a -> b fn = tp f -> b forall (a :: k). c (tp a) => tp a -> b fn tp f f b tp f _ tp t t Bool True forall (a :: k). c (tp a) => tp a -> b fn = tp t -> b forall (a :: k). c (tp a) => tp a -> b fn tp t t