Module

Polyform.Reporter.Dual

Package
purescript-polyform
Repository
purescript-polyform/polyform

#Dual Source

type Dual m r = Dual (Reporter m r) (Writer r)

#DualD Source

type DualD m r = DualD (Reporter m r) (Writer r)

#hoist Source

hoist :: forall e i o m m'. Functor m => (m ~> m') -> Dual m e i o -> Dual m' e i o

#iso Source

iso :: forall e i m o. Monoid e => Monad m => (i -> o) -> (o -> i) -> Dual m e i o

#liftValidatorDual Source

liftValidatorDual :: forall i m r. Monad m => Monoid r => (Dual m r i) ~> (Dual m r i)

#liftValidatorDualWith Source

liftValidatorDualWith :: forall e i m o r. Monad m => Monoid r => (Tuple i e -> r) -> (Tuple i o -> r) -> Dual m e i o -> Dual m r i o

#mapReport Source

mapReport :: forall i m o r r'. Monad m => (r -> r') -> Dual m r i o -> Dual m r' i o

#newtypeIso Source

newtypeIso :: forall a e m n. Monad m => Monoid e => Newtype n a => Dual m e a n

#runReporter Source

runReporter :: forall r i m o. Dual m r i o -> (i -> m (R r o))

#runSerializer Source

runSerializer :: forall i o m r. Dual m r i o -> (o -> i /\ r)