packages feed

Hoed-0.3.0: tests/Generic/r2.hs

import Debug.Hoed.Pure

data D = D D | T
  deriving (Show)

instance Observable D where
  observer (D x) = send "D" $ return D << x
  observer T     = send "T" $ return T

f :: D -> Int
f = observe "f" f'
f' T     = 1
f' (D _) = 0

main = logO "r0" $ print (f (D (D (D T))))