diff options
author | defanor <defanor@uberspace.net> | 2016-11-25 06:35:55 +0300 |
---|---|---|
committer | defanor <defanor@uberspace.net> | 2016-11-25 06:35:55 +0300 |
commit | 4beea4536a36322e15665de74c96926f0cf5fe7b (patch) | |
tree | 3fbf95944351b0ceaf4c925715ee9bec4069fb7d /Example.hs |
Initial commit
Diffstat (limited to 'Example.hs')
-rw-r--r-- | Example.hs | 27 |
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])) |