io-sim-0.2.0.0: A pure simulator for monadic concurrency with STM
Safe HaskellSafe-Inferred
LanguageHaskell2010

Data.List.Trace

Synopsis

Documentation

data Trace a b Source #

A cons list with polymorphic nil, thus an octopus.

  • Trace Void a is an infinite stream
  • Trace () a is isomorphic to [a]

Usually used with a being a non empty sum type.

Constructors

Cons b (Trace a b) 
Nil a 

Instances

Instances details
Bitraversable Trace Source # 
Instance details

Defined in Data.List.Trace

Methods

bitraverseApplicative f ⇒ (a → f c) → (b → f d) → Trace a b → f (Trace c d) Source #

Bifoldable Trace Source # 
Instance details

Defined in Data.List.Trace

Methods

bifoldMonoid m ⇒ Trace m m → m Source #

bifoldMapMonoid m ⇒ (a → m) → (b → m) → Trace a b → m Source #

bifoldr ∷ (a → c → c) → (b → c → c) → c → Trace a b → c Source #

bifoldl ∷ (c → a → c) → (c → b → c) → c → Trace a b → c Source #

Bifunctor Trace Source # 
Instance details

Defined in Data.List.Trace

Methods

bimap ∷ (a → b) → (c → d) → Trace a c → Trace b d Source #

first ∷ (a → b) → Trace a c → Trace b c Source #

second ∷ (b → c) → Trace a b → Trace a c Source #

Monoid a ⇒ Monad (Trace a) Source # 
Instance details

Defined in Data.List.Trace

Methods

(>>=)Trace a a0 → (a0 → Trace a b) → Trace a b Source #

(>>)Trace a a0 → Trace a b → Trace a b Source #

return ∷ a0 → Trace a a0 Source #

Functor (Trace a) Source # 
Instance details

Defined in Data.List.Trace

Methods

fmap ∷ (a0 → b) → Trace a a0 → Trace a b Source #

(<$) ∷ a0 → Trace a b → Trace a a0 Source #

Monoid a ⇒ MonadFix (Trace a) Source # 
Instance details

Defined in Data.List.Trace

Methods

mfix ∷ (a0 → Trace a a0) → Trace a a0 Source #

Monoid a ⇒ MonadFail (Trace a) Source # 
Instance details

Defined in Data.List.Trace

Methods

failStringTrace a a0 Source #

Monoid a ⇒ Applicative (Trace a) Source # 
Instance details

Defined in Data.List.Trace

Methods

pure ∷ a0 → Trace a a0 Source #

(<*>)Trace a (a0 → b) → Trace a a0 → Trace a b Source #

liftA2 ∷ (a0 → b → c) → Trace a a0 → Trace a b → Trace a c Source #

(*>)Trace a a0 → Trace a b → Trace a b Source #

(<*)Trace a a0 → Trace a b → Trace a a0 Source #

Eq a ⇒ Eq1 (Trace a) Source # 
Instance details

Defined in Data.List.Trace

Methods

liftEq ∷ (a0 → b → Bool) → Trace a a0 → Trace a b → Bool Source #

Ord a ⇒ Ord1 (Trace a) Source # 
Instance details

Defined in Data.List.Trace

Methods

liftCompare ∷ (a0 → b → Ordering) → Trace a a0 → Trace a b → Ordering Source #

Show a ⇒ Show1 (Trace a) Source # 
Instance details

Defined in Data.List.Trace

Methods

liftShowsPrec ∷ (Int → a0 → ShowS) → ([a0] → ShowS) → IntTrace a a0 → ShowS Source #

liftShowList ∷ (Int → a0 → ShowS) → ([a0] → ShowS) → [Trace a a0] → ShowS Source #

Monoid a ⇒ Alternative (Trace a) Source # 
Instance details

Defined in Data.List.Trace

Methods

emptyTrace a a0 Source #

(<|>)Trace a a0 → Trace a a0 → Trace a a0 Source #

someTrace a a0 → Trace a [a0] Source #

manyTrace a a0 → Trace a [a0] Source #

Monoid a ⇒ MonadPlus (Trace a) Source # 
Instance details

Defined in Data.List.Trace

Methods

mzeroTrace a a0 Source #

mplusTrace a a0 → Trace a a0 → Trace a a0 Source #

(Eq b, Eq a) ⇒ Eq (Trace a b) Source # 
Instance details

Defined in Data.List.Trace

Methods

(==)Trace a b → Trace a b → Bool Source #

(/=)Trace a b → Trace a b → Bool Source #

(Ord b, Ord a) ⇒ Ord (Trace a b) Source # 
Instance details

Defined in Data.List.Trace

Methods

compareTrace a b → Trace a b → Ordering Source #

(<)Trace a b → Trace a b → Bool Source #

(<=)Trace a b → Trace a b → Bool Source #

(>)Trace a b → Trace a b → Bool Source #

(>=)Trace a b → Trace a b → Bool Source #

maxTrace a b → Trace a b → Trace a b Source #

minTrace a b → Trace a b → Trace a b Source #

(Show b, Show a) ⇒ Show (Trace a b) Source # 
Instance details

Defined in Data.List.Trace

Methods

showsPrecIntTrace a b → ShowS Source #

showTrace a b → String Source #

showList ∷ [Trace a b] → ShowS Source #

Semigroup a ⇒ Semigroup (Trace a b) Source # 
Instance details

Defined in Data.List.Trace

Methods

(<>)Trace a b → Trace a b → Trace a b Source #

sconcatNonEmpty (Trace a b) → Trace a b Source #

stimesIntegral b0 ⇒ b0 → Trace a b → Trace a b Source #

Monoid a ⇒ Monoid (Trace a b) Source # 
Instance details

Defined in Data.List.Trace

Methods

memptyTrace a b Source #

mappendTrace a b → Trace a b → Trace a b Source #

mconcat ∷ [Trace a b] → Trace a b Source #

ppTrace ∷ (a → String) → (b → String) → Trace a b → String Source #

Pretty print an Trace.

toListTrace a b → [b] Source #

fromList ∷ a → [b] → Trace a b Source #

headTrace a b → b Source #

tailTrace a b → Trace a b Source #

filter ∷ (b → Bool) → Trace a b → Trace a b Source #

lengthTrace a b → Int Source #