diff options
Diffstat (limited to 'Runnable.hs')
-rw-r--r-- | Runnable.hs | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/Runnable.hs b/Runnable.hs index c51d173..bc78198 100644 --- a/Runnable.hs +++ b/Runnable.hs @@ -27,13 +27,16 @@ import Text.ParserCombinators.ReadPrec import Config (runnableTypes) import Commands -data Runnable = forall r . (Exec r, Read r) => Run r +data Runnable = forall r . (Exec r, Read r, Show r) => Run r instance Exec Runnable where - run (Run a) = run a - rate (Run a) = rate a + start (Run a) = start a + rate (Run a) = rate a alias (Run a) = alias a +instance Show Runnable where + show (Run x) = show x + instance Read Runnable where readPrec = readRunnable @@ -44,7 +47,7 @@ class ReadAsAnyOf ts ex where instance ReadAsAnyOf () ex where readAsAnyOf ~() = mzero -instance (Read t, Exec t, ReadAsAnyOf ts Runnable) => ReadAsAnyOf (t,ts) Runnable where +instance (Show t, Read t, Exec t, ReadAsAnyOf ts Runnable) => ReadAsAnyOf (t,ts) Runnable where readAsAnyOf ~(t,ts) = r t `mplus` readAsAnyOf ts where r ty = do { m <- readPrec; return (Run (m `asTypeOf` ty)) } |