Popularity
3.2
Declining
Activity
0.0
Stable
3
2
1

Monthly Downloads: 1
Programming language: Haskell
License: MIT License
Tags: Debug    
Latest version: v0.2.0

debug-trace-var alternatives and similar packages

Based on the "Debug" category.
Alternatively, view debug-trace-var alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of debug-trace-var or a related project?

Add another 'Debug' Package

README

Hackage Stackage LTS

debug-trace-var

When writing print debug, we often write.

import Debug.Trace main :: IO () main = do let a = 1 traceIO $ "a = " ++ show a 

This is troublesome to describe the name of the variable twice.

With debug-trace-var you write variables only once.

{-# LANGUAGE QuasiQuotes #-} import Debug.Trace.Var main :: IO () main = do let a = 1 [traceVarIO|a|] 

or

{-# LANGUAGE TemplateHaskell #-} import Debug.Trace.Var main :: IO () main = let a = 1 :: Int in $(traceMTH 'a) 

You may avoid name quotes that are confusing with character literals, Or often it may be to avoid the QuasiQuotes to destroy the syntax highlight of the text editor.

Example

{-# LANGUAGE QuasiQuotes #-} {-# LANGUAGE TemplateHaskell #-} import Debug.Trace.Var -- > a -- n = 1 -- s = "あ" a :: IO () a = let n = 1 s = "あ" in [traceVar|n|] ([traceVar|s|] return ()) -- > b -- "n = 1 -- n = 1" b :: String b = let n = 1 in [traceVarId|n|] -- > c -- n = 344 c :: IO () c = let n = 344 in [traceStackVar|n|] (return ()) -- > d -- n = 344 -- n = 344 d :: IO () d = do let n = 344 [traceVarIO|n|] [traceVarIO|n|] -- > e -- n = 344 e :: IO () e = do let n = 344 [traceVarM|n|] -- > f -- n = 344 f :: IO () f = let n = 344 in $(traceMTH 'n) 

Motivation

I wanted to use Template Haskell.

One point advice

You can use ndmitchell/debug: Haskell library for debugging