+ (join "_") . tail . (split "_") $ strip_leading_underscore fieldname
+
+
+-- | An expression field name creator. \"Expression\" in the context
+-- of Groundhog means a constructor/type that you can use in queries
+-- and update statement. We take the field name (from a record type)
+-- as an argument and capitalize the first letter of each word.
+--
+-- Leading underscores are ignored, as those are used to hide unused
+-- field warnings.
+--
+-- ==== __Examples__
+--
+-- >>> tsn_expr_field_namer "herp" "derp" 0 "foo_bar" 0
+-- "Foo_Bar"
+--
+-- >>> tsn_expr_field_namer "herp" "derp" 0 "_foo_bar" 0
+-- "Foo_Bar"
+--
+tsn_expr_field_namer :: String -> String -> Int -> String -> Int -> String
+tsn_expr_field_namer _ _ _ fieldname _ =
+ (join "_") . (map capitalize) . (split "_") $
+ strip_leading_underscore fieldname
+ where
+ capitalize [] = []
+ capitalize (c:cs) = (toUpper c : cs)
+