-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Simple system for generating code. -- -- Simple system for generating code. @package code-builder @version 0.1.3 module Code.Build -- | Representation of code, each string represents a line newtype Code Code :: [String] -> Code unCode :: Code -> [String] showCode :: Code -> String -- | Type class for lifting data structures into code class Codeable a code :: Codeable a => a -> Code class CodeList a codeList :: CodeList a => a -> [Code] noCode :: Code line :: Code isNull :: Codeable a => a -> Bool numLines :: CodeList a => a -> Int singleLine :: CodeList a => a -> Bool indent :: Codeable a => Int -> a -> Code surround :: Codeable a => String -> String -> a -> Code parenthesis :: Codeable a => a -> Code accolades :: Codeable a => a -> Code square :: Codeable a => a -> Code align :: Codeable a => a -> Code codeWidth :: Codeable a => a -> Int codeLines :: Codeable a => a -> [Code] many :: Codeable a => a -> Code mkSequence :: Codeable a => [a] -> Code mkStack :: Codeable a => [a] -> Code interleave :: (Codeable a, CodeList l) => a -> l -> Code -- | Join two blocks line by line, in the way of inner join, so both lines -- have to be present. (|><|) :: (Codeable a, Codeable b) => a -> b -> Code -- | Join two blocks line by line, in the way of outer join, so both -- missing lines are discarded. (><) :: (Codeable a, Codeable b) => a -> b -> Code -- | Left outer-join (|><) :: (Codeable a, Codeable b) => a -> b -> Code -- | Right outer-join (><|) :: (Codeable a, Codeable b) => a -> b -> Code -- | Sequencing. Place the second block after the last line of the first -- block. Aligns the second block (<+>) :: (Codeable a, Codeable b) => a -> b -> Code -- | Same as ++ but with space (<++>) :: (Codeable a, Codeable b) => a -> b -> Code -- | Place the second block after the last line of the first block. Aligns -- the second block (<+|) :: (Codeable a, Codeable b) => a -> b -> Code -- | Combination of join and sequence. The code blocks in the second -- argument are sequenced with the first argument. (|>+<|) :: (Codeable a, CodeList b) => a -> b -> Code -- | Place two pieces of code under each other (<->) :: (Codeable a, Codeable b) => a -> b -> Code instance [overlap ok] Codeable a => CodeList [a] instance [overlap ok] Codeable a => CodeList a instance [overlap ok] Show a => Codeable a instance [overlap ok] Codeable a => Codeable (Maybe a) instance [overlap ok] Codeable String instance [overlap ok] Codeable Code module Code.Build.Haskell record :: [(String, Code)] -> Code block :: CodeList a => a -> Code hsModule :: CodeList a => String -> a -> Code hsType :: [String] -> String hsDecl :: Codeable a => String -> [String] -> a -> Code function :: String -> String -> Code hsLet :: (CodeList a, Codeable b) => a -> b -> Code hsArray :: CodeList a => a -> Code hsTuple :: CodeList a => a -> Code hsData :: String -> [String] -> Code string :: Codeable a => a -> Code (.=.) :: Codeable b => String -> b -> Code module Code.Build.JavaScript jsObject :: [(String, Code)] -> Code statements :: CodeList a => a -> Code block :: CodeList a => a -> Code jsIf :: (Codeable a, CodeList b) => a -> b -> Code jsElse :: CodeList a => a -> Code for :: (Codeable a, CodeList b) => a -> b -> Code function :: CodeList a => [String] -> a -> Code functionDecl :: CodeList a => String -> [String] -> a -> Code call :: CodeList a => String -> a -> Code proc :: CodeList a => String -> a -> Code ret :: Codeable a => a -> Code string :: Codeable a => a -> Code new :: Codeable a => String -> a -> Code var :: Codeable a => String -> a -> Code (.=.) :: Codeable b => String -> b -> Code module Code.Build.PHP hashmap :: [(String, Code)] -> Code statements :: CodeList a => a -> Code block :: CodeList a => a -> Code phpIf :: (Codeable a, CodeList b) => a -> b -> Code phpElse :: CodeList a => a -> Code for :: (Codeable a, CodeList b) => a -> b -> Code php :: CodeList a => a -> Code phpClass :: CodeList a => String -> a -> Code protected :: Codeable a => String -> a -> Code function :: CodeList a => [String] -> a -> Code functionDecl :: CodeList a => String -> [String] -> a -> Code call :: CodeList a => String -> a -> Code proc :: CodeList a => String -> a -> Code ret :: Codeable a => a -> Code string :: Codeable a => a -> Code new :: Codeable a => String -> a -> Code var :: Codeable a => String -> a -> Code (.=.) :: Codeable b => String -> b -> Code module Code.Build.Ruby hashmap :: [(String, Code)] -> Code statements :: CodeList a => a -> Code block :: CodeList a => a -> Code endBlock :: CodeList a => a -> Code rbIf :: (Codeable a, CodeList b) => a -> b -> Code rbIf_ :: (Codeable a, CodeList b) => a -> b -> Code rbElsIf :: (Codeable a, CodeList b) => a -> b -> Code rbElsIf_ :: (Codeable a, CodeList b) => a -> b -> Code rbElse :: CodeList b => b -> Code rbModule :: CodeList a => String -> a -> Code rbClass :: CodeList a => String -> a -> Code require :: String -> Code function :: CodeList a => String -> [String] -> a -> Code call :: CodeList a => String -> a -> Code ret :: Codeable a => a -> Code string :: Codeable a => a -> Code new :: CodeList a => String -> a -> Code (.=.) :: Codeable b => String -> b -> Code