{-# LANGUAGE DataKinds      #-}
{-# LANGUAGE KindSignatures #-}
{-# LANGUAGE TypeFamilies   #-}
{-# LANGUAGE PolyKinds      #-}
module CLaSH.Promoted.Bool where

-- | Type-level if-then-else
type family If (x :: Bool) (y :: k) (z :: k) :: k
  where
    If True  y z = y
    If False y z = z