{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE Unsafe #-}
module Categorical.Dual.Base
( baseDuals,
)
where
import Categorical.Dual
( exportDuals,
importDuals,
labelDual,
labelSelfDual,
labelSemiDual,
)
import Categorical.Dual.Prelude (preludeDuals)
import safe Control.Arrow
( Arrow,
arr,
returnA,
(&&&),
(***),
(+++),
(<<<),
(>>>),
(|||),
)
import safe Control.Category (Category)
import safe Control.Category qualified as Category
import safe Prelude qualified
importDuals preludeDuals
labelSelfDual ''Arrow
labelSelfDual 'arr
labelDual '(***) '(+++)
labelDual '(&&&) '(|||)
labelSelfDual 'returnA
labelSelfDual ''Category
labelSelfDual 'Prelude.id
labelSelfDual 'Category.id
labelSemiDual '(Prelude..) '(>>>)
labelSemiDual '(Category..) '(>>>)
labelDual '(<<<) '(>>>)
exportDuals "baseDuals"