module Data.Managed.Probe where

import Data.Data (TypeRep)
import Data.Managed.Encoding

data Probe e =
  Probe
    { Probe e -> [In e] -> IO (Out e)
call :: [In e] -> IO (Out e)
    , Probe e -> TypeRep
typeRep :: TypeRep
    }

instance Show (Probe e) where
  show :: Probe e -> String
show Probe e
p = String
"<Probe> :: " String -> ShowS
forall a. [a] -> [a] -> [a]
++ TypeRep -> String
forall a. Show a => a -> String
show (Probe e -> TypeRep
forall e. Probe e -> TypeRep
typeRep Probe e
p)