module Data.EventList.Relative.MixedTime
(consBody, consTime, (/.), (./), empty,
viewTimeL, viewBodyL,
switchTimeL, switchBodyL,
mapTimeL, mapTimeHead, mapTimeTail,
mapBodyL, mapBodyHead, mapBodyTail,
) where
import qualified Data.EventList.Relative.BodyTimePrivate as BodyTimePriv
import Data.EventList.Relative.TimeTimePrivate as TimeTimePriv
import qualified Data.EventList.Relative.BodyTime as BodyTimeList
import qualified Data.EventList.Relative.TimeTime as TimeTimeList
import Data.EventList.Relative.BodyTime (empty)
import qualified Data.AlternatingList.List.Mixed as Mixed
import Data.Tuple.HT (mapSnd, )
import Prelude hiding
(null, foldr, map, filter, concat, cycle, sequence, sequence_, mapM, mapM_)
infixr 5 /. , ./
(./) :: body -> TimeTimeList.T time body -> BodyTimeList.T time body
./ :: forall body time. body -> T time body -> T time body
(./) = body -> T time body -> T time body
forall body time. body -> T time body -> T time body
consBody
(/.) :: time -> BodyTimeList.T time body -> TimeTimeList.T time body
/. :: forall time body. time -> T time body -> T time body
(/.) = time -> T time body -> T time body
forall time body. time -> T time body -> T time body
consTime
mapBodyL ::
(body -> body, TimeTimeList.T time0 body -> TimeTimeList.T time1 body) ->
BodyTimeList.T time0 body -> BodyTimeList.T time1 body
mapBodyL :: forall body time0 time1.
(body -> body, T time0 body -> T time1 body)
-> T time0 body -> T time1 body
mapBodyL = (T body time0 -> T body time1) -> T time0 body -> T time1 body
forall body0 time0 body1 time1.
(T body0 time0 -> T body1 time1) -> T time0 body0 -> T time1 body1
BodyTimePriv.lift ((T body time0 -> T body time1) -> T time0 body -> T time1 body)
-> ((body -> body, T time0 body -> T time1 body)
-> T body time0 -> T body time1)
-> (body -> body, T time0 body -> T time1 body)
-> T time0 body
-> T time1 body
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (body -> body, T body time0 -> T body time1)
-> T body time0 -> T body time1
forall a b0 b1. (a -> a, T a b0 -> T a b1) -> T a b0 -> T a b1
Mixed.mapFirstL ((body -> body, T body time0 -> T body time1)
-> T body time0 -> T body time1)
-> ((body -> body, T time0 body -> T time1 body)
-> (body -> body, T body time0 -> T body time1))
-> (body -> body, T time0 body -> T time1 body)
-> T body time0
-> T body time1
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ((T time0 body -> T time1 body) -> T body time0 -> T body time1)
-> (body -> body, T time0 body -> T time1 body)
-> (body -> body, T body time0 -> T body time1)
forall b c a. (b -> c) -> (a, b) -> (a, c)
mapSnd (T time0 body -> T time1 body) -> T body time0 -> T body time1
forall time0 body0 time1 body1.
(T time0 body0 -> T time1 body1) -> T body0 time0 -> T body1 time1
TimeTimePriv.unlift
mapBodyHead ::
(body -> body) ->
BodyTimeList.T time body -> BodyTimeList.T time body
mapBodyHead :: forall body time. (body -> body) -> T time body -> T time body
mapBodyHead = (T body time -> T body time) -> T time body -> T time body
forall body0 time0 body1 time1.
(T body0 time0 -> T body1 time1) -> T time0 body0 -> T time1 body1
BodyTimePriv.lift ((T body time -> T body time) -> T time body -> T time body)
-> ((body -> body) -> T body time -> T body time)
-> (body -> body)
-> T time body
-> T time body
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (body -> body) -> T body time -> T body time
forall a b. (a -> a) -> T a b -> T a b
Mixed.mapFirstHead
mapBodyTail ::
(TimeTimeList.T time0 body -> TimeTimeList.T time1 body) ->
BodyTimeList.T time0 body -> BodyTimeList.T time1 body
mapBodyTail :: forall time0 body time1.
(T time0 body -> T time1 body) -> T time0 body -> T time1 body
mapBodyTail = (T body time0 -> T body time1) -> T time0 body -> T time1 body
forall body0 time0 body1 time1.
(T body0 time0 -> T body1 time1) -> T time0 body0 -> T time1 body1
BodyTimePriv.lift ((T body time0 -> T body time1) -> T time0 body -> T time1 body)
-> ((T time0 body -> T time1 body) -> T body time0 -> T body time1)
-> (T time0 body -> T time1 body)
-> T time0 body
-> T time1 body
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (T body time0 -> T body time1) -> T body time0 -> T body time1
forall a b0 b1. (T a b0 -> T a b1) -> T a b0 -> T a b1
Mixed.mapFirstTail ((T body time0 -> T body time1) -> T body time0 -> T body time1)
-> ((T time0 body -> T time1 body) -> T body time0 -> T body time1)
-> (T time0 body -> T time1 body)
-> T body time0
-> T body time1
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (T time0 body -> T time1 body) -> T body time0 -> T body time1
forall time0 body0 time1 body1.
(T time0 body0 -> T time1 body1) -> T body0 time0 -> T body1 time1
TimeTimePriv.unlift