Safe Haskell | Safe |
---|---|
Language | Haskell2010 |
Documentation
s :: repr h b -> repr (a, h) b Source #
abs :: repr (a, h) b -> repr h (a -> b) Source #
app :: repr h (a -> b) -> repr h a -> repr h b Source #
hoas :: (repr (a, h) a -> repr (a, h) b) -> repr h (a -> b) Source #
We use a variant of HOAS so it can be compile to DBI, which is more compositional (No Negative Occurence). It require explicit lifting of variables. Use lam to do automatic lifting of variables.
com :: repr h ((b -> c) -> (a -> b) -> a -> c) Source #
flip :: repr h ((a -> b -> c) -> b -> a -> c) Source #
id :: repr h (a -> a) Source #
const :: repr h (a -> b -> a) Source #
scomb :: repr h ((a -> b -> c) -> (a -> b) -> a -> c) Source #
return :: Applicative k r a => r h (x -> a x) Source #
bimap2 :: (BiFunctor * repr p, DBI repr) => repr h (a -> b) -> repr h (c -> d) -> repr h (p a c -> p b d) Source #
bimap3 :: (BiFunctor * repr p, DBI repr) => repr h (a -> b) -> repr h (c -> d) -> repr h (p a c) -> repr h (p b d) Source #
class Functor r a => Applicative r a where Source #
class (DBI r, Applicative r m) => Monad r m where Source #
app3 :: DBI repr => repr h (a2 -> a1 -> a -> b) -> repr h a2 -> repr h a1 -> repr h a -> repr h b Source #
lam :: forall repr a b h. DBI repr => ((forall k. NT repr (a, h) k => repr k a) -> repr (a, h) b) -> repr h (a -> b) Source #
lam2 :: forall repr a b c h. DBI repr => ((forall k. NT repr (a, h) k => repr k a) -> (forall k. NT repr (b, (a, h)) k => repr k b) -> repr (b, (a, h)) c) -> repr h (a -> b -> c) Source #
lam3 :: (NT * * repr (a, (b1, (a1, h))) k, NT * * repr (b1, (a1, h)) k1, NT * * repr (a1, h) k2, DBI repr) => (repr k2 a1 -> repr k1 b1 -> repr k a -> repr (a, (b1, (a1, h))) b) -> repr h (a1 -> b1 -> a -> b) Source #
module DDF.ImportMeta