Safe Haskell | None |
---|---|
Language | Haskell2010 |
Documentation
data Reducer (abt :: [Hakaru] -> Hakaru -> *) (xs :: [Hakaru]) (a :: Hakaru) where Source #
Red_Fanout :: Reducer abt xs a -> Reducer abt xs b -> Reducer abt xs (HPair a b) | |
Red_Index :: abt xs HNat -> abt (HNat ': xs) HNat -> Reducer abt (HNat ': xs) a -> Reducer abt xs (HArray a) | |
Red_Split :: abt (HNat ': xs) HBool -> Reducer abt xs a -> Reducer abt xs b -> Reducer abt xs (HPair a b) | |
Red_Nop :: Reducer abt xs HUnit | |
Red_Add :: HSemiring a -> abt (HNat ': xs) a -> Reducer abt xs a |
Instances
JmEq2 abt => JmEq1 (Reducer abt xs :: Hakaru -> *) Source # | |
Eq2 abt => Eq1 (Reducer abt xs :: Hakaru -> *) Source # | |
Traversable22 Reducer Source # | |
traverse22 :: Applicative f => (forall (h :: k1) (i :: k2). a h i -> f (b h i)) -> Reducer a j l -> f (Reducer b j l) Source # | |
Foldable22 Reducer Source # | |
Functor22 Reducer Source # | |
ABT Term abt => Pretty (Reducer abt xs) Source # | |
prettyPrec_ :: Int -> Reducer abt xs a -> Docs Source # |