hydra-0.13.0: src/main/haskell/Hydra/Dsl/Meta/Lib/Eithers.hs
-- | Phantom-typed term DSL for the hydra.lib.eithers library
module Hydra.Dsl.Meta.Lib.Eithers where
import Hydra.Phantoms
import Hydra.Dsl.Meta.Phantoms
import qualified Hydra.Dsl.Terms as Terms
import Hydra.Sources.Libraries
bind :: TTerm (Either a b) -> TTerm (b -> Either a c) -> TTerm (Either a c)
bind = primitive2 _eithers_bind
bimap :: TTerm (a -> c) -> TTerm (b -> d) -> TTerm (Either a b) -> TTerm (Either c d)
bimap = primitive3 _eithers_bimap
either_ :: TTerm (a -> c) -> TTerm (b -> c) -> TTerm (Either a b) -> TTerm c
either_ = primitive3 _eithers_either
fromLeft :: TTerm a -> TTerm (Either a b) -> TTerm a
fromLeft = primitive2 _eithers_fromLeft
fromRight :: TTerm b -> TTerm (Either a b) -> TTerm b
fromRight = primitive2 _eithers_fromRight
isLeft :: TTerm (Either a b) -> TTerm Bool
isLeft = primitive1 _eithers_isLeft
isRight :: TTerm (Either a b) -> TTerm Bool
isRight = primitive1 _eithers_isRight
lefts :: TTerm [Either a b] -> TTerm [a]
lefts = primitive1 _eithers_lefts
map :: TTerm (a -> b) -> TTerm (Either c a) -> TTerm (Either c b)
map = primitive2 _eithers_map
mapList :: TTerm (a -> Either e b) -> TTerm [a] -> TTerm (Either e [b])
mapList = primitive2 _eithers_mapList
mapMaybe :: TTerm (a -> Either c b) -> TTerm (Maybe a) -> TTerm (Either c (Maybe b))
mapMaybe = primitive2 _eithers_mapMaybe
partitionEithers :: TTerm [Either a b] -> TTerm ([a], [b])
partitionEithers = primitive1 _eithers_partitionEithers
rights :: TTerm [Either a b] -> TTerm [b]
rights = primitive1 _eithers_rights