{-|
    A QuasiQuoter for SystemFOmega, allowing arbitrary type application

    @[sfo| forall x. R x -> M x |] == quantify \"x\" (mono \"R\" /$ poly \"x\" /-> mono \"M\" /$ poly \"x\")@
-}
sfo :: TH.QuasiQuoter
sfo = mkqq "sfo" sfoexpr
-}
{-|
    A QuasiQuoter for SystemF, allowing quantification and poly types (lower case).

    @[sf| forall a b. a -> b |] == quantify \"a\" (quantify \"b\" (poly \"a\" \/-> poly \"b\"))@

-}
sf :: TH.QuasiQuoter
sf   = mkqq "sf" sfexpr

{
sf :: TH.QuasiQuoter
sf   = mkqq "sf" sfexpr
sf   = mkqq "sf" sfexpr