punk@1: signature Trace where { punk@1: import ¶Counter®¶; punk@1: punk@1: import ¶FIFOF_®¶; punk@1: punk@1: import ¶FIFOF®¶; punk@1: punk@1: import ¶FIFO®¶; punk@1: punk@1: import ¶Inout®¶; punk@1: punk@1: import ¶List®¶; punk@1: punk@1: import ¶Clocks®¶; punk@1: punk@1: import ¶ListN®¶; punk@1: punk@1: import ¶PrimArray®¶; punk@1: punk@1: import ¶Vector®¶; punk@1: punk@1: import ¶Connectable®¶; punk@1: punk@1: import ¶GetPut®¶; punk@1: punk@1: import ¶ClientServer®¶; punk@1: punk@1: class (Trace.Traceable :: * -> *) item_t where { punk@1: Trace.traceTiny :: ¶Prelude®¶.¶String®¶ -> punk@1: ¶Prelude®¶.¶String®¶ -> item_t -> ¶Prelude®¶.¶Action®¶ {-# arg_names = [loc, traceTag, item] #-}; punk@1: Trace.traceFull :: ¶Prelude®¶.¶String®¶ -> punk@1: ¶Prelude®¶.¶String®¶ -> item_t -> ¶Prelude®¶.¶Action®¶ {-# arg_names = [loc, traceTag, item] #-} punk@1: }; punk@1: punk@1: instance Trace Trace.Traceable ¶Prelude®¶.¶String®¶; punk@1: punk@1: instance Trace Trace.Traceable (¶Prelude®¶.¶Bit®¶ n); punk@1: punk@1: Trace.traceGet :: (Trace.Traceable item_t) => punk@1: ¶Prelude®¶.¶String®¶ -> ¶Prelude®¶.¶String®¶ -> ¶GetPut®¶.¶Get®¶ item_t -> ¶GetPut®¶.¶Get®¶ item_t; punk@1: punk@1: Trace.tracePut :: (Trace.Traceable item_t) => punk@1: ¶Prelude®¶.¶String®¶ -> ¶Prelude®¶.¶String®¶ -> ¶GetPut®¶.¶Put®¶ item_t -> ¶GetPut®¶.¶Put®¶ item_t; punk@1: punk@1: Trace.traceClient :: (Trace.Traceable resp_t, Trace.Traceable req_t) => punk@1: ¶Prelude®¶.¶String®¶ -> punk@1: ¶Prelude®¶.¶String®¶ -> punk@1: ¶Prelude®¶.¶String®¶ -> punk@1: ¶ClientServer®¶.¶Client®¶ req_t resp_t -> ¶ClientServer®¶.¶Client®¶ req_t resp_t; punk@1: punk@1: Trace.traceServer :: (Trace.Traceable resp_t, Trace.Traceable req_t) => punk@1: ¶Prelude®¶.¶String®¶ -> punk@1: ¶Prelude®¶.¶String®¶ -> punk@1: ¶Prelude®¶.¶String®¶ -> punk@1: ¶ClientServer®¶.¶Server®¶ req_t resp_t -> ¶ClientServer®¶.¶Server®¶ req_t resp_t punk@1: }