heftia-0.3.1.0: higher-order effects done right
Copyright(c) 2024 Yamada Ryo
LicenseMPL-2.0 (see the file LICENSE)
Maintainerymdfield@outlook.jp
Stabilityexperimental
Portabilityportable
Safe HaskellSafe-Inferred
LanguageGHC2021

Data.Hefty.Union.Strengthen

Description

 

Documentation

class (Union u, isMZero ~ (m == 0), isNZero ~ (n == 0)) => StrengthenUnder_ (isMZero :: Bool) (m :: Natural) (isNZero :: Bool) (n :: Natural) u es es' | m n es -> es' where Source #

Methods

strengthenNUnderM_ :: u es f ~> u es' f Source #

Instances

Instances details
Union u => StrengthenUnder_ 'True 0 'True 0 u es es Source # 
Instance details

Defined in Data.Hefty.Union.Strengthen

Methods

strengthenNUnderM_ :: forall (f :: Type -> Type). u es f ~> u es f Source #

(Union u, Strengthen (n - 1) u es es', MemberRec u e es, (n == 0) ~ 'False) => StrengthenUnder_ 'True 0 'False n u (e ': es) es' Source # 
Instance details

Defined in Data.Hefty.Union.Strengthen

Methods

strengthenNUnderM_ :: forall (f :: Type -> Type). u (e ': es) f ~> u es' f Source #

(Union u, StrengthenUnder n (m - 1) u es es', (m == 0) ~ 'False, isNZero ~ (n == 0)) => StrengthenUnder_ 'False m isNZero n u (e ': es) (e ': es') Source # 
Instance details

Defined in Data.Hefty.Union.Strengthen

Methods

strengthenNUnderM_ :: forall (f :: Type -> Type). u (e ': es) f ~> u (e ': es') f Source #

type StrengthenUnder n m = StrengthenUnder_ (m == 0) m (n == 0) n Source #

strengthenNUnderM :: forall n m u es' f es. StrengthenUnder n m u es es' => u es f ~> u es' f Source #

strengthenN :: forall n u es' f es. Strengthen n u es es' => u es f ~> u es' f Source #