diff --git a/simple-nix.cabal b/simple-nix.cabal
--- a/simple-nix.cabal
+++ b/simple-nix.cabal
@@ -2,7 +2,7 @@
 -- documentation, see http://haskell.org/cabal/users-guide/
 
 name:                simple-nix
-version:             0.1.0.3
+version:             0.1.0.4
 synopsis:            Simple parsing/pretty printing for Nix expressions
 -- description:
 homepage:            https://github.com/adnelson/simple-nix
@@ -19,7 +19,6 @@
 library
   exposed-modules:     Nix, Nix.Expr, Nix.Parser, Nix.LicenseType
   other-modules:       Nix.Common
-  -- other-extensions:
   build-depends:       base >=4.8 && <4.9
                      , classy-prelude
                      , text
@@ -31,4 +30,22 @@
                      , text-render >=0.1.0.2
                      , system-filepath
   hs-source-dirs:      src
+  default-language:    Haskell2010
+
+test-suite spec
+  type:                exitcode-stdio-1.0
+  main-is:             Spec.hs
+  build-depends:       base >=4.8 && <4.9
+                     , classy-prelude
+                     , text
+                     , mtl
+                     , unordered-containers
+                     , parsec
+                     , MissingH
+                     , error-list
+                     , text-render >=0.1.0.2
+                     , system-filepath
+                     , hspec
+                     , hspec-expectations
+  hs-source-dirs:      src, test
   default-language:    Haskell2010
diff --git a/src/Nix/Expr.hs b/src/Nix/Expr.hs
--- a/src/Nix/Expr.hs
+++ b/src/Nix/Expr.hs
@@ -51,13 +51,25 @@
   fromString = Plain . fromString
 
 instance IsString NixExpr where
-  fromString = OneLineString . fromString
+  fromString = Var . fromString
 
 (=$=) :: Name -> NixExpr -> NixAssign
 k =$= v = Assign [Plain k] v
 
 str :: Text -> NixExpr
 str = OneLineString . Plain
+
+dot :: NixExpr -> [NixString] -> NixExpr
+dot e pth = Dot e pth Nothing
+
+simpleKwargs :: [Name] -> FuncArgs
+simpleKwargs ns = Kwargs (H.fromList $ map (\n -> (n, Nothing)) ns) False Nothing
+
+simpleSet :: [(Name, NixExpr)] -> NixExpr
+simpleSet = Set False . map (uncurry (=$=))
+
+simpleSetRec :: [(Name, NixExpr)] -> NixExpr
+simpleSetRec = Set True . map (uncurry (=$=))
 
 -- | Shortcut for a simple kwarg set.
 toKwargs :: [(Name, Maybe NixExpr)] -> FuncArgs
diff --git a/test/Spec.hs b/test/Spec.hs
new file mode 100644
--- /dev/null
+++ b/test/Spec.hs
@@ -0,0 +1,1 @@
+{-# OPTIONS_GHC -F -pgmF hspec-discover #-}
