Browse files


  • Loading branch information...
bergmark committed Jan 2, 2013
1 parent ac03264 commit 70ed55236c3ae09e9aacf594803b6f258866bddf
Showing with 40 additions and 2 deletions.
  1. +37 −0
  2. +1 −0 fay-uri.cabal
  3. +2 −2 src/Language/Fay/Uri.hs
@@ -0,0 +1,37 @@
+This is a thin persistent FFI layer for using
+[jsUri]( with
+See the source code for comments on the implementation, names are kept
+similar to what jsUri uses. Hopefully it's easy to understand even if
+you haven't used jsUri before. The argument order is changed to be
+more haskelly, such as always putting the Uri as the last argument and
+not combining setting and removal functions. Any other changes are
+documented in the source.
+Since jsUri is a small library fay-uri also serves as a good example
+on how to write FFI bindings in Fay.
+To use this with fay, cabal install the package which will put the
+source files in fay ~/.cabal/share/fay-uri- You can then
+compile with fay using
+fay --include=~/.cabal/share/fay-uri- MyFile.hs
+import Language.Fay.Prelude
+import Language.Fay.Uri
+main :: Fay ()
+main = putStrLn . removePath . withProtocol "https" =<< currentUri
@@ -12,6 +12,7 @@ category: Web
build-type: Simple
cabal-version: >=1.8
+-- This is needed to place the source files in ~/.cabal/share so that we can use fay --include to use the file.
@@ -3,8 +3,8 @@
module Language.Fay.Uri where
-import Language.Fay.FFI
-import Language.Fay.Prelude
+import Language.Fay.FFI
+import Language.Fay.Prelude
-- Creation and conversion

0 comments on commit 70ed552

Please sign in to comment.