packages feed

dino 0.1.2 → 0.1.3

raw patch · 3 files changed

+8/−7 lines, 3 filesdep ~hashabledep ~mtldep ~textPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependency ranges changed: hashable, mtl, text, transformers

API changes (from Hackage documentation)

- Dino.Expression: instance (Dino.Expression.FieldExp e1, e1 Data.Type.Equality.~ e2, GHC.TypeLits.KnownSymbol f, GHC.Records.HasField f r a, Dino.Types.DinoType a) => GHC.OverloadedLabels.IsLabel f (Dino.Expression.Exp e1 r -> Dino.Expression.Exp e2 a)
- Dino.Expression: instance (f1 Data.Type.Equality.~ f2) => GHC.OverloadedLabels.IsLabel f1 (Dino.Expression.Field f2)
- Dino.Interpretation: instance GHC.Base.Monad e => Control.Monad.Reader.Class.MonadReader (Data.HashMap.Base.HashMap Data.Text.Internal.Text Dino.Types.Dinamic) (Dino.Interpretation.EvalEnv e)
+ Dino.Expression: instance (Dino.Expression.FieldExp e1, e1 GHC.Types.~ e2, GHC.TypeLits.KnownSymbol f, GHC.Records.HasField f r a, Dino.Types.DinoType a) => GHC.OverloadedLabels.IsLabel f (Dino.Expression.Exp e1 r -> Dino.Expression.Exp e2 a)
+ Dino.Expression: instance (f1 GHC.Types.~ f2) => GHC.OverloadedLabels.IsLabel f1 (Dino.Expression.Field f2)
+ Dino.Interpretation: instance GHC.Base.Monad e => Control.Monad.Reader.Class.MonadReader (Data.HashMap.Internal.HashMap Data.Text.Internal.Text Dino.Types.Dinamic) (Dino.Interpretation.EvalEnv e)
+ Dino.Prelude: class Monad m => MonadFail (m :: Type -> Type)
- Dino.Expression: Field :: Field
+ Dino.Expression: Field :: Field (f :: Symbol)
- Dino.Prelude: (!!) :: () => [a] -> Int -> a
+ Dino.Prelude: (!!) :: [a] -> Int -> a
- Dino.Prelude: ($!) :: () => (a -> b) -> a -> b
+ Dino.Prelude: ($!) :: forall (r :: RuntimeRep) a (b :: TYPE r). (a -> b) -> a -> b
- Dino.Prelude: ($) :: () => (a -> b) -> a -> b
+ Dino.Prelude: ($) :: forall (r :: RuntimeRep) a (b :: TYPE r). (a -> b) -> a -> b
- Dino.Prelude: (++) :: () => [a] -> [a] -> [a]
+ Dino.Prelude: (++) :: [a] -> [a] -> [a]
- Dino.Prelude: (.) :: () => (b -> c) -> (a -> b) -> a -> c
+ Dino.Prelude: (.) :: (b -> c) -> (a -> b) -> a -> c
- Dino.Prelude: asTypeOf :: () => a -> a -> a
+ Dino.Prelude: asTypeOf :: a -> a -> a
- Dino.Prelude: break :: () => (a -> Bool) -> [a] -> ([a], [a])
+ Dino.Prelude: break :: (a -> Bool) -> [a] -> ([a], [a])
- Dino.Prelude: class Hashable a
+ Dino.Prelude: class Eq a => Hashable a
- Dino.Prelude: const :: () => a -> b -> a
+ Dino.Prelude: const :: a -> b -> a
- Dino.Prelude: curry :: () => ((a, b) -> c) -> a -> b -> c
+ Dino.Prelude: curry :: ((a, b) -> c) -> a -> b -> c
- Dino.Prelude: cycle :: () => [a] -> [a]
+ Dino.Prelude: cycle :: [a] -> [a]
- Dino.Prelude: drop :: () => Int -> [a] -> [a]
+ Dino.Prelude: drop :: Int -> [a] -> [a]
- Dino.Prelude: dropWhile :: () => (a -> Bool) -> [a] -> [a]
+ Dino.Prelude: dropWhile :: (a -> Bool) -> [a] -> [a]
- Dino.Prelude: either :: () => (a -> c) -> (b -> c) -> Either a b -> c
+ Dino.Prelude: either :: (a -> c) -> (b -> c) -> Either a b -> c
- Dino.Prelude: error :: HasCallStack => [Char] -> a
+ Dino.Prelude: error :: forall (r :: RuntimeRep) (a :: TYPE r). HasCallStack => [Char] -> a
- Dino.Prelude: errorWithoutStackTrace :: () => [Char] -> a
+ Dino.Prelude: errorWithoutStackTrace :: forall (r :: RuntimeRep) (a :: TYPE r). [Char] -> a
- Dino.Prelude: fail :: Monad m => String -> m a
+ Dino.Prelude: fail :: MonadFail m => String -> m a
- Dino.Prelude: filter :: () => (a -> Bool) -> [a] -> [a]
+ Dino.Prelude: filter :: (a -> Bool) -> [a] -> [a]
- Dino.Prelude: flip :: () => (a -> b -> c) -> b -> a -> c
+ Dino.Prelude: flip :: (a -> b -> c) -> b -> a -> c
- Dino.Prelude: fst :: () => (a, b) -> a
+ Dino.Prelude: fst :: (a, b) -> a
- Dino.Prelude: head :: () => [a] -> a
+ Dino.Prelude: head :: [a] -> a
- Dino.Prelude: id :: () => a -> a
+ Dino.Prelude: id :: a -> a
- Dino.Prelude: infixl 6 -
+ Dino.Prelude: infixl 6 +
- Dino.Prelude: init :: () => [a] -> [a]
+ Dino.Prelude: init :: [a] -> [a]
- Dino.Prelude: ioError :: () => IOError -> IO a
+ Dino.Prelude: ioError :: IOError -> IO a
- Dino.Prelude: iterate :: () => (a -> a) -> a -> [a]
+ Dino.Prelude: iterate :: (a -> a) -> a -> [a]
- Dino.Prelude: last :: () => [a] -> a
+ Dino.Prelude: last :: [a] -> a
- Dino.Prelude: map :: () => (a -> b) -> [a] -> [b]
+ Dino.Prelude: map :: (a -> b) -> [a] -> [b]
- Dino.Prelude: readParen :: () => Bool -> ReadS a -> ReadS a
+ Dino.Prelude: readParen :: Bool -> ReadS a -> ReadS a
- Dino.Prelude: repeat :: () => a -> [a]
+ Dino.Prelude: repeat :: a -> [a]
- Dino.Prelude: replicate :: () => Int -> a -> [a]
+ Dino.Prelude: replicate :: Int -> a -> [a]
- Dino.Prelude: reverse :: () => [a] -> [a]
+ Dino.Prelude: reverse :: [a] -> [a]
- Dino.Prelude: scanl :: () => (b -> a -> b) -> b -> [a] -> [b]
+ Dino.Prelude: scanl :: (b -> a -> b) -> b -> [a] -> [b]
- Dino.Prelude: scanl1 :: () => (a -> a -> a) -> [a] -> [a]
+ Dino.Prelude: scanl1 :: (a -> a -> a) -> [a] -> [a]
- Dino.Prelude: scanr :: () => (a -> b -> b) -> b -> [a] -> [b]
+ Dino.Prelude: scanr :: (a -> b -> b) -> b -> [a] -> [b]
- Dino.Prelude: scanr1 :: () => (a -> a -> a) -> [a] -> [a]
+ Dino.Prelude: scanr1 :: (a -> a -> a) -> [a] -> [a]
- Dino.Prelude: seq :: () => a -> b -> b
+ Dino.Prelude: seq :: forall (r :: RuntimeRep) a (b :: TYPE r). a -> b -> b
- Dino.Prelude: snd :: () => (a, b) -> b
+ Dino.Prelude: snd :: (a, b) -> b
- Dino.Prelude: span :: () => (a -> Bool) -> [a] -> ([a], [a])
+ Dino.Prelude: span :: (a -> Bool) -> [a] -> ([a], [a])
- Dino.Prelude: splitAt :: () => Int -> [a] -> ([a], [a])
+ Dino.Prelude: splitAt :: Int -> [a] -> ([a], [a])
- Dino.Prelude: tail :: () => [a] -> [a]
+ Dino.Prelude: tail :: [a] -> [a]
- Dino.Prelude: take :: () => Int -> [a] -> [a]
+ Dino.Prelude: take :: Int -> [a] -> [a]
- Dino.Prelude: takeWhile :: () => (a -> Bool) -> [a] -> [a]
+ Dino.Prelude: takeWhile :: (a -> Bool) -> [a] -> [a]
- Dino.Prelude: uncurry :: () => (a -> b -> c) -> (a, b) -> c
+ Dino.Prelude: uncurry :: (a -> b -> c) -> (a, b) -> c
- Dino.Prelude: undefined :: HasCallStack => a
+ Dino.Prelude: undefined :: forall (r :: RuntimeRep) (a :: TYPE r). HasCallStack => a
- Dino.Prelude: until :: () => (a -> Bool) -> (a -> a) -> a -> a
+ Dino.Prelude: until :: (a -> Bool) -> (a -> a) -> a -> a
- Dino.Prelude: unzip :: () => [(a, b)] -> ([a], [b])
+ Dino.Prelude: unzip :: [(a, b)] -> ([a], [b])
- Dino.Prelude: unzip3 :: () => [(a, b, c)] -> ([a], [b], [c])
+ Dino.Prelude: unzip3 :: [(a, b, c)] -> ([a], [b], [c])
- Dino.Prelude: zip :: () => [a] -> [b] -> [(a, b)]
+ Dino.Prelude: zip :: [a] -> [b] -> [(a, b)]
- Dino.Prelude: zip3 :: () => [a] -> [b] -> [c] -> [(a, b, c)]
+ Dino.Prelude: zip3 :: [a] -> [b] -> [c] -> [(a, b, c)]
- Dino.Prelude: zipWith :: () => (a -> b -> c) -> [a] -> [b] -> [c]
+ Dino.Prelude: zipWith :: (a -> b -> c) -> [a] -> [b] -> [c]
- Dino.Prelude: zipWith3 :: () => (a -> b -> c -> d) -> [a] -> [b] -> [c] -> [d]
+ Dino.Prelude: zipWith3 :: (a -> b -> c -> d) -> [a] -> [b] -> [c] -> [d]
- Dino.Types: [OtherType] :: (BuiltIn a ~ 'False, DinoType a) => DinoTypeRep a
+ Dino.Types: [OtherType] :: (BuiltIn a ~ 'False, DinoType a) => DinoTypeRep a
- Dino.Types: dinoTypeRep :: (DinoType a, BuiltIn a ~ 'False) => DinoTypeRep a
+ Dino.Types: dinoTypeRep :: (DinoType a, BuiltIn a ~ 'False) => DinoTypeRep a

Files

dino.cabal view
@@ -1,5 +1,5 @@ name:                 dino-version:              0.1.2+version:              0.1.3 synopsis:             A convenient tagless EDSL description:          For more information, see the                       <https://github.com/emilaxelsson/dino/blob/master/README.md README>.@@ -35,11 +35,11 @@                         containers < 0.7,                         exceptions < 0.11,                         errors < 2.4,-                        hashable < 1.4,+                        hashable < 1.5,                         monad-loops < 0.5,-                        mtl < 2.3,-                        text < 1.3,-                        transformers < 0.6,+                        mtl < 2.4,+                        text < 2.1,+                        transformers < 0.7,                         tree-view < 0.6,                         unordered-containers < 0.3   hs-source-dirs:       src
examples/README.hs view
@@ -87,7 +87,7 @@ evalSafeDiv   :: (forall e. (ConstExp e, NumExp e, FracExp e, LogicExp e, CompareExp e) => Exp e a)   -> Maybe a-evalSafeDiv = fromSafeDiv . unExp+evalSafeDiv e = fromSafeDiv (unExp e)  exDiv1 :: (ConstExp e, NumExp e, FracExp e, LogicExp e, CompareExp e) => Exp e Double exDiv1 = 1+2/3
src/Dino/Interpretation.hs view
@@ -13,10 +13,11 @@ import Control.Exception (Exception, throw) import Control.Monad (foldM, unless) import Control.Monad.Catch (MonadThrow (..))-import Control.Monad.Except (ExceptT, MonadError (..))+import Control.Monad.Except (MonadError (..)) import Control.Monad.Identity (Identity (..)) import Control.Monad.Loops (dropWhileM) import Control.Monad.Reader (MonadReader (..), ReaderT (..))+import Control.Monad.Trans.Except (ExceptT) import Control.Monad.Writer (WriterT) import Data.Coerce (coerce) import Data.HashMap.Strict (HashMap)