summaryrefslogtreecommitdiff
path: root/Example.hs
diff options
context:
space:
mode:
Diffstat (limited to 'Example.hs')
-rw-r--r--Example.hs27
1 files changed, 27 insertions, 0 deletions
diff --git a/Example.hs b/Example.hs
new file mode 100644
index 0000000..20cae00
--- /dev/null
+++ b/Example.hs
@@ -0,0 +1,27 @@
+{-# LANGUAGE TemplateHaskell #-}
+
+module Main where
+
+import Coalpit
+import Language.Haskell.TH
+import Data.List
+
+data Y = Foo Bool Int
+ | Bar Int
+ | Baz
+ deriving (Show)
+
+data X = X String (Maybe Int) (Maybe [Int]) Y Y String
+ deriving (Show)
+
+$(deriveArgs ''Y)
+$(deriveArgs ''X)
+
+main :: IO ()
+main = do
+ let val = X "test" Nothing (Just [1,2,3]) (Foo True 1) Baz "end"
+ args = toArgs val
+ print val
+ putStrLn $ intercalate " " args
+ print (fromArgs args :: (X, [String]))
+ print (fromArgs (args ++ ["additional", "args"]) :: (X, [String]))