typelevel-tools-yj-0.1.0.6: src/Data/TypeLevel/Bool.hs
{-# 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 f _ False fn = fn f
b _ t True fn = fn t