dhall 1.18.0 → 1.19.0
raw patch · 1123 files changed
+5502/−1851 lines, 1123 filesdep +uri-encodedep ~optparse-applicativePVP ok
version bump matches the API change (PVP)
Dependencies added: uri-encode
Dependency ranges changed: optparse-applicative
API changes (from Hackage documentation)
- Dhall: instance Dhall.Inject Data.Scientific.Scientific
- Dhall: instance Dhall.Inject a => Dhall.Inject (GHC.Base.Maybe a)
- Dhall: instance Dhall.Interpret a => Dhall.Interpret (GHC.Base.Maybe a)
- Dhall: instance GHC.Exception.Exception Dhall.InvalidType
- Dhall.Binary: V_3_0_0 :: StandardVersion
- Dhall.Binary: instance GHC.Exception.Exception Dhall.Binary.DecodingFailure
- Dhall.Import: instance GHC.Exception.Exception Dhall.Import.CannotImportHTTPURL
- Dhall.Import: instance GHC.Exception.Exception Dhall.Import.Cycle
- Dhall.Import: instance GHC.Exception.Exception Dhall.Import.HashMismatch
- Dhall.Import: instance GHC.Exception.Exception Dhall.Import.ImportResolutionDisabled
- Dhall.Import: instance GHC.Exception.Exception Dhall.Import.MissingEnvironmentVariable
- Dhall.Import: instance GHC.Exception.Exception Dhall.Import.MissingFile
- Dhall.Import: instance GHC.Exception.Exception Dhall.Import.MissingImports
- Dhall.Import: instance GHC.Exception.Exception Dhall.Import.ReferentiallyOpaque
- Dhall.Import: instance GHC.Exception.Exception e => GHC.Exception.Exception (Dhall.Import.Imported e)
- Dhall.Parser: instance GHC.Exception.Exception Dhall.Parser.ParseError
- Dhall.TypeCheck: NotARecord :: Text -> (Expr s a) -> (Expr s a) -> TypeMessage s a
- Dhall.TypeCheck: instance (GHC.Classes.Eq a, Data.Text.Prettyprint.Doc.Internal.Pretty s, Data.Text.Prettyprint.Doc.Internal.Pretty a, Data.Typeable.Internal.Typeable s, Data.Typeable.Internal.Typeable a) => GHC.Exception.Exception (Dhall.TypeCheck.DetailedTypeError s a)
- Dhall.TypeCheck: instance (GHC.Classes.Eq a, Data.Text.Prettyprint.Doc.Internal.Pretty s, Data.Text.Prettyprint.Doc.Internal.Pretty a, Data.Typeable.Internal.Typeable s, Data.Typeable.Internal.Typeable a) => GHC.Exception.Exception (Dhall.TypeCheck.TypeError s a)
+ Dhall: instance Dhall.Inject a => Dhall.Inject (GHC.Maybe.Maybe a)
+ Dhall: instance Dhall.Interpret a => Dhall.Interpret (GHC.Maybe.Maybe a)
+ Dhall: instance GHC.Exception.Type.Exception Dhall.InvalidType
+ Dhall.Binary: V_4_0_0 :: StandardVersion
+ Dhall.Binary: instance GHC.Exception.Type.Exception Dhall.Binary.DecodingFailure
+ Dhall.Core: Binding :: Text -> Maybe (Expr s a) -> Expr s a -> Binding s a
+ Dhall.Core: [annotation] :: Binding s a -> Maybe (Expr s a)
+ Dhall.Core: [value] :: Binding s a -> Expr s a
+ Dhall.Core: [variable] :: Binding s a -> Text
+ Dhall.Core: data Binding s a
+ Dhall.Core: instance (Data.Data.Data s, Data.Data.Data a) => Data.Data.Data (Dhall.Core.Binding s a)
+ Dhall.Core: instance (GHC.Classes.Eq s, GHC.Classes.Eq a) => GHC.Classes.Eq (Dhall.Core.Binding s a)
+ Dhall.Core: instance (GHC.Show.Show s, GHC.Show.Show a) => GHC.Show.Show (Dhall.Core.Binding s a)
+ Dhall.Core: instance Data.Bifunctor.Bifunctor Dhall.Core.Binding
+ Dhall.Core: instance Data.Foldable.Foldable (Dhall.Core.Binding s)
+ Dhall.Core: instance Data.Traversable.Traversable (Dhall.Core.Binding s)
+ Dhall.Core: instance GHC.Base.Functor (Dhall.Core.Binding s)
+ Dhall.Core: instance GHC.Generics.Generic (Dhall.Core.Binding s a)
+ Dhall.Core: normalizeWithM :: (Eq a, Monad m) => NormalizerM m a -> Expr s a -> m (Expr t a)
+ Dhall.Core: pathCharacter :: Char -> Bool
+ Dhall.Core: subExpressions :: Applicative f => (Expr s a -> f (Expr s a)) -> Expr s a -> f (Expr s a)
+ Dhall.Core: type NormalizerM m a = forall s. Expr s a -> m (Maybe (Expr s a))
+ Dhall.Import: instance GHC.Exception.Type.Exception Dhall.Import.CannotImportHTTPURL
+ Dhall.Import: instance GHC.Exception.Type.Exception Dhall.Import.Cycle
+ Dhall.Import: instance GHC.Exception.Type.Exception Dhall.Import.HashMismatch
+ Dhall.Import: instance GHC.Exception.Type.Exception Dhall.Import.ImportResolutionDisabled
+ Dhall.Import: instance GHC.Exception.Type.Exception Dhall.Import.MissingEnvironmentVariable
+ Dhall.Import: instance GHC.Exception.Type.Exception Dhall.Import.MissingFile
+ Dhall.Import: instance GHC.Exception.Type.Exception Dhall.Import.MissingImports
+ Dhall.Import: instance GHC.Exception.Type.Exception Dhall.Import.ReferentiallyOpaque
+ Dhall.Import: instance GHC.Exception.Type.Exception e => GHC.Exception.Type.Exception (Dhall.Import.Imported e)
+ Dhall.Parser: instance GHC.Exception.Type.Exception Dhall.Parser.ParseError
+ Dhall.Set: Set :: Set a -> Seq a -> Set a
+ Dhall.Set: append :: Ord a => a -> Set a -> Set a
+ Dhall.Set: data Set a
+ Dhall.Set: difference :: Ord a => Set a -> Set a -> [a]
+ Dhall.Set: empty :: Set a
+ Dhall.Set: fromList :: Ord a => [a] -> Set a
+ Dhall.Set: instance (Data.Data.Data a, GHC.Classes.Ord a) => Data.Data.Data (Dhall.Set.Set a)
+ Dhall.Set: instance Data.Foldable.Foldable Dhall.Set.Set
+ Dhall.Set: instance GHC.Classes.Eq a => GHC.Classes.Eq (Dhall.Set.Set a)
+ Dhall.Set: instance GHC.Classes.Ord a => GHC.Classes.Ord (Dhall.Set.Set a)
+ Dhall.Set: instance GHC.Generics.Generic (Dhall.Set.Set a)
+ Dhall.Set: instance GHC.Show.Show a => GHC.Show.Show (Dhall.Set.Set a)
+ Dhall.Set: toList :: Set a -> [a]
+ Dhall.Set: toSeq :: Set a -> Seq a
+ Dhall.Set: toSet :: Set a -> Set a
+ Dhall.TypeCheck: CantAccess :: Text -> Expr s a -> Expr s a -> TypeMessage s a
+ Dhall.TypeCheck: CantProject :: Text -> Expr s a -> Expr s a -> TypeMessage s a
+ Dhall.TypeCheck: instance (GHC.Classes.Eq a, Data.Text.Prettyprint.Doc.Internal.Pretty s, Data.Text.Prettyprint.Doc.Internal.Pretty a, Data.Typeable.Internal.Typeable s, Data.Typeable.Internal.Typeable a) => GHC.Exception.Type.Exception (Dhall.TypeCheck.DetailedTypeError s a)
+ Dhall.TypeCheck: instance (GHC.Classes.Eq a, Data.Text.Prettyprint.Doc.Internal.Pretty s, Data.Text.Prettyprint.Doc.Internal.Pretty a, Data.Typeable.Internal.Typeable s, Data.Typeable.Internal.Typeable a) => GHC.Exception.Type.Exception (Dhall.TypeCheck.TypeError s a)
- Dhall: (>$<) :: Contravariant f => a -> b -> f b -> f a
+ Dhall: (>$<) :: Contravariant f => (a -> b) -> f b -> f a
- Dhall: InputType :: a -> Expr Src X -> Expr Src X -> InputType a
+ Dhall: InputType :: (a -> Expr Src X) -> Expr Src X -> InputType a
- Dhall: InterpretOptions :: Text -> Text -> Text -> Text -> InterpretOptions
+ Dhall: InterpretOptions :: (Text -> Text) -> (Text -> Text) -> InterpretOptions
- Dhall: RecordInputType :: (Map Text (InputType a)) -> RecordInputType a
+ Dhall: RecordInputType :: Map Text (InputType a) -> RecordInputType a
- Dhall: RecordType :: (Product (Const (Map Text (Expr Src X))) (Compose ((->) (Expr Src X)) Maybe) a) -> RecordType a
+ Dhall: RecordType :: Product (Const (Map Text (Expr Src X))) (Compose ((->) (Expr Src X)) Maybe) a -> RecordType a
- Dhall: Type :: Expr Src X -> Maybe a -> Expr Src X -> Type a
+ Dhall: Type :: (Expr Src X -> Maybe a) -> Expr Src X -> Type a
- Dhall: rootDirectory :: (Functor f) => LensLike' f InputSettings FilePath
+ Dhall: rootDirectory :: Functor f => LensLike' f InputSettings FilePath
- Dhall: sourceName :: (Functor f) => LensLike' f InputSettings FilePath
+ Dhall: sourceName :: Functor f => LensLike' f InputSettings FilePath
- Dhall.Core: Annot :: (Expr s a) -> (Expr s a) -> Expr s a
+ Dhall.Core: Annot :: Expr s a -> Expr s a -> Expr s a
- Dhall.Core: App :: (Expr s a) -> (Expr s a) -> Expr s a
+ Dhall.Core: App :: Expr s a -> Expr s a -> Expr s a
- Dhall.Core: BoolAnd :: (Expr s a) -> (Expr s a) -> Expr s a
+ Dhall.Core: BoolAnd :: Expr s a -> Expr s a -> Expr s a
- Dhall.Core: BoolEQ :: (Expr s a) -> (Expr s a) -> Expr s a
+ Dhall.Core: BoolEQ :: Expr s a -> Expr s a -> Expr s a
- Dhall.Core: BoolIf :: (Expr s a) -> (Expr s a) -> (Expr s a) -> Expr s a
+ Dhall.Core: BoolIf :: Expr s a -> Expr s a -> Expr s a -> Expr s a
- Dhall.Core: BoolNE :: (Expr s a) -> (Expr s a) -> Expr s a
+ Dhall.Core: BoolNE :: Expr s a -> Expr s a -> Expr s a
- Dhall.Core: BoolOr :: (Expr s a) -> (Expr s a) -> Expr s a
+ Dhall.Core: BoolOr :: Expr s a -> Expr s a -> Expr s a
- Dhall.Core: Combine :: (Expr s a) -> (Expr s a) -> Expr s a
+ Dhall.Core: Combine :: Expr s a -> Expr s a -> Expr s a
- Dhall.Core: CombineTypes :: (Expr s a) -> (Expr s a) -> Expr s a
+ Dhall.Core: CombineTypes :: Expr s a -> Expr s a -> Expr s a
- Dhall.Core: Constructors :: (Expr s a) -> Expr s a
+ Dhall.Core: Constructors :: Expr s a -> Expr s a
- Dhall.Core: DoubleLit :: Scientific -> Expr s a
+ Dhall.Core: DoubleLit :: Double -> Expr s a
- Dhall.Core: Field :: (Expr s a) -> Text -> Expr s a
+ Dhall.Core: Field :: Expr s a -> Text -> Expr s a
- Dhall.Core: ImportAlt :: (Expr s a) -> (Expr s a) -> Expr s a
+ Dhall.Core: ImportAlt :: Expr s a -> Expr s a -> Expr s a
- Dhall.Core: Lam :: Text -> (Expr s a) -> (Expr s a) -> Expr s a
+ Dhall.Core: Lam :: Text -> Expr s a -> Expr s a -> Expr s a
- Dhall.Core: Let :: Text -> (Maybe (Expr s a)) -> (Expr s a) -> (Expr s a) -> Expr s a
+ Dhall.Core: Let :: NonEmpty (Binding s a) -> Expr s a -> Expr s a
- Dhall.Core: ListAppend :: (Expr s a) -> (Expr s a) -> Expr s a
+ Dhall.Core: ListAppend :: Expr s a -> Expr s a -> Expr s a
- Dhall.Core: ListLit :: (Maybe (Expr s a)) -> (Seq (Expr s a)) -> Expr s a
+ Dhall.Core: ListLit :: Maybe (Expr s a) -> Seq (Expr s a) -> Expr s a
- Dhall.Core: Merge :: (Expr s a) -> (Expr s a) -> (Maybe (Expr s a)) -> Expr s a
+ Dhall.Core: Merge :: Expr s a -> Expr s a -> Maybe (Expr s a) -> Expr s a
- Dhall.Core: NaturalPlus :: (Expr s a) -> (Expr s a) -> Expr s a
+ Dhall.Core: NaturalPlus :: Expr s a -> Expr s a -> Expr s a
- Dhall.Core: NaturalTimes :: (Expr s a) -> (Expr s a) -> Expr s a
+ Dhall.Core: NaturalTimes :: Expr s a -> Expr s a -> Expr s a
- Dhall.Core: Note :: s -> (Expr s a) -> Expr s a
+ Dhall.Core: Note :: s -> Expr s a -> Expr s a
- Dhall.Core: OptionalLit :: (Expr s a) -> (Maybe (Expr s a)) -> Expr s a
+ Dhall.Core: OptionalLit :: Expr s a -> Maybe (Expr s a) -> Expr s a
- Dhall.Core: Pi :: Text -> (Expr s a) -> (Expr s a) -> Expr s a
+ Dhall.Core: Pi :: Text -> Expr s a -> Expr s a -> Expr s a
- Dhall.Core: Prefer :: (Expr s a) -> (Expr s a) -> Expr s a
+ Dhall.Core: Prefer :: Expr s a -> Expr s a -> Expr s a
- Dhall.Core: Project :: (Expr s a) -> (Set Text) -> Expr s a
+ Dhall.Core: Project :: Expr s a -> Set Text -> Expr s a
- Dhall.Core: Record :: (Map Text (Expr s a)) -> Expr s a
+ Dhall.Core: Record :: Map Text (Expr s a) -> Expr s a
- Dhall.Core: RecordLit :: (Map Text (Expr s a)) -> Expr s a
+ Dhall.Core: RecordLit :: Map Text (Expr s a) -> Expr s a
- Dhall.Core: Some :: (Expr s a) -> Expr s a
+ Dhall.Core: Some :: Expr s a -> Expr s a
- Dhall.Core: TextAppend :: (Expr s a) -> (Expr s a) -> Expr s a
+ Dhall.Core: TextAppend :: Expr s a -> Expr s a -> Expr s a
- Dhall.Core: TextLit :: (Chunks s a) -> Expr s a
+ Dhall.Core: TextLit :: Chunks s a -> Expr s a
- Dhall.Core: Union :: (Map Text (Expr s a)) -> Expr s a
+ Dhall.Core: Union :: Map Text (Expr s a) -> Expr s a
- Dhall.Core: UnionLit :: Text -> (Expr s a) -> (Map Text (Expr s a)) -> Expr s a
+ Dhall.Core: UnionLit :: Text -> Expr s a -> Map Text (Expr s a) -> Expr s a
- Dhall.Core: type Normalizer a = forall s. Expr s a -> Maybe (Expr s a)
+ Dhall.Core: type Normalizer a = NormalizerM Identity a
- Dhall.Import: hashExpression :: StandardVersion -> Expr s X -> (Digest SHA256)
+ Dhall.Import: hashExpression :: StandardVersion -> Expr s X -> Digest SHA256
- Dhall.TypeCheck: AnnotMismatch :: (Expr s a) -> (Expr s a) -> (Expr s a) -> TypeMessage s a
+ Dhall.TypeCheck: AnnotMismatch :: Expr s a -> Expr s a -> Expr s a -> TypeMessage s a
- Dhall.TypeCheck: CantAdd :: (Expr s a) -> (Expr s a) -> TypeMessage s a
+ Dhall.TypeCheck: CantAdd :: Expr s a -> Expr s a -> TypeMessage s a
- Dhall.TypeCheck: CantAnd :: (Expr s a) -> (Expr s a) -> TypeMessage s a
+ Dhall.TypeCheck: CantAnd :: Expr s a -> Expr s a -> TypeMessage s a
- Dhall.TypeCheck: CantEQ :: (Expr s a) -> (Expr s a) -> TypeMessage s a
+ Dhall.TypeCheck: CantEQ :: Expr s a -> Expr s a -> TypeMessage s a
- Dhall.TypeCheck: CantInterpolate :: (Expr s a) -> (Expr s a) -> TypeMessage s a
+ Dhall.TypeCheck: CantInterpolate :: Expr s a -> Expr s a -> TypeMessage s a
- Dhall.TypeCheck: CantListAppend :: (Expr s a) -> (Expr s a) -> TypeMessage s a
+ Dhall.TypeCheck: CantListAppend :: Expr s a -> Expr s a -> TypeMessage s a
- Dhall.TypeCheck: CantMultiply :: (Expr s a) -> (Expr s a) -> TypeMessage s a
+ Dhall.TypeCheck: CantMultiply :: Expr s a -> Expr s a -> TypeMessage s a
- Dhall.TypeCheck: CantNE :: (Expr s a) -> (Expr s a) -> TypeMessage s a
+ Dhall.TypeCheck: CantNE :: Expr s a -> Expr s a -> TypeMessage s a
- Dhall.TypeCheck: CantOr :: (Expr s a) -> (Expr s a) -> TypeMessage s a
+ Dhall.TypeCheck: CantOr :: Expr s a -> Expr s a -> TypeMessage s a
- Dhall.TypeCheck: CantTextAppend :: (Expr s a) -> (Expr s a) -> TypeMessage s a
+ Dhall.TypeCheck: CantTextAppend :: Expr s a -> Expr s a -> TypeMessage s a
- Dhall.TypeCheck: CombineTypesRequiresRecordType :: (Expr s a) -> (Expr s a) -> TypeMessage s a
+ Dhall.TypeCheck: CombineTypesRequiresRecordType :: Expr s a -> Expr s a -> TypeMessage s a
- Dhall.TypeCheck: ConstructorsRequiresAUnionType :: (Expr s a) -> (Expr s a) -> TypeMessage s a
+ Dhall.TypeCheck: ConstructorsRequiresAUnionType :: Expr s a -> Expr s a -> TypeMessage s a
- Dhall.TypeCheck: DetailedTypeError :: (TypeError s a) -> DetailedTypeError s a
+ Dhall.TypeCheck: DetailedTypeError :: TypeError s a -> DetailedTypeError s a
- Dhall.TypeCheck: FieldAnnotationMismatch :: Text -> (Expr s a) -> Const -> Text -> (Expr s a) -> Const -> TypeMessage s a
+ Dhall.TypeCheck: FieldAnnotationMismatch :: Text -> Expr s a -> Const -> Text -> Expr s a -> Const -> TypeMessage s a
- Dhall.TypeCheck: FieldMismatch :: Text -> (Expr s a) -> Const -> Text -> (Expr s a) -> Const -> TypeMessage s a
+ Dhall.TypeCheck: FieldMismatch :: Text -> Expr s a -> Const -> Text -> Expr s a -> Const -> TypeMessage s a
- Dhall.TypeCheck: HandlerInputTypeMismatch :: Text -> (Expr s a) -> (Expr s a) -> TypeMessage s a
+ Dhall.TypeCheck: HandlerInputTypeMismatch :: Text -> Expr s a -> Expr s a -> TypeMessage s a
- Dhall.TypeCheck: HandlerNotAFunction :: Text -> (Expr s a) -> TypeMessage s a
+ Dhall.TypeCheck: HandlerNotAFunction :: Text -> Expr s a -> TypeMessage s a
- Dhall.TypeCheck: HandlerOutputTypeMismatch :: Text -> (Expr s a) -> Text -> (Expr s a) -> TypeMessage s a
+ Dhall.TypeCheck: HandlerOutputTypeMismatch :: Text -> Expr s a -> Text -> Expr s a -> TypeMessage s a
- Dhall.TypeCheck: IfBranchMismatch :: (Expr s a) -> (Expr s a) -> (Expr s a) -> (Expr s a) -> TypeMessage s a
+ Dhall.TypeCheck: IfBranchMismatch :: Expr s a -> Expr s a -> Expr s a -> Expr s a -> TypeMessage s a
- Dhall.TypeCheck: IfBranchMustBeTerm :: Bool -> (Expr s a) -> (Expr s a) -> (Expr s a) -> TypeMessage s a
+ Dhall.TypeCheck: IfBranchMustBeTerm :: Bool -> Expr s a -> Expr s a -> Expr s a -> TypeMessage s a
- Dhall.TypeCheck: InvalidAlternative :: Text -> (Expr s a) -> TypeMessage s a
+ Dhall.TypeCheck: InvalidAlternative :: Text -> Expr s a -> TypeMessage s a
- Dhall.TypeCheck: InvalidAlternativeType :: Text -> (Expr s a) -> TypeMessage s a
+ Dhall.TypeCheck: InvalidAlternativeType :: Text -> Expr s a -> TypeMessage s a
- Dhall.TypeCheck: InvalidField :: Text -> (Expr s a) -> TypeMessage s a
+ Dhall.TypeCheck: InvalidField :: Text -> Expr s a -> TypeMessage s a
- Dhall.TypeCheck: InvalidFieldType :: Text -> (Expr s a) -> TypeMessage s a
+ Dhall.TypeCheck: InvalidFieldType :: Text -> Expr s a -> TypeMessage s a
- Dhall.TypeCheck: InvalidHandlerOutputType :: Text -> (Expr s a) -> (Expr s a) -> TypeMessage s a
+ Dhall.TypeCheck: InvalidHandlerOutputType :: Text -> Expr s a -> Expr s a -> TypeMessage s a
- Dhall.TypeCheck: InvalidInputType :: (Expr s a) -> TypeMessage s a
+ Dhall.TypeCheck: InvalidInputType :: Expr s a -> TypeMessage s a
- Dhall.TypeCheck: InvalidListElement :: Int -> (Expr s a) -> (Expr s a) -> (Expr s a) -> TypeMessage s a
+ Dhall.TypeCheck: InvalidListElement :: Int -> Expr s a -> Expr s a -> Expr s a -> TypeMessage s a
- Dhall.TypeCheck: InvalidListType :: (Expr s a) -> TypeMessage s a
+ Dhall.TypeCheck: InvalidListType :: Expr s a -> TypeMessage s a
- Dhall.TypeCheck: InvalidOptionalElement :: (Expr s a) -> (Expr s a) -> (Expr s a) -> TypeMessage s a
+ Dhall.TypeCheck: InvalidOptionalElement :: Expr s a -> Expr s a -> Expr s a -> TypeMessage s a
- Dhall.TypeCheck: InvalidOptionalType :: (Expr s a) -> TypeMessage s a
+ Dhall.TypeCheck: InvalidOptionalType :: Expr s a -> TypeMessage s a
- Dhall.TypeCheck: InvalidOutputType :: (Expr s a) -> TypeMessage s a
+ Dhall.TypeCheck: InvalidOutputType :: Expr s a -> TypeMessage s a
- Dhall.TypeCheck: InvalidPredicate :: (Expr s a) -> (Expr s a) -> TypeMessage s a
+ Dhall.TypeCheck: InvalidPredicate :: Expr s a -> Expr s a -> TypeMessage s a
- Dhall.TypeCheck: InvalidSome :: (Expr s a) -> (Expr s a) -> (Expr s a) -> TypeMessage s a
+ Dhall.TypeCheck: InvalidSome :: Expr s a -> Expr s a -> Expr s a -> TypeMessage s a
- Dhall.TypeCheck: ListAppendMismatch :: (Expr s a) -> (Expr s a) -> TypeMessage s a
+ Dhall.TypeCheck: ListAppendMismatch :: Expr s a -> Expr s a -> TypeMessage s a
- Dhall.TypeCheck: MismatchedListElements :: Int -> (Expr s a) -> (Expr s a) -> (Expr s a) -> TypeMessage s a
+ Dhall.TypeCheck: MismatchedListElements :: Int -> Expr s a -> Expr s a -> Expr s a -> TypeMessage s a
- Dhall.TypeCheck: MissingField :: Text -> (Expr s a) -> TypeMessage s a
+ Dhall.TypeCheck: MissingField :: Text -> Expr s a -> TypeMessage s a
- Dhall.TypeCheck: MissingHandler :: (Set Text) -> TypeMessage s a
+ Dhall.TypeCheck: MissingHandler :: Set Text -> TypeMessage s a
- Dhall.TypeCheck: MustCombineARecord :: Char -> (Expr s a) -> (Expr s a) -> TypeMessage s a
+ Dhall.TypeCheck: MustCombineARecord :: Char -> Expr s a -> Expr s a -> TypeMessage s a
- Dhall.TypeCheck: MustMergeARecord :: (Expr s a) -> (Expr s a) -> TypeMessage s a
+ Dhall.TypeCheck: MustMergeARecord :: Expr s a -> Expr s a -> TypeMessage s a
- Dhall.TypeCheck: MustMergeUnion :: (Expr s a) -> (Expr s a) -> TypeMessage s a
+ Dhall.TypeCheck: MustMergeUnion :: Expr s a -> Expr s a -> TypeMessage s a
- Dhall.TypeCheck: NoDependentTypes :: (Expr s a) -> (Expr s a) -> TypeMessage s a
+ Dhall.TypeCheck: NoDependentTypes :: Expr s a -> Expr s a -> TypeMessage s a
- Dhall.TypeCheck: NotAFunction :: (Expr s a) -> (Expr s a) -> TypeMessage s a
+ Dhall.TypeCheck: NotAFunction :: Expr s a -> Expr s a -> TypeMessage s a
- Dhall.TypeCheck: RecordMismatch :: Char -> (Expr s a) -> (Expr s a) -> Const -> Const -> TypeMessage s a
+ Dhall.TypeCheck: RecordMismatch :: Char -> Expr s a -> Expr s a -> Const -> Const -> TypeMessage s a
- Dhall.TypeCheck: RecordTypeMismatch :: Const -> Const -> (Expr s a) -> (Expr s a) -> TypeMessage s a
+ Dhall.TypeCheck: RecordTypeMismatch :: Const -> Const -> Expr s a -> Expr s a -> TypeMessage s a
- Dhall.TypeCheck: TypeMismatch :: (Expr s a) -> (Expr s a) -> (Expr s a) -> (Expr s a) -> TypeMessage s a
+ Dhall.TypeCheck: TypeMismatch :: Expr s a -> Expr s a -> Expr s a -> Expr s a -> TypeMessage s a
- Dhall.TypeCheck: UnusedHandler :: (Set Text) -> TypeMessage s a
+ Dhall.TypeCheck: UnusedHandler :: Set Text -> TypeMessage s a
- Dhall.TypeCheck: X :: forall a. a -> X
+ Dhall.TypeCheck: X :: (forall a. a) -> X
Files
- CHANGELOG.md +43/−0
- LICENSE +24/−21
- Prelude/Monoid +1/−1
- Prelude/package.dhall +1/−1
- benchmark/deep-nested-large-record/Main.hs +10/−7
- dhall.cabal +256/−73
- src/Dhall.hs +11/−15
- src/Dhall/Binary.hs +68/−42
- src/Dhall/Core.hs +442/−248
- src/Dhall/Diff.hs +20/−17
- src/Dhall/Import.hs +16/−3
- src/Dhall/Import/Types.hs +1/−1
- src/Dhall/Lint.hs +24/−4
- src/Dhall/Parser/Combinators.hs +6/−5
- src/Dhall/Parser/Expression.hs +36/−12
- src/Dhall/Parser/Token.hs +41/−26
- src/Dhall/Pretty/Internal.hs +47/−46
- src/Dhall/Repl.hs +2/−1
- src/Dhall/Set.hs +64/−0
- src/Dhall/TypeCheck.hs +101/−23
- tests/Format.hs +12/−0
- tests/Import.hs +11/−11
- tests/Normalization.hs +157/−152
- tests/Parser.hs +53/−47
- tests/QuickCheck.hs +20/−2
- tests/TypeCheck.hs +48/−18
- tests/format/doubleRoundA.dhall +41/−0
- tests/format/doubleRoundB.dhall +37/−0
- tests/format/importLinesA.dhall +5/−5
- tests/format/importLinesB.dhall +6/−6
- tests/format/largeExponentA.dhall +1/−1
- tests/format/largeExponentB.dhall +1/−1
- tests/format/projectionOrderA.dhall +1/−0
- tests/format/projectionOrderB.dhall +1/−0
- tests/format/sha256PrintingA.dhall +3/−1
- tests/format/sha256PrintingB.dhall +2/−2
- tests/format/unicodeA.dhall +16/−0
- tests/format/unicodeB.dhall +16/−0
- tests/import/alternativeEnv.dhall +0/−1
- tests/import/alternativeEnvMissing.dhall +0/−1
- tests/import/alternativeEnvNatural.dhall +0/−1
- tests/import/alternativeEnvSimple.dhall +0/−1
- tests/import/alternativeNatural.dhall +0/−1
- tests/import/data/fieldOrder/1.dhall +1/−0
- tests/import/data/fieldOrder/2.dhall +1/−0
- tests/import/failure/alternativeEnv.dhall +1/−0
- tests/import/failure/alternativeEnvMissing.dhall +1/−0
- tests/import/failure/missing.dhall +1/−0
- tests/import/fieldOrderA.dhall +0/−1
- tests/import/fieldOrderB.dhall +0/−1
- tests/import/fieldOrderC.dhall +0/−5
- tests/import/issue553A.dhall +0/−5
- tests/import/issue553B.dhall +0/−1
- tests/import/missing.dhall +0/−1
- tests/import/relative.dhall +0/−2
- tests/import/success/alternativeEnvNaturalA.dhall +1/−0
- tests/import/success/alternativeEnvNaturalB.dhall +1/−0
- tests/import/success/alternativeEnvSimpleA.dhall +1/−0
- tests/import/success/alternativeEnvSimpleB.dhall +1/−0
- tests/import/success/alternativeNaturalA.dhall +1/−0
- tests/import/success/alternativeNaturalB.dhall +1/−0
- tests/import/success/fieldOrderA.dhall +5/−0
- tests/import/success/fieldOrderB.dhall +1/−0
- tests/import/success/issue553A.dhall +5/−0
- tests/import/success/issue553B.dhall +1/−0
- tests/import/success/relative.dhall +2/−0
- tests/normalization/doubleShowA.dhall +0/−1
- tests/normalization/doubleShowB.dhall +0/−1
- tests/normalization/examples/Bool/and/0A.dhall +0/−1
- tests/normalization/examples/Bool/and/0B.dhall +0/−1
- tests/normalization/examples/Bool/and/1A.dhall +0/−1
- tests/normalization/examples/Bool/and/1B.dhall +0/−1
- tests/normalization/examples/Bool/build/0A.dhall +0/−2
- tests/normalization/examples/Bool/build/0B.dhall +0/−1
- tests/normalization/examples/Bool/build/1A.dhall +0/−2
- tests/normalization/examples/Bool/build/1B.dhall +0/−1
- tests/normalization/examples/Bool/even/0A.dhall +0/−1
- tests/normalization/examples/Bool/even/0B.dhall +0/−1
- tests/normalization/examples/Bool/even/1A.dhall +0/−1
- tests/normalization/examples/Bool/even/1B.dhall +0/−1
- tests/normalization/examples/Bool/even/2A.dhall +0/−1
- tests/normalization/examples/Bool/even/2B.dhall +0/−1
- tests/normalization/examples/Bool/even/3A.dhall +0/−1
- tests/normalization/examples/Bool/even/3B.dhall +0/−1
- tests/normalization/examples/Bool/fold/0A.dhall +0/−1
- tests/normalization/examples/Bool/fold/0B.dhall +0/−1
- tests/normalization/examples/Bool/fold/1A.dhall +0/−1
- tests/normalization/examples/Bool/fold/1B.dhall +0/−1
- tests/normalization/examples/Bool/not/0A.dhall +0/−1
- tests/normalization/examples/Bool/not/0B.dhall +0/−1
- tests/normalization/examples/Bool/not/1A.dhall +0/−1
- tests/normalization/examples/Bool/not/1B.dhall +0/−1
- tests/normalization/examples/Bool/odd/0A.dhall +0/−1
- tests/normalization/examples/Bool/odd/0B.dhall +0/−1
- tests/normalization/examples/Bool/odd/1A.dhall +0/−1
- tests/normalization/examples/Bool/odd/1B.dhall +0/−1
- tests/normalization/examples/Bool/odd/2A.dhall +0/−1
- tests/normalization/examples/Bool/odd/2B.dhall +0/−1
- tests/normalization/examples/Bool/odd/3A.dhall +0/−1
- tests/normalization/examples/Bool/odd/3B.dhall +0/−1
- tests/normalization/examples/Bool/or/0A.dhall +0/−1
- tests/normalization/examples/Bool/or/0B.dhall +0/−1
- tests/normalization/examples/Bool/or/1A.dhall +0/−1
- tests/normalization/examples/Bool/or/1B.dhall +0/−1
- tests/normalization/examples/Bool/show/0A.dhall +0/−1
- tests/normalization/examples/Bool/show/0B.dhall +0/−1
- tests/normalization/examples/Bool/show/1A.dhall +0/−1
- tests/normalization/examples/Bool/show/1B.dhall +0/−1
- tests/normalization/examples/Double/show/0A.dhall +0/−1
- tests/normalization/examples/Double/show/0B.dhall +0/−1
- tests/normalization/examples/Double/show/1A.dhall +0/−1
- tests/normalization/examples/Double/show/1B.dhall +0/−1
- tests/normalization/examples/Integer/show/0A.dhall +0/−1
- tests/normalization/examples/Integer/show/0B.dhall +0/−1
- tests/normalization/examples/Integer/show/1A.dhall +0/−1
- tests/normalization/examples/Integer/show/1B.dhall +0/−1
- tests/normalization/examples/Integer/toDouble/0A.dhall +0/−1
- tests/normalization/examples/Integer/toDouble/0B.dhall +0/−1
- tests/normalization/examples/Integer/toDouble/1A.dhall +0/−1
- tests/normalization/examples/Integer/toDouble/1B.dhall +0/−1
- tests/normalization/examples/List/all/0A.dhall +0/−1
- tests/normalization/examples/List/all/0B.dhall +0/−1
- tests/normalization/examples/List/all/1A.dhall +0/−1
- tests/normalization/examples/List/all/1B.dhall +0/−1
- tests/normalization/examples/List/any/0A.dhall +0/−1
- tests/normalization/examples/List/any/0B.dhall +0/−1
- tests/normalization/examples/List/any/1A.dhall +0/−1
- tests/normalization/examples/List/any/1B.dhall +0/−1
- tests/normalization/examples/List/build/0A.dhall +0/−7
- tests/normalization/examples/List/build/0B.dhall +0/−1
- tests/normalization/examples/List/build/1A.dhall +0/−7
- tests/normalization/examples/List/build/1B.dhall +0/−1
- tests/normalization/examples/List/concat/0A.dhall +0/−5
- tests/normalization/examples/List/concat/0B.dhall +0/−1
- tests/normalization/examples/List/concat/1A.dhall +0/−5
- tests/normalization/examples/List/concat/1B.dhall +0/−1
- tests/normalization/examples/List/concatMap/0A.dhall +0/−1
- tests/normalization/examples/List/concatMap/0B.dhall +0/−1
- tests/normalization/examples/List/concatMap/1A.dhall +0/−1
- tests/normalization/examples/List/concatMap/1B.dhall +0/−1
- tests/normalization/examples/List/filter/0A.dhall +0/−1
- tests/normalization/examples/List/filter/0B.dhall +0/−1
- tests/normalization/examples/List/filter/1A.dhall +0/−1
- tests/normalization/examples/List/filter/1B.dhall +0/−1
- tests/normalization/examples/List/fold/0A.dhall +0/−6
- tests/normalization/examples/List/fold/0B.dhall +0/−1
- tests/normalization/examples/List/fold/1A.dhall +0/−7
- tests/normalization/examples/List/fold/1B.dhall +0/−1
- tests/normalization/examples/List/fold/2A.dhall +0/−4
- tests/normalization/examples/List/fold/2B.dhall +0/−4
- tests/normalization/examples/List/generate/0A.dhall +0/−1
- tests/normalization/examples/List/generate/0B.dhall +0/−1
- tests/normalization/examples/List/generate/1A.dhall +0/−1
- tests/normalization/examples/List/generate/1B.dhall +0/−1
- tests/normalization/examples/List/head/0A.dhall +0/−1
- tests/normalization/examples/List/head/0B.dhall +0/−1
- tests/normalization/examples/List/head/1A.dhall +0/−1
- tests/normalization/examples/List/head/1B.dhall +0/−1
- tests/normalization/examples/List/indexed/0A.dhall +0/−1
- tests/normalization/examples/List/indexed/0B.dhall +0/−4
- tests/normalization/examples/List/indexed/1A.dhall +0/−1
- tests/normalization/examples/List/indexed/1B.dhall +0/−1
- tests/normalization/examples/List/iterate/0A.dhall +0/−1
- tests/normalization/examples/List/iterate/0B.dhall +0/−1
- tests/normalization/examples/List/iterate/1A.dhall +0/−1
- tests/normalization/examples/List/iterate/1B.dhall +0/−1
- tests/normalization/examples/List/last/0A.dhall +0/−1
- tests/normalization/examples/List/last/0B.dhall +0/−1
- tests/normalization/examples/List/last/1A.dhall +0/−1
- tests/normalization/examples/List/last/1B.dhall +0/−1
- tests/normalization/examples/List/length/0A.dhall +0/−1
- tests/normalization/examples/List/length/0B.dhall +0/−1
- tests/normalization/examples/List/length/1A.dhall +0/−1
- tests/normalization/examples/List/length/1B.dhall +0/−1
- tests/normalization/examples/List/map/0A.dhall +0/−1
- tests/normalization/examples/List/map/0B.dhall +0/−1
- tests/normalization/examples/List/map/1A.dhall +0/−1
- tests/normalization/examples/List/map/1B.dhall +0/−1
- tests/normalization/examples/List/null/0A.dhall +0/−1
- tests/normalization/examples/List/null/0B.dhall +0/−1
- tests/normalization/examples/List/null/1A.dhall +0/−1
- tests/normalization/examples/List/null/1B.dhall +0/−1
- tests/normalization/examples/List/replicate/0A.dhall +0/−1
- tests/normalization/examples/List/replicate/0B.dhall +0/−1
- tests/normalization/examples/List/replicate/1A.dhall +0/−1
- tests/normalization/examples/List/replicate/1B.dhall +0/−1
- tests/normalization/examples/List/reverse/0A.dhall +0/−1
- tests/normalization/examples/List/reverse/0B.dhall +0/−1
- tests/normalization/examples/List/reverse/1A.dhall +0/−1
- tests/normalization/examples/List/reverse/1B.dhall +0/−1
- tests/normalization/examples/List/shifted/0A.dhall +0/−15
- tests/normalization/examples/List/shifted/0B.dhall +0/−10
- tests/normalization/examples/List/shifted/1A.dhall +0/−1
- tests/normalization/examples/List/shifted/1B.dhall +0/−1
- tests/normalization/examples/List/unzip/0A.dhall +0/−7
- tests/normalization/examples/List/unzip/0B.dhall +0/−1
- tests/normalization/examples/List/unzip/1A.dhall +0/−1
- tests/normalization/examples/List/unzip/1B.dhall +0/−1
- tests/normalization/examples/Natural/build/0A.dhall +0/−6
- tests/normalization/examples/Natural/build/0B.dhall +0/−1
- tests/normalization/examples/Natural/build/1A.dhall +0/−6
- tests/normalization/examples/Natural/build/1B.dhall +0/−1
- tests/normalization/examples/Natural/enumerate/0A.dhall +0/−1
- tests/normalization/examples/Natural/enumerate/0B.dhall +0/−1
- tests/normalization/examples/Natural/enumerate/1A.dhall +0/−1
- tests/normalization/examples/Natural/enumerate/1B.dhall +0/−1
- tests/normalization/examples/Natural/even/0A.dhall +0/−1
- tests/normalization/examples/Natural/even/0B.dhall +0/−1
- tests/normalization/examples/Natural/even/1A.dhall +0/−1
- tests/normalization/examples/Natural/even/1B.dhall +0/−1
- tests/normalization/examples/Natural/fold/0A.dhall +0/−1
- tests/normalization/examples/Natural/fold/0B.dhall +0/−1
- tests/normalization/examples/Natural/fold/1A.dhall +0/−1
- tests/normalization/examples/Natural/fold/1B.dhall +0/−1
- tests/normalization/examples/Natural/fold/2A.dhall +0/−4
- tests/normalization/examples/Natural/fold/2B.dhall +0/−1
- tests/normalization/examples/Natural/isZero/0A.dhall +0/−1
- tests/normalization/examples/Natural/isZero/0B.dhall +0/−1
- tests/normalization/examples/Natural/isZero/1A.dhall +0/−1
- tests/normalization/examples/Natural/isZero/1B.dhall +0/−1
- tests/normalization/examples/Natural/odd/0A.dhall +0/−1
- tests/normalization/examples/Natural/odd/0B.dhall +0/−1
- tests/normalization/examples/Natural/odd/1A.dhall +0/−1
- tests/normalization/examples/Natural/odd/1B.dhall +0/−1
- tests/normalization/examples/Natural/product/0A.dhall +0/−1
- tests/normalization/examples/Natural/product/0B.dhall +0/−1
- tests/normalization/examples/Natural/product/1A.dhall +0/−1
- tests/normalization/examples/Natural/product/1B.dhall +0/−1
- tests/normalization/examples/Natural/show/0A.dhall +0/−1
- tests/normalization/examples/Natural/show/0B.dhall +0/−1
- tests/normalization/examples/Natural/show/1A.dhall +0/−1
- tests/normalization/examples/Natural/show/1B.dhall +0/−1
- tests/normalization/examples/Natural/sum/0A.dhall +0/−1
- tests/normalization/examples/Natural/sum/0B.dhall +0/−1
- tests/normalization/examples/Natural/sum/1A.dhall +0/−1
- tests/normalization/examples/Natural/sum/1B.dhall +0/−1
- tests/normalization/examples/Natural/toDouble/0A.dhall +0/−1
- tests/normalization/examples/Natural/toDouble/0B.dhall +0/−1
- tests/normalization/examples/Natural/toDouble/1A.dhall +0/−1
- tests/normalization/examples/Natural/toDouble/1B.dhall +0/−1
- tests/normalization/examples/Natural/toInteger/0A.dhall +0/−1
- tests/normalization/examples/Natural/toInteger/0B.dhall +0/−1
- tests/normalization/examples/Natural/toInteger/1A.dhall +0/−1
- tests/normalization/examples/Natural/toInteger/1B.dhall +0/−1
- tests/normalization/examples/Optional/all/0A.dhall +0/−1
- tests/normalization/examples/Optional/all/0B.dhall +0/−1
- tests/normalization/examples/Optional/all/1A.dhall +0/−1
- tests/normalization/examples/Optional/all/1B.dhall +0/−1
- tests/normalization/examples/Optional/any/0A.dhall +0/−1
- tests/normalization/examples/Optional/any/0B.dhall +0/−1
- tests/normalization/examples/Optional/any/1A.dhall +0/−1
- tests/normalization/examples/Optional/any/1B.dhall +0/−1
- tests/normalization/examples/Optional/build/0A.dhall +0/−7
- tests/normalization/examples/Optional/build/0B.dhall +0/−1
- tests/normalization/examples/Optional/build/1A.dhall +0/−7
- tests/normalization/examples/Optional/build/1B.dhall +0/−1
- tests/normalization/examples/Optional/concat/0A.dhall +0/−1
- tests/normalization/examples/Optional/concat/0B.dhall +0/−1
- tests/normalization/examples/Optional/concat/1A.dhall +0/−1
- tests/normalization/examples/Optional/concat/1B.dhall +0/−1
- tests/normalization/examples/Optional/concat/2A.dhall +0/−1
- tests/normalization/examples/Optional/concat/2B.dhall +0/−1
- tests/normalization/examples/Optional/filter/0A.dhall +0/−1
- tests/normalization/examples/Optional/filter/0B.dhall +0/−1
- tests/normalization/examples/Optional/filter/1A.dhall +0/−1
- tests/normalization/examples/Optional/filter/1B.dhall +0/−1
- tests/normalization/examples/Optional/fold/0A.dhall +0/−1
- tests/normalization/examples/Optional/fold/0B.dhall +0/−1
- tests/normalization/examples/Optional/fold/1A.dhall +0/−1
- tests/normalization/examples/Optional/fold/1B.dhall +0/−1
- tests/normalization/examples/Optional/head/0A.dhall +0/−1
- tests/normalization/examples/Optional/head/0B.dhall +0/−1
- tests/normalization/examples/Optional/head/1A.dhall +0/−1
- tests/normalization/examples/Optional/head/1B.dhall +0/−1
- tests/normalization/examples/Optional/head/2A.dhall +0/−1
- tests/normalization/examples/Optional/head/2B.dhall +0/−1
- tests/normalization/examples/Optional/last/0A.dhall +0/−1
- tests/normalization/examples/Optional/last/0B.dhall +0/−1
- tests/normalization/examples/Optional/last/1A.dhall +0/−1
- tests/normalization/examples/Optional/last/1B.dhall +0/−1
- tests/normalization/examples/Optional/last/2A.dhall +0/−1
- tests/normalization/examples/Optional/last/2B.dhall +0/−1
- tests/normalization/examples/Optional/length/0A.dhall +0/−1
- tests/normalization/examples/Optional/length/0B.dhall +0/−1
- tests/normalization/examples/Optional/length/1A.dhall +0/−1
- tests/normalization/examples/Optional/length/1B.dhall +0/−1
- tests/normalization/examples/Optional/map/0A.dhall +0/−1
- tests/normalization/examples/Optional/map/0B.dhall +0/−1
- tests/normalization/examples/Optional/map/1A.dhall +0/−1
- tests/normalization/examples/Optional/map/1B.dhall +0/−1
- tests/normalization/examples/Optional/null/0A.dhall +0/−1
- tests/normalization/examples/Optional/null/0B.dhall +0/−1
- tests/normalization/examples/Optional/null/1A.dhall +0/−1
- tests/normalization/examples/Optional/null/1B.dhall +0/−1
- tests/normalization/examples/Optional/toList/0A.dhall +0/−1
- tests/normalization/examples/Optional/toList/0B.dhall +0/−1
- tests/normalization/examples/Optional/toList/1A.dhall +0/−1
- tests/normalization/examples/Optional/toList/1B.dhall +0/−1
- tests/normalization/examples/Optional/unzip/0A.dhall +0/−1
- tests/normalization/examples/Optional/unzip/0B.dhall +0/−1
- tests/normalization/examples/Optional/unzip/1A.dhall +0/−1
- tests/normalization/examples/Optional/unzip/1B.dhall +0/−1
- tests/normalization/examples/Text/concat/0A.dhall +0/−1
- tests/normalization/examples/Text/concat/0B.dhall +0/−1
- tests/normalization/examples/Text/concat/1A.dhall +0/−1
- tests/normalization/examples/Text/concat/1B.dhall +0/−1
- tests/normalization/examples/Text/concatMap/0A.dhall +0/−1
- tests/normalization/examples/Text/concatMap/0B.dhall +0/−1
- tests/normalization/examples/Text/concatMap/1A.dhall +0/−1
- tests/normalization/examples/Text/concatMap/1B.dhall +0/−1
- tests/normalization/examples/Text/concatMapSep/0A.dhall +0/−1
- tests/normalization/examples/Text/concatMapSep/0B.dhall +0/−1
- tests/normalization/examples/Text/concatMapSep/1A.dhall +0/−1
- tests/normalization/examples/Text/concatMapSep/1B.dhall +0/−1
- tests/normalization/examples/Text/concatSep/0A.dhall +0/−1
- tests/normalization/examples/Text/concatSep/0B.dhall +0/−1
- tests/normalization/examples/Text/concatSep/1A.dhall +0/−1
- tests/normalization/examples/Text/concatSep/1B.dhall +0/−1
- tests/normalization/integerShowA.dhall +0/−4
- tests/normalization/integerShowB.dhall +0/−1
- tests/normalization/listBuildA.dhall +0/−22
- tests/normalization/listBuildB.dhall +0/−7
- tests/normalization/multiLineA.dhall +0/−4
- tests/normalization/multiLineB.dhall +0/−4
- tests/normalization/naturalBuildA.dhall +0/−18
- tests/normalization/naturalBuildB.dhall +0/−7
- tests/normalization/naturalPlusA.dhall +0/−1
- tests/normalization/naturalPlusB.dhall +0/−1
- tests/normalization/naturalShowA.dhall +0/−1
- tests/normalization/naturalShowB.dhall +0/−1
- tests/normalization/naturalToIntegerA.dhall +0/−1
- tests/normalization/naturalToIntegerB.dhall +0/−1
- tests/normalization/optionalBuildA.dhall +0/−32
- tests/normalization/optionalBuildB.dhall +0/−9
- tests/normalization/optionalBuildFoldA.dhall +0/−1
- tests/normalization/optionalBuildFoldB.dhall +0/−1
- tests/normalization/optionalFoldA.dhall +0/−7
- tests/normalization/optionalFoldB.dhall +0/−1
- tests/normalization/remoteSystemsA.dhall +0/−55
- tests/normalization/remoteSystemsB.dhall +0/−1
- tests/normalization/simplifications/andA.dhall +0/−6
- tests/normalization/simplifications/andB.dhall +0/−6
- tests/normalization/simplifications/eqA.dhall +0/−4
- tests/normalization/simplifications/eqB.dhall +0/−4
- tests/normalization/simplifications/ifThenElseA.dhall +0/−3
- tests/normalization/simplifications/ifThenElseB.dhall +0/−3
- tests/normalization/simplifications/neA.dhall +0/−4
- tests/normalization/simplifications/neB.dhall +0/−4
- tests/normalization/simplifications/orA.dhall +0/−6
- tests/normalization/simplifications/orB.dhall +0/−6
- tests/normalization/sortOperatorA.dhall +0/−1
- tests/normalization/sortOperatorB.dhall +0/−1
- tests/normalization/success/haskell-tutorial/access/0A.dhall +1/−0
- tests/normalization/success/haskell-tutorial/access/0B.dhall +1/−0
- tests/normalization/success/haskell-tutorial/access/1A.dhall +1/−0
- tests/normalization/success/haskell-tutorial/access/1B.dhall +1/−0
- tests/normalization/success/haskell-tutorial/combineTypes/0A.dhall +1/−0
- tests/normalization/success/haskell-tutorial/combineTypes/0B.dhall +1/−0
- tests/normalization/success/haskell-tutorial/combineTypes/1A.dhall +1/−0
- tests/normalization/success/haskell-tutorial/combineTypes/1B.dhall +1/−0
- tests/normalization/success/haskell-tutorial/prefer/0A.dhall +1/−0
- tests/normalization/success/haskell-tutorial/prefer/0B.dhall +1/−0
- tests/normalization/success/haskell-tutorial/projection/0A.dhall +1/−0
- tests/normalization/success/haskell-tutorial/projection/0B.dhall +1/−0
- tests/normalization/success/prelude/Bool/and/0A.dhall +1/−0
- tests/normalization/success/prelude/Bool/and/0B.dhall +1/−0
- tests/normalization/success/prelude/Bool/and/1A.dhall +1/−0
- tests/normalization/success/prelude/Bool/and/1B.dhall +1/−0
- tests/normalization/success/prelude/Bool/build/0A.dhall +2/−0
- tests/normalization/success/prelude/Bool/build/0B.dhall +1/−0
- tests/normalization/success/prelude/Bool/build/1A.dhall +2/−0
- tests/normalization/success/prelude/Bool/build/1B.dhall +1/−0
- tests/normalization/success/prelude/Bool/even/0A.dhall +1/−0
- tests/normalization/success/prelude/Bool/even/0B.dhall +1/−0
- tests/normalization/success/prelude/Bool/even/1A.dhall +1/−0
- tests/normalization/success/prelude/Bool/even/1B.dhall +1/−0
- tests/normalization/success/prelude/Bool/even/2A.dhall +1/−0
- tests/normalization/success/prelude/Bool/even/2B.dhall +1/−0
- tests/normalization/success/prelude/Bool/even/3A.dhall +1/−0
- tests/normalization/success/prelude/Bool/even/3B.dhall +1/−0
- tests/normalization/success/prelude/Bool/fold/0A.dhall +1/−0
- tests/normalization/success/prelude/Bool/fold/0B.dhall +1/−0
- tests/normalization/success/prelude/Bool/fold/1A.dhall +1/−0
- tests/normalization/success/prelude/Bool/fold/1B.dhall +1/−0
- tests/normalization/success/prelude/Bool/not/0A.dhall +1/−0
- tests/normalization/success/prelude/Bool/not/0B.dhall +1/−0
- tests/normalization/success/prelude/Bool/not/1A.dhall +1/−0
- tests/normalization/success/prelude/Bool/not/1B.dhall +1/−0
- tests/normalization/success/prelude/Bool/odd/0A.dhall +1/−0
- tests/normalization/success/prelude/Bool/odd/0B.dhall +1/−0
- tests/normalization/success/prelude/Bool/odd/1A.dhall +1/−0
- tests/normalization/success/prelude/Bool/odd/1B.dhall +1/−0
- tests/normalization/success/prelude/Bool/odd/2A.dhall +1/−0
- tests/normalization/success/prelude/Bool/odd/2B.dhall +1/−0
- tests/normalization/success/prelude/Bool/odd/3A.dhall +1/−0
- tests/normalization/success/prelude/Bool/odd/3B.dhall +1/−0
- tests/normalization/success/prelude/Bool/or/0A.dhall +1/−0
- tests/normalization/success/prelude/Bool/or/0B.dhall +1/−0
- tests/normalization/success/prelude/Bool/or/1A.dhall +1/−0
- tests/normalization/success/prelude/Bool/or/1B.dhall +1/−0
- tests/normalization/success/prelude/Bool/show/0A.dhall +1/−0
- tests/normalization/success/prelude/Bool/show/0B.dhall +1/−0
- tests/normalization/success/prelude/Bool/show/1A.dhall +1/−0
- tests/normalization/success/prelude/Bool/show/1B.dhall +1/−0
- tests/normalization/success/prelude/Double/show/0A.dhall +1/−0
- tests/normalization/success/prelude/Double/show/0B.dhall +1/−0
- tests/normalization/success/prelude/Double/show/1A.dhall +1/−0
- tests/normalization/success/prelude/Double/show/1B.dhall +1/−0
- tests/normalization/success/prelude/Integer/show/0A.dhall +1/−0
- tests/normalization/success/prelude/Integer/show/0B.dhall +1/−0
- tests/normalization/success/prelude/Integer/show/1A.dhall +1/−0
- tests/normalization/success/prelude/Integer/show/1B.dhall +1/−0
- tests/normalization/success/prelude/Integer/toDouble/0A.dhall +1/−0
- tests/normalization/success/prelude/Integer/toDouble/0B.dhall +1/−0
- tests/normalization/success/prelude/Integer/toDouble/1A.dhall +1/−0
- tests/normalization/success/prelude/Integer/toDouble/1B.dhall +1/−0
- tests/normalization/success/prelude/List/all/0A.dhall +1/−0
- tests/normalization/success/prelude/List/all/0B.dhall +1/−0
- tests/normalization/success/prelude/List/all/1A.dhall +1/−0
- tests/normalization/success/prelude/List/all/1B.dhall +1/−0
- tests/normalization/success/prelude/List/any/0A.dhall +1/−0
- tests/normalization/success/prelude/List/any/0B.dhall +1/−0
- tests/normalization/success/prelude/List/any/1A.dhall +1/−0
- tests/normalization/success/prelude/List/any/1B.dhall +1/−0
- tests/normalization/success/prelude/List/build/0A.dhall +7/−0
- tests/normalization/success/prelude/List/build/0B.dhall +1/−0
- tests/normalization/success/prelude/List/build/1A.dhall +7/−0
- tests/normalization/success/prelude/List/build/1B.dhall +1/−0
- tests/normalization/success/prelude/List/concat/0A.dhall +5/−0
- tests/normalization/success/prelude/List/concat/0B.dhall +1/−0
- tests/normalization/success/prelude/List/concat/1A.dhall +5/−0
- tests/normalization/success/prelude/List/concat/1B.dhall +1/−0
- tests/normalization/success/prelude/List/concatMap/0A.dhall +1/−0
- tests/normalization/success/prelude/List/concatMap/0B.dhall +1/−0
- tests/normalization/success/prelude/List/concatMap/1A.dhall +1/−0
- tests/normalization/success/prelude/List/concatMap/1B.dhall +1/−0
- tests/normalization/success/prelude/List/filter/0A.dhall +1/−0
- tests/normalization/success/prelude/List/filter/0B.dhall +1/−0
- tests/normalization/success/prelude/List/filter/1A.dhall +1/−0
- tests/normalization/success/prelude/List/filter/1B.dhall +1/−0
- tests/normalization/success/prelude/List/fold/0A.dhall +6/−0
- tests/normalization/success/prelude/List/fold/0B.dhall +1/−0
- tests/normalization/success/prelude/List/fold/1A.dhall +7/−0
- tests/normalization/success/prelude/List/fold/1B.dhall +1/−0
- tests/normalization/success/prelude/List/fold/2A.dhall +4/−0
- tests/normalization/success/prelude/List/fold/2B.dhall +4/−0
- tests/normalization/success/prelude/List/generate/0A.dhall +1/−0
- tests/normalization/success/prelude/List/generate/0B.dhall +1/−0
- tests/normalization/success/prelude/List/generate/1A.dhall +1/−0
- tests/normalization/success/prelude/List/generate/1B.dhall +1/−0
- tests/normalization/success/prelude/List/head/0A.dhall +1/−0
- tests/normalization/success/prelude/List/head/0B.dhall +1/−0
- tests/normalization/success/prelude/List/head/1A.dhall +1/−0
- tests/normalization/success/prelude/List/head/1B.dhall +1/−0
- tests/normalization/success/prelude/List/indexed/0A.dhall +1/−0
- tests/normalization/success/prelude/List/indexed/0B.dhall +4/−0
- tests/normalization/success/prelude/List/indexed/1A.dhall +1/−0
- tests/normalization/success/prelude/List/indexed/1B.dhall +1/−0
- tests/normalization/success/prelude/List/iterate/0A.dhall +1/−0
- tests/normalization/success/prelude/List/iterate/0B.dhall +1/−0
- tests/normalization/success/prelude/List/iterate/1A.dhall +1/−0
- tests/normalization/success/prelude/List/iterate/1B.dhall +1/−0
- tests/normalization/success/prelude/List/last/0A.dhall +1/−0
- tests/normalization/success/prelude/List/last/0B.dhall +1/−0
- tests/normalization/success/prelude/List/last/1A.dhall +1/−0
- tests/normalization/success/prelude/List/last/1B.dhall +1/−0
- tests/normalization/success/prelude/List/length/0A.dhall +1/−0
- tests/normalization/success/prelude/List/length/0B.dhall +1/−0
- tests/normalization/success/prelude/List/length/1A.dhall +1/−0
- tests/normalization/success/prelude/List/length/1B.dhall +1/−0
- tests/normalization/success/prelude/List/map/0A.dhall +1/−0
- tests/normalization/success/prelude/List/map/0B.dhall +1/−0
- tests/normalization/success/prelude/List/map/1A.dhall +1/−0
- tests/normalization/success/prelude/List/map/1B.dhall +1/−0
- tests/normalization/success/prelude/List/null/0A.dhall +1/−0
- tests/normalization/success/prelude/List/null/0B.dhall +1/−0
- tests/normalization/success/prelude/List/null/1A.dhall +1/−0
- tests/normalization/success/prelude/List/null/1B.dhall +1/−0
- tests/normalization/success/prelude/List/replicate/0A.dhall +1/−0
- tests/normalization/success/prelude/List/replicate/0B.dhall +1/−0
- tests/normalization/success/prelude/List/replicate/1A.dhall +1/−0
- tests/normalization/success/prelude/List/replicate/1B.dhall +1/−0
- tests/normalization/success/prelude/List/reverse/0A.dhall +1/−0
- tests/normalization/success/prelude/List/reverse/0B.dhall +1/−0
- tests/normalization/success/prelude/List/reverse/1A.dhall +1/−0
- tests/normalization/success/prelude/List/reverse/1B.dhall +1/−0
- tests/normalization/success/prelude/List/shifted/0A.dhall +15/−0
- tests/normalization/success/prelude/List/shifted/0B.dhall +10/−0
- tests/normalization/success/prelude/List/shifted/1A.dhall +1/−0
- tests/normalization/success/prelude/List/shifted/1B.dhall +1/−0
- tests/normalization/success/prelude/List/unzip/0A.dhall +7/−0
- tests/normalization/success/prelude/List/unzip/0B.dhall +1/−0
- tests/normalization/success/prelude/List/unzip/1A.dhall +1/−0
- tests/normalization/success/prelude/List/unzip/1B.dhall +1/−0
- tests/normalization/success/prelude/Natural/build/0A.dhall +6/−0
- tests/normalization/success/prelude/Natural/build/0B.dhall +1/−0
- tests/normalization/success/prelude/Natural/build/1A.dhall +6/−0
- tests/normalization/success/prelude/Natural/build/1B.dhall +1/−0
- tests/normalization/success/prelude/Natural/enumerate/0A.dhall +1/−0
- tests/normalization/success/prelude/Natural/enumerate/0B.dhall +1/−0
- tests/normalization/success/prelude/Natural/enumerate/1A.dhall +1/−0
- tests/normalization/success/prelude/Natural/enumerate/1B.dhall +1/−0
- tests/normalization/success/prelude/Natural/even/0A.dhall +1/−0
- tests/normalization/success/prelude/Natural/even/0B.dhall +1/−0
- tests/normalization/success/prelude/Natural/even/1A.dhall +1/−0
- tests/normalization/success/prelude/Natural/even/1B.dhall +1/−0
- tests/normalization/success/prelude/Natural/fold/0A.dhall +1/−0
- tests/normalization/success/prelude/Natural/fold/0B.dhall +1/−0
- tests/normalization/success/prelude/Natural/fold/1A.dhall +1/−0
- tests/normalization/success/prelude/Natural/fold/1B.dhall +1/−0
- tests/normalization/success/prelude/Natural/fold/2A.dhall +4/−0
- tests/normalization/success/prelude/Natural/fold/2B.dhall +1/−0
- tests/normalization/success/prelude/Natural/isZero/0A.dhall +1/−0
- tests/normalization/success/prelude/Natural/isZero/0B.dhall +1/−0
- tests/normalization/success/prelude/Natural/isZero/1A.dhall +1/−0
- tests/normalization/success/prelude/Natural/isZero/1B.dhall +1/−0
- tests/normalization/success/prelude/Natural/odd/0A.dhall +1/−0
- tests/normalization/success/prelude/Natural/odd/0B.dhall +1/−0
- tests/normalization/success/prelude/Natural/odd/1A.dhall +1/−0
- tests/normalization/success/prelude/Natural/odd/1B.dhall +1/−0
- tests/normalization/success/prelude/Natural/product/0A.dhall +1/−0
- tests/normalization/success/prelude/Natural/product/0B.dhall +1/−0
- tests/normalization/success/prelude/Natural/product/1A.dhall +1/−0
- tests/normalization/success/prelude/Natural/product/1B.dhall +1/−0
- tests/normalization/success/prelude/Natural/show/0A.dhall +1/−0
- tests/normalization/success/prelude/Natural/show/0B.dhall +1/−0
- tests/normalization/success/prelude/Natural/show/1A.dhall +1/−0
- tests/normalization/success/prelude/Natural/show/1B.dhall +1/−0
- tests/normalization/success/prelude/Natural/sum/0A.dhall +1/−0
- tests/normalization/success/prelude/Natural/sum/0B.dhall +1/−0
- tests/normalization/success/prelude/Natural/sum/1A.dhall +1/−0
- tests/normalization/success/prelude/Natural/sum/1B.dhall +1/−0
- tests/normalization/success/prelude/Natural/toDouble/0A.dhall +1/−0
- tests/normalization/success/prelude/Natural/toDouble/0B.dhall +1/−0
- tests/normalization/success/prelude/Natural/toDouble/1A.dhall +1/−0
- tests/normalization/success/prelude/Natural/toDouble/1B.dhall +1/−0
- tests/normalization/success/prelude/Natural/toInteger/0A.dhall +1/−0
- tests/normalization/success/prelude/Natural/toInteger/0B.dhall +1/−0
- tests/normalization/success/prelude/Natural/toInteger/1A.dhall +1/−0
- tests/normalization/success/prelude/Natural/toInteger/1B.dhall +1/−0
- tests/normalization/success/prelude/Optional/all/0A.dhall +1/−0
- tests/normalization/success/prelude/Optional/all/0B.dhall +1/−0
- tests/normalization/success/prelude/Optional/all/1A.dhall +1/−0
- tests/normalization/success/prelude/Optional/all/1B.dhall +1/−0
- tests/normalization/success/prelude/Optional/any/0A.dhall +1/−0
- tests/normalization/success/prelude/Optional/any/0B.dhall +1/−0
- tests/normalization/success/prelude/Optional/any/1A.dhall +1/−0
- tests/normalization/success/prelude/Optional/any/1B.dhall +1/−0
- tests/normalization/success/prelude/Optional/build/0A.dhall +7/−0
- tests/normalization/success/prelude/Optional/build/0B.dhall +1/−0
- tests/normalization/success/prelude/Optional/build/1A.dhall +7/−0
- tests/normalization/success/prelude/Optional/build/1B.dhall +1/−0
- tests/normalization/success/prelude/Optional/concat/0A.dhall +1/−0
- tests/normalization/success/prelude/Optional/concat/0B.dhall +1/−0
- tests/normalization/success/prelude/Optional/concat/1A.dhall +1/−0
- tests/normalization/success/prelude/Optional/concat/1B.dhall +1/−0
- tests/normalization/success/prelude/Optional/concat/2A.dhall +1/−0
- tests/normalization/success/prelude/Optional/concat/2B.dhall +1/−0
- tests/normalization/success/prelude/Optional/filter/0A.dhall +1/−0
- tests/normalization/success/prelude/Optional/filter/0B.dhall +1/−0
- tests/normalization/success/prelude/Optional/filter/1A.dhall +1/−0
- tests/normalization/success/prelude/Optional/filter/1B.dhall +1/−0
- tests/normalization/success/prelude/Optional/fold/0A.dhall +1/−0
- tests/normalization/success/prelude/Optional/fold/0B.dhall +1/−0
- tests/normalization/success/prelude/Optional/fold/1A.dhall +1/−0
- tests/normalization/success/prelude/Optional/fold/1B.dhall +1/−0
- tests/normalization/success/prelude/Optional/head/0A.dhall +1/−0
- tests/normalization/success/prelude/Optional/head/0B.dhall +1/−0
- tests/normalization/success/prelude/Optional/head/1A.dhall +1/−0
- tests/normalization/success/prelude/Optional/head/1B.dhall +1/−0
- tests/normalization/success/prelude/Optional/head/2A.dhall +1/−0
- tests/normalization/success/prelude/Optional/head/2B.dhall +1/−0
- tests/normalization/success/prelude/Optional/last/0A.dhall +1/−0
- tests/normalization/success/prelude/Optional/last/0B.dhall +1/−0
- tests/normalization/success/prelude/Optional/last/1A.dhall +1/−0
- tests/normalization/success/prelude/Optional/last/1B.dhall +1/−0
- tests/normalization/success/prelude/Optional/last/2A.dhall +1/−0
- tests/normalization/success/prelude/Optional/last/2B.dhall +1/−0
- tests/normalization/success/prelude/Optional/length/0A.dhall +1/−0
- tests/normalization/success/prelude/Optional/length/0B.dhall +1/−0
- tests/normalization/success/prelude/Optional/length/1A.dhall +1/−0
- tests/normalization/success/prelude/Optional/length/1B.dhall +1/−0
- tests/normalization/success/prelude/Optional/map/0A.dhall +1/−0
- tests/normalization/success/prelude/Optional/map/0B.dhall +1/−0
- tests/normalization/success/prelude/Optional/map/1A.dhall +1/−0
- tests/normalization/success/prelude/Optional/map/1B.dhall +1/−0
- tests/normalization/success/prelude/Optional/null/0A.dhall +1/−0
- tests/normalization/success/prelude/Optional/null/0B.dhall +1/−0
- tests/normalization/success/prelude/Optional/null/1A.dhall +1/−0
- tests/normalization/success/prelude/Optional/null/1B.dhall +1/−0
- tests/normalization/success/prelude/Optional/toList/0A.dhall +1/−0
- tests/normalization/success/prelude/Optional/toList/0B.dhall +1/−0
- tests/normalization/success/prelude/Optional/toList/1A.dhall +1/−0
- tests/normalization/success/prelude/Optional/toList/1B.dhall +1/−0
- tests/normalization/success/prelude/Optional/unzip/0A.dhall +1/−0
- tests/normalization/success/prelude/Optional/unzip/0B.dhall +1/−0
- tests/normalization/success/prelude/Optional/unzip/1A.dhall +1/−0
- tests/normalization/success/prelude/Optional/unzip/1B.dhall +1/−0
- tests/normalization/success/prelude/Text/concat/0A.dhall +1/−0
- tests/normalization/success/prelude/Text/concat/0B.dhall +1/−0
- tests/normalization/success/prelude/Text/concat/1A.dhall +1/−0
- tests/normalization/success/prelude/Text/concat/1B.dhall +1/−0
- tests/normalization/success/prelude/Text/concatMap/0A.dhall +1/−0
- tests/normalization/success/prelude/Text/concatMap/0B.dhall +1/−0
- tests/normalization/success/prelude/Text/concatMap/1A.dhall +1/−0
- tests/normalization/success/prelude/Text/concatMap/1B.dhall +1/−0
- tests/normalization/success/prelude/Text/concatMapSep/0A.dhall +1/−0
- tests/normalization/success/prelude/Text/concatMapSep/0B.dhall +1/−0
- tests/normalization/success/prelude/Text/concatMapSep/1A.dhall +1/−0
- tests/normalization/success/prelude/Text/concatMapSep/1B.dhall +1/−0
- tests/normalization/success/prelude/Text/concatSep/0A.dhall +1/−0
- tests/normalization/success/prelude/Text/concatSep/0B.dhall +1/−0
- tests/normalization/success/prelude/Text/concatSep/1A.dhall +1/−0
- tests/normalization/success/prelude/Text/concatSep/1B.dhall +1/−0
- tests/normalization/success/remoteSystemsA.dhall +52/−0
- tests/normalization/success/remoteSystemsB.dhall +1/−0
- tests/normalization/success/simple/doubleShowA.dhall +1/−0
- tests/normalization/success/simple/doubleShowB.dhall +1/−0
- tests/normalization/success/simple/integerShowA.dhall +4/−0
- tests/normalization/success/simple/integerShowB.dhall +1/−0
- tests/normalization/success/simple/integerToDoubleA.dhall +10/−0
- tests/normalization/success/simple/integerToDoubleB.dhall +9/−0
- tests/normalization/success/simple/letletA.dhall +3/−0
- tests/normalization/success/simple/letletB.dhall +1/−0
- tests/normalization/success/simple/listBuildA.dhall +22/−0
- tests/normalization/success/simple/listBuildB.dhall +7/−0
- tests/normalization/success/simple/multiLineA.dhall +4/−0
- tests/normalization/success/simple/multiLineB.dhall +4/−0
- tests/normalization/success/simple/naturalBuildA.dhall +18/−0
- tests/normalization/success/simple/naturalBuildB.dhall +7/−0
- tests/normalization/success/simple/naturalPlusA.dhall +1/−0
- tests/normalization/success/simple/naturalPlusB.dhall +1/−0
- tests/normalization/success/simple/naturalShowA.dhall +1/−0
- tests/normalization/success/simple/naturalShowB.dhall +1/−0
- tests/normalization/success/simple/naturalToIntegerA.dhall +1/−0
- tests/normalization/success/simple/naturalToIntegerB.dhall +1/−0
- tests/normalization/success/simple/optionalBuildA.dhall +32/−0
- tests/normalization/success/simple/optionalBuildB.dhall +9/−0
- tests/normalization/success/simple/optionalBuildFoldA.dhall +1/−0
- tests/normalization/success/simple/optionalBuildFoldB.dhall +1/−0
- tests/normalization/success/simple/optionalFoldA.dhall +7/−0
- tests/normalization/success/simple/optionalFoldB.dhall +1/−0
- tests/normalization/success/simple/sortOperatorA.dhall +1/−0
- tests/normalization/success/simple/sortOperatorB.dhall +1/−0
- tests/normalization/success/simplifications/andA.dhall +6/−0
- tests/normalization/success/simplifications/andB.dhall +6/−0
- tests/normalization/success/simplifications/eqA.dhall +4/−0
- tests/normalization/success/simplifications/eqB.dhall +4/−0
- tests/normalization/success/simplifications/ifThenElseA.dhall +3/−0
- tests/normalization/success/simplifications/ifThenElseB.dhall +3/−0
- tests/normalization/success/simplifications/neA.dhall +4/−0
- tests/normalization/success/simplifications/neB.dhall +4/−0
- tests/normalization/success/simplifications/orA.dhall +6/−0
- tests/normalization/success/simplifications/orB.dhall +6/−0
- tests/normalization/tutorial/combineTypes/0A.dhall +0/−1
- tests/normalization/tutorial/combineTypes/0B.dhall +0/−1
- tests/normalization/tutorial/projection/0A.dhall +0/−1
- tests/normalization/tutorial/projection/0B.dhall +0/−1
- tests/parser/annotations.dhall +0/−4
- tests/parser/blockComment.dhall +0/−3
- tests/parser/builtins.dhall +0/−31
- tests/parser/collectionImportType.dhall +0/−3
- tests/parser/constructors.dhall +0/−1
- tests/parser/double.dhall +0/−1
- tests/parser/doubleQuotedString.dhall +0/−1
- tests/parser/environmentVariables.dhall +0/−5
- tests/parser/escapedDoubleQuotedString.dhall +0/−1
- tests/parser/escapedSingleQuotedString.dhall +0/−4
- tests/parser/failure/doubleBoundsNeg.dhall +1/−0
- tests/parser/failure/doubleBoundsPos.dhall +1/−0
- tests/parser/failure/duplicateFields.dhall +0/−1
- tests/parser/fields.dhall +0/−1
- tests/parser/forall.dhall +0/−1
- tests/parser/functionType.dhall +0/−1
- tests/parser/identifier.dhall +0/−1
- tests/parser/ifThenElse.dhall +0/−1
- tests/parser/importAlt.dhall +0/−1
- tests/parser/interpolatedDoubleQuotedString.dhall +0/−1
- tests/parser/interpolatedSingleQuotedString.dhall +0/−4
- tests/parser/label.dhall +0/−2
- tests/parser/lambda.dhall +0/−1
- tests/parser/largeExpression.dhall +0/−254
- tests/parser/let.dhall +0/−3
- tests/parser/lineComment.dhall +0/−3
- tests/parser/list.dhall +0/−4
- tests/parser/merge.dhall +0/−7
- tests/parser/natural.dhall +0/−1
- tests/parser/nestedBlockComment.dhall +0/−3
- tests/parser/operators.dhall +0/−2
- tests/parser/parenthesizeUsing.dhall +0/−1
- tests/parser/pathTermination.dhall +0/−3
- tests/parser/paths.dhall +0/−5
- tests/parser/quotedLabel.dhall +0/−4
- tests/parser/record.dhall +0/−4
- tests/parser/reservedPrefix.dhall +0/−1
- tests/parser/singleQuotedString.dhall +0/−4
- tests/parser/sort.dhall +0/−1
- tests/parser/success/annotationsA.dhall +4/−0
- tests/parser/success/annotationsB.dhall +84/−0
- tests/parser/success/blockCommentA.dhall +3/−0
- tests/parser/success/blockCommentB.dhall +4/−0
- tests/parser/success/builtinsA.dhall +31/−0
- tests/parser/success/builtinsB.dhall +57/−0
- tests/parser/success/collectionImportTypeA.dhall +3/−0
- tests/parser/success/collectionImportTypeB.dhall +21/−0
- tests/parser/success/constructorsA.dhall +1/−0
- tests/parser/success/constructorsB.dhall +10/−0
- tests/parser/success/doubleA.dhall +1/−0
- tests/parser/success/doubleB.dhall +24/−0
- tests/parser/success/doubleQuotedStringA.dhall +1/−0
- tests/parser/success/doubleQuotedStringB.dhall +4/−0
- tests/parser/success/environmentVariablesA.dhall +5/−0
- tests/parser/success/environmentVariablesB.dhall +14/−0
- tests/parser/success/escapedDoubleQuotedStringA.dhall +1/−0
- tests/parser/success/escapedDoubleQuotedStringB.dhall +4/−0
- tests/parser/success/escapedSingleQuotedStringA.dhall +4/−0
- tests/parser/success/escapedSingleQuotedStringB.dhall +4/−0
- tests/parser/success/fieldsA.dhall +1/−0
- tests/parser/success/fieldsB.dhall +31/−0
- tests/parser/success/forallA.dhall +1/−0
- tests/parser/success/forallB.dhall +11/−0
- tests/parser/success/functionTypeA.dhall +1/−0
- tests/parser/success/functionTypeB.dhall +9/−0
- tests/parser/success/identifierA.dhall +1/−0
- tests/parser/success/identifierB.dhall +14/−0
- tests/parser/success/ifThenElseA.dhall +1/−0
- tests/parser/success/ifThenElseB.dhall +12/−0
- tests/parser/success/importAltA.dhall +1/−0
- tests/parser/success/importAltB.dhall +39/−0
- tests/parser/success/interpolatedDoubleQuotedStringA.dhall +1/−0
- tests/parser/success/interpolatedDoubleQuotedStringB.dhall +13/−0
- tests/parser/success/interpolatedSingleQuotedStringA.dhall +4/−0
- tests/parser/success/interpolatedSingleQuotedStringB.dhall +13/−0
- tests/parser/success/labelA.dhall +2/−0
- tests/parser/success/labelB.dhall +10/−0
- tests/parser/success/lambdaA.dhall +1/−0
- tests/parser/success/lambdaB.dhall +11/−0
- tests/parser/success/largeExpressionA.dhall +254/−0
- tests/parser/success/largeExpressionB.dhall +1303/−0
- tests/parser/success/letA.dhall +3/−0
- tests/parser/success/letB.dhall +19/−0
- tests/parser/success/lineCommentA.dhall +3/−0
- tests/parser/success/lineCommentB.dhall +4/−0
- tests/parser/success/listA.dhall +4/−0
- tests/parser/success/listB.dhall +40/−0
- tests/parser/success/mergeA.dhall +7/−0
- tests/parser/success/mergeB.dhall +45/−0
- tests/parser/success/multiletA.dhall +3/−0
- tests/parser/success/multiletB.dhall +21/−0
- tests/parser/success/naturalA.dhall +1/−0
- tests/parser/success/naturalB.dhall +20/−0
- tests/parser/success/nestedBlockCommentA.dhall +3/−0
- tests/parser/success/nestedBlockCommentB.dhall +4/−0
- tests/parser/success/operatorsA.dhall +2/−0
- tests/parser/success/operatorsB.dhall +96/−0
- tests/parser/success/parenthesizeUsingA.dhall +1/−0
- tests/parser/success/parenthesizeUsingB.dhall +12/−0
- tests/parser/success/pathTerminationA.dhall +3/−0
- tests/parser/success/pathTerminationB.dhall +67/−0
- tests/parser/success/pathsA.dhall +5/−0
- tests/parser/success/pathsB.dhall +30/−0
- tests/parser/success/quotedLabelA.dhall +4/−0
- tests/parser/success/quotedLabelB.dhall +35/−0
- tests/parser/success/quotedPathsA.dhall +3/−0
- tests/parser/success/quotedPathsB.dhall +21/−0
- tests/parser/success/recordA.dhall +4/−0
- tests/parser/success/recordB.dhall +25/−0
- tests/parser/success/reservedPrefixA.dhall +1/−0
- tests/parser/success/reservedPrefixB.dhall +14/−0
- tests/parser/success/singleQuotedStringA.dhall +4/−0
- tests/parser/success/singleQuotedStringB.dhall +4/−0
- tests/parser/success/sortA.dhall +1/−0
- tests/parser/success/sortB.dhall +1/−0
- tests/parser/success/templateA.dhall +13/−0
- tests/parser/success/templateB.dhall +60/−0
- tests/parser/success/unicodeCommentA.dhall +3/−0
- tests/parser/success/unicodeCommentB.dhall +4/−0
- tests/parser/success/unicodeDoubleQuotedStringA.dhall +1/−0
- tests/parser/success/unicodeDoubleQuotedStringB.dhall +4/−0
- tests/parser/success/unionA.dhall +4/−0
- tests/parser/success/unionB.dhall +38/−0
- tests/parser/success/urlsA.dhall +12/−0
- tests/parser/success/urlsB.dhall +83/−0
- tests/parser/success/whitespaceA.dhall +3/−0
- tests/parser/success/whitespaceB.dhall +4/−0
- tests/parser/success/whitespaceBuffetA.dhall +9/−0
- tests/parser/success/whitespaceBuffetB.dhall +8/−0
- tests/parser/template.dhall +0/−13
- tests/parser/unicodeComment.dhall +0/−3
- tests/parser/unicodeDoubleQuotedString.dhall +0/−1
- tests/parser/union.dhall +0/−4
- tests/parser/urls.dhall +0/−12
- tests/parser/whitespace.dhall +0/−3
- tests/parser/whitespaceBuffet.dhall +0/−9
- tests/typecheck/alternativesAreTypesA.dhall +0/−1
- tests/typecheck/alternativesAreTypesB.dhall +0/−1
- tests/typecheck/anonymousFunctionsInTypesA.dhall +0/−5
- tests/typecheck/anonymousFunctionsInTypesB.dhall +0/−4
- tests/typecheck/examples/Monoid/00A.dhall +0/−1
- tests/typecheck/examples/Monoid/00B.dhall +0/−1
- tests/typecheck/examples/Monoid/01A.dhall +0/−1
- tests/typecheck/examples/Monoid/01B.dhall +0/−1
- tests/typecheck/examples/Monoid/02A.dhall +0/−1
- tests/typecheck/examples/Monoid/02B.dhall +0/−1
- tests/typecheck/examples/Monoid/03A.dhall +0/−1
- tests/typecheck/examples/Monoid/03B.dhall +0/−1
- tests/typecheck/examples/Monoid/04A.dhall +0/−1
- tests/typecheck/examples/Monoid/04B.dhall +0/−1
- tests/typecheck/examples/Monoid/05A.dhall +0/−1
- tests/typecheck/examples/Monoid/05B.dhall +0/−1
- tests/typecheck/examples/Monoid/06A.dhall +0/−1
- tests/typecheck/examples/Monoid/06B.dhall +0/−1
- tests/typecheck/examples/Monoid/07A.dhall +0/−1
- tests/typecheck/examples/Monoid/07B.dhall +0/−1
- tests/typecheck/examples/Monoid/08A.dhall +0/−1
- tests/typecheck/examples/Monoid/08B.dhall +0/−1
- tests/typecheck/examples/Monoid/09A.dhall +0/−1
- tests/typecheck/examples/Monoid/09B.dhall +0/−1
- tests/typecheck/examples/Monoid/10A.dhall +0/−1
- tests/typecheck/examples/Monoid/10B.dhall +0/−1
- tests/typecheck/failure/hurkensParadox.dhall +49/−0
- tests/typecheck/fieldsAreTypesA.dhall +0/−1
- tests/typecheck/fieldsAreTypesB.dhall +0/−1
- tests/typecheck/kindParameterA.dhall +0/−1
- tests/typecheck/kindParameterB.dhall +0/−1
- tests/typecheck/mergeEquivalenceA.dhall +0/−6
- tests/typecheck/mergeEquivalenceB.dhall +0/−1
- tests/typecheck/success/accessEncodedTypeA.dhall +4/−0
- tests/typecheck/success/accessEncodedTypeB.dhall +4/−0
- tests/typecheck/success/accessTypeA.dhall +1/−0
- tests/typecheck/success/accessTypeB.dhall +1/−0
- tests/typecheck/success/encodedRecordOfTypesA.dhall +3/−0
- tests/typecheck/success/encodedRecordOfTypesB.dhall +1/−0
- tests/typecheck/success/prelude/Bool/and/0A.dhall +1/−0
- tests/typecheck/success/prelude/Bool/and/0B.dhall +1/−0
- tests/typecheck/success/prelude/Bool/and/1A.dhall +1/−0
- tests/typecheck/success/prelude/Bool/and/1B.dhall +1/−0
- tests/typecheck/success/prelude/Bool/build/0A.dhall +2/−0
- tests/typecheck/success/prelude/Bool/build/0B.dhall +1/−0
- tests/typecheck/success/prelude/Bool/build/1A.dhall +2/−0
- tests/typecheck/success/prelude/Bool/build/1B.dhall +1/−0
- tests/typecheck/success/prelude/Bool/even/0A.dhall +1/−0
- tests/typecheck/success/prelude/Bool/even/0B.dhall +1/−0
- tests/typecheck/success/prelude/Bool/even/1A.dhall +1/−0
- tests/typecheck/success/prelude/Bool/even/1B.dhall +1/−0
- tests/typecheck/success/prelude/Bool/even/2A.dhall +1/−0
- tests/typecheck/success/prelude/Bool/even/2B.dhall +1/−0
- tests/typecheck/success/prelude/Bool/even/3A.dhall +1/−0
- tests/typecheck/success/prelude/Bool/even/3B.dhall +1/−0
- tests/typecheck/success/prelude/Bool/fold/0A.dhall +1/−0
- tests/typecheck/success/prelude/Bool/fold/0B.dhall +1/−0
- tests/typecheck/success/prelude/Bool/fold/1A.dhall +1/−0
- tests/typecheck/success/prelude/Bool/fold/1B.dhall +1/−0
- tests/typecheck/success/prelude/Bool/not/0A.dhall +1/−0
- tests/typecheck/success/prelude/Bool/not/0B.dhall +1/−0
- tests/typecheck/success/prelude/Bool/not/1A.dhall +1/−0
- tests/typecheck/success/prelude/Bool/not/1B.dhall +1/−0
- tests/typecheck/success/prelude/Bool/odd/0A.dhall +1/−0
- tests/typecheck/success/prelude/Bool/odd/0B.dhall +1/−0
- tests/typecheck/success/prelude/Bool/odd/1A.dhall +1/−0
- tests/typecheck/success/prelude/Bool/odd/1B.dhall +1/−0
- tests/typecheck/success/prelude/Bool/odd/2A.dhall +1/−0
- tests/typecheck/success/prelude/Bool/odd/2B.dhall +1/−0
- tests/typecheck/success/prelude/Bool/odd/3A.dhall +1/−0
- tests/typecheck/success/prelude/Bool/odd/3B.dhall +1/−0
- tests/typecheck/success/prelude/Bool/or/0A.dhall +1/−0
- tests/typecheck/success/prelude/Bool/or/0B.dhall +1/−0
- tests/typecheck/success/prelude/Bool/or/1A.dhall +1/−0
- tests/typecheck/success/prelude/Bool/or/1B.dhall +1/−0
- tests/typecheck/success/prelude/Bool/show/0A.dhall +1/−0
- tests/typecheck/success/prelude/Bool/show/0B.dhall +1/−0
- tests/typecheck/success/prelude/Bool/show/1A.dhall +1/−0
- tests/typecheck/success/prelude/Bool/show/1B.dhall +1/−0
- tests/typecheck/success/prelude/Double/show/0A.dhall +1/−0
- tests/typecheck/success/prelude/Double/show/0B.dhall +1/−0
- tests/typecheck/success/prelude/Double/show/1A.dhall +1/−0
- tests/typecheck/success/prelude/Double/show/1B.dhall +1/−0
- tests/typecheck/success/prelude/Integer/show/0A.dhall +1/−0
- tests/typecheck/success/prelude/Integer/show/0B.dhall +1/−0
- tests/typecheck/success/prelude/Integer/show/1A.dhall +1/−0
- tests/typecheck/success/prelude/Integer/show/1B.dhall +1/−0
- tests/typecheck/success/prelude/Integer/toDouble/0A.dhall +1/−0
- tests/typecheck/success/prelude/Integer/toDouble/0B.dhall +1/−0
- tests/typecheck/success/prelude/Integer/toDouble/1A.dhall +1/−0
- tests/typecheck/success/prelude/Integer/toDouble/1B.dhall +1/−0
- tests/typecheck/success/prelude/List/all/0A.dhall +1/−0
- tests/typecheck/success/prelude/List/all/0B.dhall +1/−0
- tests/typecheck/success/prelude/List/all/1A.dhall +1/−0
- tests/typecheck/success/prelude/List/all/1B.dhall +1/−0
- tests/typecheck/success/prelude/List/any/0A.dhall +1/−0
- tests/typecheck/success/prelude/List/any/0B.dhall +1/−0
- tests/typecheck/success/prelude/List/any/1A.dhall +1/−0
- tests/typecheck/success/prelude/List/any/1B.dhall +1/−0
- tests/typecheck/success/prelude/List/build/0A.dhall +7/−0
- tests/typecheck/success/prelude/List/build/0B.dhall +1/−0
- tests/typecheck/success/prelude/List/build/1A.dhall +7/−0
- tests/typecheck/success/prelude/List/build/1B.dhall +1/−0
- tests/typecheck/success/prelude/List/concat/0A.dhall +5/−0
- tests/typecheck/success/prelude/List/concat/0B.dhall +1/−0
- tests/typecheck/success/prelude/List/concat/1A.dhall +5/−0
- tests/typecheck/success/prelude/List/concat/1B.dhall +1/−0
- tests/typecheck/success/prelude/List/concatMap/0A.dhall +1/−0
- tests/typecheck/success/prelude/List/concatMap/0B.dhall +1/−0
- tests/typecheck/success/prelude/List/concatMap/1A.dhall +1/−0
- tests/typecheck/success/prelude/List/concatMap/1B.dhall +1/−0
- tests/typecheck/success/prelude/List/filter/0A.dhall +1/−0
- tests/typecheck/success/prelude/List/filter/0B.dhall +1/−0
- tests/typecheck/success/prelude/List/filter/1A.dhall +1/−0
- tests/typecheck/success/prelude/List/filter/1B.dhall +1/−0
- tests/typecheck/success/prelude/List/fold/0A.dhall +6/−0
- tests/typecheck/success/prelude/List/fold/0B.dhall +1/−0
- tests/typecheck/success/prelude/List/fold/1A.dhall +7/−0
- tests/typecheck/success/prelude/List/fold/1B.dhall +1/−0
- tests/typecheck/success/prelude/List/fold/2A.dhall +4/−0
- tests/typecheck/success/prelude/List/fold/2B.dhall +1/−0
- tests/typecheck/success/prelude/List/generate/0A.dhall +1/−0
- tests/typecheck/success/prelude/List/generate/0B.dhall +1/−0
- tests/typecheck/success/prelude/List/generate/1A.dhall +1/−0
- tests/typecheck/success/prelude/List/generate/1B.dhall +1/−0
- tests/typecheck/success/prelude/List/head/0A.dhall +1/−0
- tests/typecheck/success/prelude/List/head/0B.dhall +1/−0
- tests/typecheck/success/prelude/List/head/1A.dhall +1/−0
- tests/typecheck/success/prelude/List/head/1B.dhall +1/−0
- tests/typecheck/success/prelude/List/indexed/0A.dhall +1/−0
- tests/typecheck/success/prelude/List/indexed/0B.dhall +1/−0
- tests/typecheck/success/prelude/List/indexed/1A.dhall +1/−0
- tests/typecheck/success/prelude/List/indexed/1B.dhall +1/−0
- tests/typecheck/success/prelude/List/iterate/0A.dhall +1/−0
- tests/typecheck/success/prelude/List/iterate/0B.dhall +1/−0
- tests/typecheck/success/prelude/List/iterate/1A.dhall +1/−0
- tests/typecheck/success/prelude/List/iterate/1B.dhall +1/−0
- tests/typecheck/success/prelude/List/last/0A.dhall +1/−0
- tests/typecheck/success/prelude/List/last/0B.dhall +1/−0
- tests/typecheck/success/prelude/List/last/1A.dhall +1/−0
- tests/typecheck/success/prelude/List/last/1B.dhall +1/−0
- tests/typecheck/success/prelude/List/length/0A.dhall +1/−0
- tests/typecheck/success/prelude/List/length/0B.dhall +1/−0
- tests/typecheck/success/prelude/List/length/1A.dhall +1/−0
- tests/typecheck/success/prelude/List/length/1B.dhall +1/−0
- tests/typecheck/success/prelude/List/map/0A.dhall +1/−0
- tests/typecheck/success/prelude/List/map/0B.dhall +1/−0
- tests/typecheck/success/prelude/List/map/1A.dhall +1/−0
- tests/typecheck/success/prelude/List/map/1B.dhall +1/−0
- tests/typecheck/success/prelude/List/null/0A.dhall +1/−0
- tests/typecheck/success/prelude/List/null/0B.dhall +1/−0
- tests/typecheck/success/prelude/List/null/1A.dhall +1/−0
- tests/typecheck/success/prelude/List/null/1B.dhall +1/−0
- tests/typecheck/success/prelude/List/replicate/0A.dhall +1/−0
- tests/typecheck/success/prelude/List/replicate/0B.dhall +1/−0
- tests/typecheck/success/prelude/List/replicate/1A.dhall +1/−0
- tests/typecheck/success/prelude/List/replicate/1B.dhall +1/−0
- tests/typecheck/success/prelude/List/reverse/0A.dhall +1/−0
- tests/typecheck/success/prelude/List/reverse/0B.dhall +1/−0
- tests/typecheck/success/prelude/List/reverse/1A.dhall +1/−0
- tests/typecheck/success/prelude/List/reverse/1B.dhall +1/−0
- tests/typecheck/success/prelude/List/shifted/0A.dhall +15/−0
- tests/typecheck/success/prelude/List/shifted/0B.dhall +1/−0
- tests/typecheck/success/prelude/List/shifted/1A.dhall +1/−0
- tests/typecheck/success/prelude/List/shifted/1B.dhall +1/−0
- tests/typecheck/success/prelude/List/unzip/0A.dhall +7/−0
- tests/typecheck/success/prelude/List/unzip/0B.dhall +1/−0
- tests/typecheck/success/prelude/List/unzip/1A.dhall +1/−0
- tests/typecheck/success/prelude/List/unzip/1B.dhall +1/−0
- tests/typecheck/success/prelude/Monoid/00A.dhall +1/−0
- tests/typecheck/success/prelude/Monoid/00B.dhall +1/−0
- tests/typecheck/success/prelude/Monoid/01A.dhall +1/−0
- tests/typecheck/success/prelude/Monoid/01B.dhall +1/−0
- tests/typecheck/success/prelude/Monoid/02A.dhall +1/−0
- tests/typecheck/success/prelude/Monoid/02B.dhall +1/−0
- tests/typecheck/success/prelude/Monoid/03A.dhall +1/−0
- tests/typecheck/success/prelude/Monoid/03B.dhall +1/−0
- tests/typecheck/success/prelude/Monoid/04A.dhall +1/−0
- tests/typecheck/success/prelude/Monoid/04B.dhall +1/−0
- tests/typecheck/success/prelude/Monoid/05A.dhall +1/−0
- tests/typecheck/success/prelude/Monoid/05B.dhall +1/−0
- tests/typecheck/success/prelude/Monoid/06A.dhall +1/−0
- tests/typecheck/success/prelude/Monoid/06B.dhall +1/−0
- tests/typecheck/success/prelude/Monoid/07A.dhall +1/−0
- tests/typecheck/success/prelude/Monoid/07B.dhall +1/−0
- tests/typecheck/success/prelude/Monoid/08A.dhall +1/−0
- tests/typecheck/success/prelude/Monoid/08B.dhall +1/−0
- tests/typecheck/success/prelude/Monoid/09A.dhall +1/−0
- tests/typecheck/success/prelude/Monoid/09B.dhall +1/−0
- tests/typecheck/success/prelude/Monoid/10A.dhall +1/−0
- tests/typecheck/success/prelude/Monoid/10B.dhall +1/−0
- tests/typecheck/success/prelude/Natural/build/0A.dhall +6/−0
- tests/typecheck/success/prelude/Natural/build/0B.dhall +1/−0
- tests/typecheck/success/prelude/Natural/build/1A.dhall +6/−0
- tests/typecheck/success/prelude/Natural/build/1B.dhall +1/−0
- tests/typecheck/success/prelude/Natural/enumerate/0A.dhall +1/−0
- tests/typecheck/success/prelude/Natural/enumerate/0B.dhall +1/−0
- tests/typecheck/success/prelude/Natural/enumerate/1A.dhall +1/−0
- tests/typecheck/success/prelude/Natural/enumerate/1B.dhall +1/−0
- tests/typecheck/success/prelude/Natural/even/0A.dhall +1/−0
- tests/typecheck/success/prelude/Natural/even/0B.dhall +1/−0
- tests/typecheck/success/prelude/Natural/even/1A.dhall +1/−0
- tests/typecheck/success/prelude/Natural/even/1B.dhall +1/−0
- tests/typecheck/success/prelude/Natural/fold/0A.dhall +1/−0
- tests/typecheck/success/prelude/Natural/fold/0B.dhall +1/−0
- tests/typecheck/success/prelude/Natural/fold/1A.dhall +1/−0
- tests/typecheck/success/prelude/Natural/fold/1B.dhall +1/−0
- tests/typecheck/success/prelude/Natural/fold/2A.dhall +4/−0
- tests/typecheck/success/prelude/Natural/fold/2B.dhall +1/−0
- tests/typecheck/success/prelude/Natural/isZero/0A.dhall +1/−0
- tests/typecheck/success/prelude/Natural/isZero/0B.dhall +1/−0
- tests/typecheck/success/prelude/Natural/isZero/1A.dhall +1/−0
- tests/typecheck/success/prelude/Natural/isZero/1B.dhall +1/−0
- tests/typecheck/success/prelude/Natural/odd/0A.dhall +1/−0
- tests/typecheck/success/prelude/Natural/odd/0B.dhall +1/−0
- tests/typecheck/success/prelude/Natural/odd/1A.dhall +1/−0
- tests/typecheck/success/prelude/Natural/odd/1B.dhall +1/−0
- tests/typecheck/success/prelude/Natural/product/0A.dhall +1/−0
- tests/typecheck/success/prelude/Natural/product/0B.dhall +1/−0
- tests/typecheck/success/prelude/Natural/product/1A.dhall +1/−0
- tests/typecheck/success/prelude/Natural/product/1B.dhall +1/−0
- tests/typecheck/success/prelude/Natural/show/0A.dhall +1/−0
- tests/typecheck/success/prelude/Natural/show/0B.dhall +1/−0
- tests/typecheck/success/prelude/Natural/show/1A.dhall +1/−0
- tests/typecheck/success/prelude/Natural/show/1B.dhall +1/−0
- tests/typecheck/success/prelude/Natural/sum/0A.dhall +1/−0
- tests/typecheck/success/prelude/Natural/sum/0B.dhall +1/−0
- tests/typecheck/success/prelude/Natural/sum/1A.dhall +1/−0
- tests/typecheck/success/prelude/Natural/sum/1B.dhall +1/−0
- tests/typecheck/success/prelude/Natural/toDouble/0A.dhall +1/−0
- tests/typecheck/success/prelude/Natural/toDouble/0B.dhall +1/−0
- tests/typecheck/success/prelude/Natural/toDouble/1A.dhall +1/−0
- tests/typecheck/success/prelude/Natural/toDouble/1B.dhall +1/−0
- tests/typecheck/success/prelude/Natural/toInteger/0A.dhall +1/−0
- tests/typecheck/success/prelude/Natural/toInteger/0B.dhall +1/−0
- tests/typecheck/success/prelude/Natural/toInteger/1A.dhall +1/−0
- tests/typecheck/success/prelude/Natural/toInteger/1B.dhall +1/−0
- tests/typecheck/success/prelude/Optional/all/0A.dhall +1/−0
- tests/typecheck/success/prelude/Optional/all/0B.dhall +1/−0
- tests/typecheck/success/prelude/Optional/all/1A.dhall +1/−0
- tests/typecheck/success/prelude/Optional/all/1B.dhall +1/−0
- tests/typecheck/success/prelude/Optional/any/0A.dhall +1/−0
- tests/typecheck/success/prelude/Optional/any/0B.dhall +1/−0
- tests/typecheck/success/prelude/Optional/any/1A.dhall +1/−0
- tests/typecheck/success/prelude/Optional/any/1B.dhall +1/−0
- tests/typecheck/success/prelude/Optional/build/0A.dhall +7/−0
- tests/typecheck/success/prelude/Optional/build/0B.dhall +1/−0
- tests/typecheck/success/prelude/Optional/build/1A.dhall +7/−0
- tests/typecheck/success/prelude/Optional/build/1B.dhall +1/−0
- tests/typecheck/success/prelude/Optional/concat/0A.dhall +1/−0
- tests/typecheck/success/prelude/Optional/concat/0B.dhall +1/−0
- tests/typecheck/success/prelude/Optional/concat/1A.dhall +1/−0
- tests/typecheck/success/prelude/Optional/concat/1B.dhall +1/−0
- tests/typecheck/success/prelude/Optional/concat/2A.dhall +1/−0
- tests/typecheck/success/prelude/Optional/concat/2B.dhall +1/−0
- tests/typecheck/success/prelude/Optional/filter/0A.dhall +1/−0
- tests/typecheck/success/prelude/Optional/filter/0B.dhall +1/−0
- tests/typecheck/success/prelude/Optional/filter/1A.dhall +1/−0
- tests/typecheck/success/prelude/Optional/filter/1B.dhall +1/−0
- tests/typecheck/success/prelude/Optional/fold/0A.dhall +1/−0
- tests/typecheck/success/prelude/Optional/fold/0B.dhall +1/−0
- tests/typecheck/success/prelude/Optional/fold/1A.dhall +1/−0
- tests/typecheck/success/prelude/Optional/fold/1B.dhall +1/−0
- tests/typecheck/success/prelude/Optional/head/0A.dhall +1/−0
- tests/typecheck/success/prelude/Optional/head/0B.dhall +1/−0
- tests/typecheck/success/prelude/Optional/head/1A.dhall +1/−0
- tests/typecheck/success/prelude/Optional/head/1B.dhall +1/−0
- tests/typecheck/success/prelude/Optional/head/2A.dhall +1/−0
- tests/typecheck/success/prelude/Optional/head/2B.dhall +1/−0
- tests/typecheck/success/prelude/Optional/last/0A.dhall +1/−0
- tests/typecheck/success/prelude/Optional/last/0B.dhall +1/−0
- tests/typecheck/success/prelude/Optional/last/1A.dhall +1/−0
- tests/typecheck/success/prelude/Optional/last/1B.dhall +1/−0
- tests/typecheck/success/prelude/Optional/last/2A.dhall +1/−0
- tests/typecheck/success/prelude/Optional/last/2B.dhall +1/−0
- tests/typecheck/success/prelude/Optional/length/0A.dhall +1/−0
- tests/typecheck/success/prelude/Optional/length/0B.dhall +1/−0
- tests/typecheck/success/prelude/Optional/length/1A.dhall +1/−0
- tests/typecheck/success/prelude/Optional/length/1B.dhall +1/−0
- tests/typecheck/success/prelude/Optional/map/0A.dhall +1/−0
- tests/typecheck/success/prelude/Optional/map/0B.dhall +1/−0
- tests/typecheck/success/prelude/Optional/map/1A.dhall +1/−0
- tests/typecheck/success/prelude/Optional/map/1B.dhall +1/−0
- tests/typecheck/success/prelude/Optional/null/0A.dhall +1/−0
- tests/typecheck/success/prelude/Optional/null/0B.dhall +1/−0
- tests/typecheck/success/prelude/Optional/null/1A.dhall +1/−0
- tests/typecheck/success/prelude/Optional/null/1B.dhall +1/−0
- tests/typecheck/success/prelude/Optional/toList/0A.dhall +1/−0
- tests/typecheck/success/prelude/Optional/toList/0B.dhall +1/−0
- tests/typecheck/success/prelude/Optional/toList/1A.dhall +1/−0
- tests/typecheck/success/prelude/Optional/toList/1B.dhall +1/−0
- tests/typecheck/success/prelude/Optional/unzip/0A.dhall +1/−0
- tests/typecheck/success/prelude/Optional/unzip/0B.dhall +1/−0
- tests/typecheck/success/prelude/Optional/unzip/1A.dhall +1/−0
- tests/typecheck/success/prelude/Optional/unzip/1B.dhall +1/−0
- tests/typecheck/success/prelude/Text/concat/0A.dhall +1/−0
- tests/typecheck/success/prelude/Text/concat/0B.dhall +1/−0
- tests/typecheck/success/prelude/Text/concat/1A.dhall +1/−0
- tests/typecheck/success/prelude/Text/concat/1B.dhall +1/−0
- tests/typecheck/success/prelude/Text/concatMap/0A.dhall +1/−0
- tests/typecheck/success/prelude/Text/concatMap/0B.dhall +1/−0
- tests/typecheck/success/prelude/Text/concatMap/1A.dhall +1/−0
- tests/typecheck/success/prelude/Text/concatMap/1B.dhall +1/−0
- tests/typecheck/success/prelude/Text/concatMapSep/0A.dhall +1/−0
- tests/typecheck/success/prelude/Text/concatMapSep/0B.dhall +1/−0
- tests/typecheck/success/prelude/Text/concatMapSep/1A.dhall +1/−0
- tests/typecheck/success/prelude/Text/concatMapSep/1B.dhall +1/−0
- tests/typecheck/success/prelude/Text/concatSep/0A.dhall +1/−0
- tests/typecheck/success/prelude/Text/concatSep/0B.dhall +1/−0
- tests/typecheck/success/prelude/Text/concatSep/1A.dhall +1/−0
- tests/typecheck/success/prelude/Text/concatSep/1B.dhall +1/−0
- tests/typecheck/success/recordOfTypesA.dhall +1/−0
- tests/typecheck/success/recordOfTypesB.dhall +1/−0
- tests/typecheck/success/simple/access/0A.dhall +1/−0
- tests/typecheck/success/simple/access/0B.dhall +1/−0
- tests/typecheck/success/simple/access/1A.dhall +1/−0
- tests/typecheck/success/simple/access/1B.dhall +1/−0
- tests/typecheck/success/simple/alternativesAreTypesA.dhall +1/−0
- tests/typecheck/success/simple/alternativesAreTypesB.dhall +1/−0
- tests/typecheck/success/simple/anonymousFunctionsInTypesA.dhall +5/−0
- tests/typecheck/success/simple/anonymousFunctionsInTypesB.dhall +4/−0
- tests/typecheck/success/simple/fieldsAreTypesA.dhall +1/−0
- tests/typecheck/success/simple/fieldsAreTypesB.dhall +1/−0
- tests/typecheck/success/simple/kindParameterA.dhall +1/−0
- tests/typecheck/success/simple/kindParameterB.dhall +1/−0
- tests/typecheck/success/simple/mergeEquivalenceA.dhall +6/−0
- tests/typecheck/success/simple/mergeEquivalenceB.dhall +1/−0
- tests/typecheck/success/simple/mixedFieldAccessA.dhall +7/−0
- tests/typecheck/success/simple/mixedFieldAccessB.dhall +1/−0
CHANGELOG.md view
@@ -1,3 +1,46 @@+1.19.0++* Supports version 4.0.0 of the language standard+ * See: https://github.com/dhall-lang/dhall-lang/releases/tag/v4.0.0+* BREAKING CHANGE TO THE LANGUAGE AND API: Prevent Hurkens' paradox+ * This fixes a type-checking soundness bug which permitted infinite loops+ * This is a breaking change because infinite loops are no longer possible+ * This is also a breaking change because a record of types is now treated as+ a kind instead of a type+ * See: https://github.com/dhall-lang/dhall-haskell/pull/680+* BREAKING CHANGE TO THE LANGUAGE AND API: `Double`s are now double-precision+ floating point numbers+ * This restricts the range of `Double`s to IEEE 754 double-precision+ floating point+ * This also implies that you can no longer convert `Scientific` values to+ `Dhall` expressions (i.e. no `Inject` instance for `Scientific`)+ * See: https://github.com/dhall-lang/dhall-haskell/pull/667+* BREAKING CHANGE TO THE API: Preserve field order for record projection+ * The API uses a new `Dhall.Set.Set` type instead of `Data.Set.Set`+ * See: https://github.com/dhall-lang/dhall-haskell/pull/670+* BREAKING CHANGE TO THE API: Add support for multi-`let` expressions+ * This changes the `Let` constructor to now support storing multiple+ bindings per `let` expression+ * See: https://github.com/dhall-lang/dhall-haskell/pull/675+* Support GHC 8.6+ * See: https://github.com/dhall-lang/dhall-haskell/pull/669+* Add support for quoted path components+ * i.e. `/"foo"/bar/"baz qux"` or `https://example.com/foo/"bar?baz"?qux`+ * See: https://github.com/dhall-lang/dhall-haskell/pull/690+* Fix parsing of `//\\` operator+ * See: https://github.com/dhall-lang/dhall-haskell/commit/9d0fd42d95ab69fa64da4afd8b60d69aca8e65a6+* Preserve Unicode characters when formatting code+ * See: https://github.com/dhall-lang/dhall-haskell/pull/679+* Allow identifier names to begin with `Some`+ * See: https://github.com/dhall-lang/dhall-haskell/pull/658+* Add `subExpressions` `Traversal`+ * See: https://github.com/dhall-lang/dhall-haskell/pull/660+* Add `normalizeWithM` for monadic normalization+ * See: https://github.com/dhall-lang/dhall-haskell/pull/371+* Custom normalizers now take precedence over default normalization logic+ * This allows one to override the implementation of built-in operators+ * See: https://github.com/dhall-lang/dhall-haskell/pull/684+ 1.18.0 * Supports version 3.0.0 of the language standard:
LICENSE view
@@ -1,24 +1,27 @@-Copyright (c) 2017 Gabriel Gonzalez+Copyright (c) 2018 Gabriel Gonzalez All rights reserved. -Redistribution and use in source and binary forms, with or without modification,-are permitted provided that the following conditions are met:- * Redistributions of source code must retain the above copyright notice,- this list of conditions and the following disclaimer.- * Redistributions in binary form must reproduce the above copyright notice,- this list of conditions and the following disclaimer in the documentation- and/or other materials provided with the distribution.- * Neither the name of Gabriel Gonzalez nor the names of other contributors- may be used to endorse or promote products derived from this software- without specific prior written permission.+Redistribution and use in source and binary forms, with or without+modification, are permitted provided that the following conditions are met: -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.+1. Redistributions of source code must retain the above copyright notice, this+list of conditions and the following disclaimer.++2. Redistributions in binary form must reproduce the above copyright notice,+this list of conditions and the following disclaimer in the documentation+and/or other materials provided with the distribution.++3. Neither the name of the author nor the names of its contributors may be+used to endorse or promote products derived from this software without+specific prior written permission.++THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Prelude/Monoid view
@@ -1,1 +1,1 @@-https://raw.githubusercontent.com/dhall-lang/Prelude/a22da69657b9316a3c51ba0bf80c9d4024db3fce/Monoid sha256:7c753f458fb433ef50e2fc517c0eaffbf21afd07186cefa92ea77173fe83304e+https://raw.githubusercontent.com/dhall-lang/Prelude/a22da69657b9316a3c51ba0bf80c9d4024db3fce/Monoid sha256:c4ff4f04ce9d3b7b579ff2ac7fe00258d665c701f895493b73082b750b28553d
Prelude/package.dhall view
@@ -1,1 +1,1 @@-https://raw.githubusercontent.com/dhall-lang/Prelude/e9c90396c02f9eb0fe66c00c544615cbfa068f34/package.dhall sha256:9fbb8a6db3360fa30086ea8462dc36087f0e4f87af2a1f802a8befdc5a08f809+https://raw.githubusercontent.com/dhall-lang/Prelude/e9c90396c02f9eb0fe66c00c544615cbfa068f34/package.dhall sha256:534e4a9e687ba74bfac71b30fc27aa269c0465087ef79bf483e876781602a454
benchmark/deep-nested-large-record/Main.hs view
@@ -25,7 +25,7 @@ issue412 prelude = Criterion.whnf TypeCheck.typeOf expr where expr- = Core.Let "prelude" Nothing prelude+ = Core.Let (pure (Core.Binding "prelude" Nothing prelude)) $ Core.ListLit Nothing $ Seq.replicate 5 $ Core.Var (Core.V "prelude" 0) `Core.Field` "types" `Core.Field` "Little" `Core.Field` "Foo"@@ -33,12 +33,15 @@ unionPerformance :: Core.Expr s TypeCheck.X -> Criterion.Benchmarkable unionPerformance prelude = Criterion.whnf TypeCheck.typeOf expr where- expr =- Core.Let "x" Nothing- (Core.Let "big" Nothing (prelude `Core.Field` "types" `Core.Field` "Big")- (Core.Prefer "big" "big")- )- "x"+ innerBinding =+ Core.Binding "big" Nothing+ (prelude `Core.Field` "types" `Core.Field` "Big")++ outerBinding =+ Core.Binding "x" Nothing+ (Core.Let (pure innerBinding) (Core.Prefer "big" "big"))++ expr = Core.Let (pure outerBinding) "x" main :: IO () main = do
dhall.cabal view
@@ -1,5 +1,5 @@ Name: dhall-Version: 1.18.0+Version: 1.19.0 Cabal-Version: >=1.10 Build-Type: Simple Tested-With: GHC == 8.0.1@@ -23,87 +23,268 @@ Read "Dhall.Tutorial" to learn how to use this library Category: Compiler Extra-Source-Files:+ benchmark/deep-nested-large-record/*.dhall+ benchmark/examples/*.dhall CHANGELOG.md- Prelude/package.dhall Prelude/Monoid+ Prelude/package.dhall tests/format/*.dhall- tests/normalization/tutorial/combineTypes/*.dhall- tests/normalization/tutorial/projection/*.dhall- tests/normalization/*.dhall- tests/normalization/examples/Bool/and/*.dhall- tests/normalization/examples/Bool/build/*.dhall- tests/normalization/examples/Bool/even/*.dhall- tests/normalization/examples/Bool/fold/*.dhall- tests/normalization/examples/Bool/not/*.dhall- tests/normalization/examples/Bool/odd/*.dhall- tests/normalization/examples/Bool/or/*.dhall- tests/normalization/examples/Bool/show/*.dhall- tests/normalization/examples/Double/show/*.dhall- tests/normalization/examples/Integer/show/*.dhall- tests/normalization/examples/Integer/toDouble/*.dhall- tests/normalization/examples/List/all/*.dhall- tests/normalization/examples/List/any/*.dhall- tests/normalization/examples/List/build/*.dhall- tests/normalization/examples/List/concat/*.dhall- tests/normalization/examples/List/concatMap/*.dhall- tests/normalization/examples/List/filter/*.dhall- tests/normalization/examples/List/fold/*.dhall- tests/normalization/examples/List/generate/*.dhall- tests/normalization/examples/List/head/*.dhall- tests/normalization/examples/List/indexed/*.dhall- tests/normalization/examples/List/iterate/*.dhall- tests/normalization/examples/List/last/*.dhall- tests/normalization/examples/List/length/*.dhall- tests/normalization/examples/List/map/*.dhall- tests/normalization/examples/List/null/*.dhall- tests/normalization/examples/List/replicate/*.dhall- tests/normalization/examples/List/reverse/*.dhall- tests/normalization/examples/List/shifted/*.dhall- tests/normalization/examples/List/unzip/*.dhall- tests/normalization/examples/Natural/build/*.dhall- tests/normalization/examples/Natural/enumerate/*.dhall- tests/normalization/examples/Natural/even/*.dhall- tests/normalization/examples/Natural/fold/*.dhall- tests/normalization/examples/Natural/isZero/*.dhall- tests/normalization/examples/Natural/odd/*.dhall- tests/normalization/examples/Natural/product/*.dhall- tests/normalization/examples/Natural/show/*.dhall- tests/normalization/examples/Natural/sum/*.dhall- tests/normalization/examples/Natural/toDouble/*.dhall- tests/normalization/examples/Natural/toInteger/*.dhall- tests/normalization/examples/Optional/all/*.dhall- tests/normalization/examples/Optional/any/*.dhall- tests/normalization/examples/Optional/build/*.dhall- tests/normalization/examples/Optional/concat/*.dhall- tests/normalization/examples/Optional/filter/*.dhall- tests/normalization/examples/Optional/fold/*.dhall- tests/normalization/examples/Optional/head/*.dhall- tests/normalization/examples/Optional/last/*.dhall- tests/normalization/examples/Optional/length/*.dhall- tests/normalization/examples/Optional/map/*.dhall- tests/normalization/examples/Optional/null/*.dhall- tests/normalization/examples/Optional/toList/*.dhall- tests/normalization/examples/Optional/unzip/*.dhall- tests/normalization/examples/Text/concat/*.dhall- tests/normalization/examples/Text/concatMap/*.dhall- tests/normalization/examples/Text/concatMapSep/*.dhall- tests/normalization/examples/Text/concatSep/*.dhall- tests/normalization/simplifications/*.dhall- tests/parser/*.dhall+ tests/import/data/fieldOrder/*.dhall+ tests/import/data/foo/bar/*.dhall+ tests/import/failure/*.dhall+ tests/import/success/*.dhall+ tests/normalization/success/*.dhall+ tests/normalization/success/haskell-tutorial/access/*.dhall+ tests/normalization/success/haskell-tutorial/combineTypes/*.dhall+ tests/normalization/success/haskell-tutorial/prefer/*.dhall+ tests/normalization/success/haskell-tutorial/projection/*.dhall+ tests/normalization/success/prelude/Bool/and/*.dhall+ tests/normalization/success/prelude/Bool/and/*.dhall+ tests/normalization/success/prelude/Bool/build/*.dhall+ tests/normalization/success/prelude/Bool/build/*.dhall+ tests/normalization/success/prelude/Bool/even/*.dhall+ tests/normalization/success/prelude/Bool/even/*.dhall+ tests/normalization/success/prelude/Bool/fold/*.dhall+ tests/normalization/success/prelude/Bool/fold/*.dhall+ tests/normalization/success/prelude/Bool/not/*.dhall+ tests/normalization/success/prelude/Bool/not/*.dhall+ tests/normalization/success/prelude/Bool/odd/*.dhall+ tests/normalization/success/prelude/Bool/odd/*.dhall+ tests/normalization/success/prelude/Bool/or/*.dhall+ tests/normalization/success/prelude/Bool/or/*.dhall+ tests/normalization/success/prelude/Bool/show/*.dhall+ tests/normalization/success/prelude/Bool/show/*.dhall+ tests/normalization/success/prelude/Double/show/*.dhall+ tests/normalization/success/prelude/Double/show/*.dhall+ tests/normalization/success/prelude/Integer/show/*.dhall+ tests/normalization/success/prelude/Integer/show/*.dhall+ tests/normalization/success/prelude/Integer/toDouble/*.dhall+ tests/normalization/success/prelude/Integer/toDouble/*.dhall+ tests/normalization/success/prelude/List/all/*.dhall+ tests/normalization/success/prelude/List/all/*.dhall+ tests/normalization/success/prelude/List/any/*.dhall+ tests/normalization/success/prelude/List/any/*.dhall+ tests/normalization/success/prelude/List/build/*.dhall+ tests/normalization/success/prelude/List/build/*.dhall+ tests/normalization/success/prelude/List/concat/*.dhall+ tests/normalization/success/prelude/List/concat/*.dhall+ tests/normalization/success/prelude/List/concatMap/*.dhall+ tests/normalization/success/prelude/List/concatMap/*.dhall+ tests/normalization/success/prelude/List/filter/*.dhall+ tests/normalization/success/prelude/List/filter/*.dhall+ tests/normalization/success/prelude/List/fold/*.dhall+ tests/normalization/success/prelude/List/fold/*.dhall+ tests/normalization/success/prelude/List/generate/*.dhall+ tests/normalization/success/prelude/List/generate/*.dhall+ tests/normalization/success/prelude/List/head/*.dhall+ tests/normalization/success/prelude/List/head/*.dhall+ tests/normalization/success/prelude/List/indexed/*.dhall+ tests/normalization/success/prelude/List/indexed/*.dhall+ tests/normalization/success/prelude/List/iterate/*.dhall+ tests/normalization/success/prelude/List/iterate/*.dhall+ tests/normalization/success/prelude/List/last/*.dhall+ tests/normalization/success/prelude/List/last/*.dhall+ tests/normalization/success/prelude/List/length/*.dhall+ tests/normalization/success/prelude/List/length/*.dhall+ tests/normalization/success/prelude/List/map/*.dhall+ tests/normalization/success/prelude/List/map/*.dhall+ tests/normalization/success/prelude/List/null/*.dhall+ tests/normalization/success/prelude/List/null/*.dhall+ tests/normalization/success/prelude/List/replicate/*.dhall+ tests/normalization/success/prelude/List/replicate/*.dhall+ tests/normalization/success/prelude/List/reverse/*.dhall+ tests/normalization/success/prelude/List/reverse/*.dhall+ tests/normalization/success/prelude/List/shifted/*.dhall+ tests/normalization/success/prelude/List/shifted/*.dhall+ tests/normalization/success/prelude/List/unzip/*.dhall+ tests/normalization/success/prelude/List/unzip/*.dhall+ tests/normalization/success/prelude/Natural/build/*.dhall+ tests/normalization/success/prelude/Natural/build/*.dhall+ tests/normalization/success/prelude/Natural/enumerate/*.dhall+ tests/normalization/success/prelude/Natural/enumerate/*.dhall+ tests/normalization/success/prelude/Natural/even/*.dhall+ tests/normalization/success/prelude/Natural/even/*.dhall+ tests/normalization/success/prelude/Natural/fold/*.dhall+ tests/normalization/success/prelude/Natural/fold/*.dhall+ tests/normalization/success/prelude/Natural/isZero/*.dhall+ tests/normalization/success/prelude/Natural/isZero/*.dhall+ tests/normalization/success/prelude/Natural/odd/*.dhall+ tests/normalization/success/prelude/Natural/odd/*.dhall+ tests/normalization/success/prelude/Natural/product/*.dhall+ tests/normalization/success/prelude/Natural/product/*.dhall+ tests/normalization/success/prelude/Natural/show/*.dhall+ tests/normalization/success/prelude/Natural/show/*.dhall+ tests/normalization/success/prelude/Natural/sum/*.dhall+ tests/normalization/success/prelude/Natural/sum/*.dhall+ tests/normalization/success/prelude/Natural/toDouble/*.dhall+ tests/normalization/success/prelude/Natural/toDouble/*.dhall+ tests/normalization/success/prelude/Natural/toInteger/*.dhall+ tests/normalization/success/prelude/Natural/toInteger/*.dhall+ tests/normalization/success/prelude/Optional/all/*.dhall+ tests/normalization/success/prelude/Optional/all/*.dhall+ tests/normalization/success/prelude/Optional/any/*.dhall+ tests/normalization/success/prelude/Optional/any/*.dhall+ tests/normalization/success/prelude/Optional/build/*.dhall+ tests/normalization/success/prelude/Optional/build/*.dhall+ tests/normalization/success/prelude/Optional/concat/*.dhall+ tests/normalization/success/prelude/Optional/concat/*.dhall+ tests/normalization/success/prelude/Optional/filter/*.dhall+ tests/normalization/success/prelude/Optional/filter/*.dhall+ tests/normalization/success/prelude/Optional/fold/*.dhall+ tests/normalization/success/prelude/Optional/fold/*.dhall+ tests/normalization/success/prelude/Optional/head/*.dhall+ tests/normalization/success/prelude/Optional/head/*.dhall+ tests/normalization/success/prelude/Optional/last/*.dhall+ tests/normalization/success/prelude/Optional/last/*.dhall+ tests/normalization/success/prelude/Optional/length/*.dhall+ tests/normalization/success/prelude/Optional/length/*.dhall+ tests/normalization/success/prelude/Optional/map/*.dhall+ tests/normalization/success/prelude/Optional/map/*.dhall+ tests/normalization/success/prelude/Optional/null/*.dhall+ tests/normalization/success/prelude/Optional/null/*.dhall+ tests/normalization/success/prelude/Optional/toList/*.dhall+ tests/normalization/success/prelude/Optional/toList/*.dhall+ tests/normalization/success/prelude/Optional/unzip/*.dhall+ tests/normalization/success/prelude/Optional/unzip/*.dhall+ tests/normalization/success/prelude/Text/concat/*.dhall+ tests/normalization/success/prelude/Text/concat/*.dhall+ tests/normalization/success/prelude/Text/concatMap/*.dhall+ tests/normalization/success/prelude/Text/concatMap/*.dhall+ tests/normalization/success/prelude/Text/concatMapSep/*.dhall+ tests/normalization/success/prelude/Text/concatMapSep/*.dhall+ tests/normalization/success/prelude/Text/concatSep/*.dhall+ tests/normalization/success/prelude/Text/concatSep/*.dhall+ tests/normalization/success/simple/*.dhall+ tests/normalization/success/simplifications/*.dhall tests/parser/failure/*.dhall+ tests/parser/success/*.dhall tests/regression/*.dhall tests/tutorial/*.dhall- tests/typecheck/*.dhall tests/typecheck/failure/*.dhall- tests/typecheck/examples/Monoid/*.dhall- tests/import/*.dhall- tests/import/data/foo/bar/a.dhall- benchmark/examples/*.dhall- benchmark/deep-nested-large-record/*.dhall+ tests/typecheck/success/*.dhall+ tests/typecheck/success/prelude/Bool/and/*.dhall+ tests/typecheck/success/prelude/Bool/and/*.dhall+ tests/typecheck/success/prelude/Bool/build/*.dhall+ tests/typecheck/success/prelude/Bool/build/*.dhall+ tests/typecheck/success/prelude/Bool/even/*.dhall+ tests/typecheck/success/prelude/Bool/even/*.dhall+ tests/typecheck/success/prelude/Bool/fold/*.dhall+ tests/typecheck/success/prelude/Bool/fold/*.dhall+ tests/typecheck/success/prelude/Bool/not/*.dhall+ tests/typecheck/success/prelude/Bool/not/*.dhall+ tests/typecheck/success/prelude/Bool/odd/*.dhall+ tests/typecheck/success/prelude/Bool/odd/*.dhall+ tests/typecheck/success/prelude/Bool/or/*.dhall+ tests/typecheck/success/prelude/Bool/or/*.dhall+ tests/typecheck/success/prelude/Bool/show/*.dhall+ tests/typecheck/success/prelude/Bool/show/*.dhall+ tests/typecheck/success/prelude/Double/show/*.dhall+ tests/typecheck/success/prelude/Double/show/*.dhall+ tests/typecheck/success/prelude/Integer/show/*.dhall+ tests/typecheck/success/prelude/Integer/show/*.dhall+ tests/typecheck/success/prelude/Integer/toDouble/*.dhall+ tests/typecheck/success/prelude/Integer/toDouble/*.dhall+ tests/typecheck/success/prelude/List/all/*.dhall+ tests/typecheck/success/prelude/List/all/*.dhall+ tests/typecheck/success/prelude/List/any/*.dhall+ tests/typecheck/success/prelude/List/any/*.dhall+ tests/typecheck/success/prelude/List/build/*.dhall+ tests/typecheck/success/prelude/List/build/*.dhall+ tests/typecheck/success/prelude/List/concat/*.dhall+ tests/typecheck/success/prelude/List/concat/*.dhall+ tests/typecheck/success/prelude/List/concatMap/*.dhall+ tests/typecheck/success/prelude/List/concatMap/*.dhall+ tests/typecheck/success/prelude/List/filter/*.dhall+ tests/typecheck/success/prelude/List/filter/*.dhall+ tests/typecheck/success/prelude/List/fold/*.dhall+ tests/typecheck/success/prelude/List/fold/*.dhall+ tests/typecheck/success/prelude/List/generate/*.dhall+ tests/typecheck/success/prelude/List/generate/*.dhall+ tests/typecheck/success/prelude/List/head/*.dhall+ tests/typecheck/success/prelude/List/head/*.dhall+ tests/typecheck/success/prelude/List/indexed/*.dhall+ tests/typecheck/success/prelude/List/indexed/*.dhall+ tests/typecheck/success/prelude/List/iterate/*.dhall+ tests/typecheck/success/prelude/List/iterate/*.dhall+ tests/typecheck/success/prelude/List/last/*.dhall+ tests/typecheck/success/prelude/List/last/*.dhall+ tests/typecheck/success/prelude/List/length/*.dhall+ tests/typecheck/success/prelude/List/length/*.dhall+ tests/typecheck/success/prelude/List/map/*.dhall+ tests/typecheck/success/prelude/List/map/*.dhall+ tests/typecheck/success/prelude/List/null/*.dhall+ tests/typecheck/success/prelude/List/null/*.dhall+ tests/typecheck/success/prelude/List/replicate/*.dhall+ tests/typecheck/success/prelude/List/replicate/*.dhall+ tests/typecheck/success/prelude/List/reverse/*.dhall+ tests/typecheck/success/prelude/List/reverse/*.dhall+ tests/typecheck/success/prelude/List/shifted/*.dhall+ tests/typecheck/success/prelude/List/shifted/*.dhall+ tests/typecheck/success/prelude/List/unzip/*.dhall+ tests/typecheck/success/prelude/List/unzip/*.dhall+ tests/typecheck/success/prelude/Monoid/*.dhall+ tests/typecheck/success/prelude/Natural/build/*.dhall+ tests/typecheck/success/prelude/Natural/build/*.dhall+ tests/typecheck/success/prelude/Natural/enumerate/*.dhall+ tests/typecheck/success/prelude/Natural/enumerate/*.dhall+ tests/typecheck/success/prelude/Natural/even/*.dhall+ tests/typecheck/success/prelude/Natural/even/*.dhall+ tests/typecheck/success/prelude/Natural/fold/*.dhall+ tests/typecheck/success/prelude/Natural/fold/*.dhall+ tests/typecheck/success/prelude/Natural/isZero/*.dhall+ tests/typecheck/success/prelude/Natural/isZero/*.dhall+ tests/typecheck/success/prelude/Natural/odd/*.dhall+ tests/typecheck/success/prelude/Natural/odd/*.dhall+ tests/typecheck/success/prelude/Natural/product/*.dhall+ tests/typecheck/success/prelude/Natural/product/*.dhall+ tests/typecheck/success/prelude/Natural/show/*.dhall+ tests/typecheck/success/prelude/Natural/show/*.dhall+ tests/typecheck/success/prelude/Natural/sum/*.dhall+ tests/typecheck/success/prelude/Natural/sum/*.dhall+ tests/typecheck/success/prelude/Natural/toDouble/*.dhall+ tests/typecheck/success/prelude/Natural/toDouble/*.dhall+ tests/typecheck/success/prelude/Natural/toInteger/*.dhall+ tests/typecheck/success/prelude/Natural/toInteger/*.dhall+ tests/typecheck/success/prelude/Optional/all/*.dhall+ tests/typecheck/success/prelude/Optional/all/*.dhall+ tests/typecheck/success/prelude/Optional/any/*.dhall+ tests/typecheck/success/prelude/Optional/any/*.dhall+ tests/typecheck/success/prelude/Optional/build/*.dhall+ tests/typecheck/success/prelude/Optional/build/*.dhall+ tests/typecheck/success/prelude/Optional/concat/*.dhall+ tests/typecheck/success/prelude/Optional/concat/*.dhall+ tests/typecheck/success/prelude/Optional/filter/*.dhall+ tests/typecheck/success/prelude/Optional/filter/*.dhall+ tests/typecheck/success/prelude/Optional/fold/*.dhall+ tests/typecheck/success/prelude/Optional/fold/*.dhall+ tests/typecheck/success/prelude/Optional/head/*.dhall+ tests/typecheck/success/prelude/Optional/head/*.dhall+ tests/typecheck/success/prelude/Optional/last/*.dhall+ tests/typecheck/success/prelude/Optional/last/*.dhall+ tests/typecheck/success/prelude/Optional/length/*.dhall+ tests/typecheck/success/prelude/Optional/length/*.dhall+ tests/typecheck/success/prelude/Optional/map/*.dhall+ tests/typecheck/success/prelude/Optional/map/*.dhall+ tests/typecheck/success/prelude/Optional/null/*.dhall+ tests/typecheck/success/prelude/Optional/null/*.dhall+ tests/typecheck/success/prelude/Optional/toList/*.dhall+ tests/typecheck/success/prelude/Optional/toList/*.dhall+ tests/typecheck/success/prelude/Optional/unzip/*.dhall+ tests/typecheck/success/prelude/Optional/unzip/*.dhall+ tests/typecheck/success/prelude/Text/concat/*.dhall+ tests/typecheck/success/prelude/Text/concat/*.dhall+ tests/typecheck/success/prelude/Text/concatMap/*.dhall+ tests/typecheck/success/prelude/Text/concatMap/*.dhall+ tests/typecheck/success/prelude/Text/concatMapSep/*.dhall+ tests/typecheck/success/prelude/Text/concatMapSep/*.dhall+ tests/typecheck/success/prelude/Text/concatSep/*.dhall+ tests/typecheck/success/prelude/Text/concatSep/*.dhall+ tests/typecheck/success/simple/access/*.dhall+ tests/typecheck/success/simple/*.dhall Source-Repository head Type: git- Location: https://github.com/dhall-lang/dhall-haskell+ Location: https://github.com/dhall-lang/dhall-haskell/tree/master/dhall Flag with-http Description: Include support for importing dhall modules from HTTP URLs@@ -130,7 +311,7 @@ megaparsec >= 7.0.0 && < 7.1 , memory >= 0.14 && < 0.15, mtl >= 2.2.1 && < 2.3 ,- optparse-applicative < 0.15,+ optparse-applicative >= 0.14.0.0 && < 0.15, parsers >= 0.12.4 && < 0.13, prettyprinter >= 1.2.0.1 && < 1.3 , prettyprinter-ansi-terminal >= 1.1.1 && < 1.2 ,@@ -141,6 +322,7 @@ text >= 0.11.1.0 && < 1.3 , transformers >= 0.2.0.0 && < 0.6 , unordered-containers >= 0.1.3.0 && < 0.3 ,+ uri-encode < 1.6 , vector >= 0.11.0.0 && < 0.13 if flag(with-http) Build-Depends:@@ -164,6 +346,7 @@ Dhall.Lint, Dhall.Main, Dhall.Map,+ Dhall.Set, Dhall.Parser, Dhall.Pretty, Dhall.Repl,
src/Dhall.hs view
@@ -211,7 +211,7 @@ defaultEvaluateSettings :: EvaluateSettings defaultEvaluateSettings = EvaluateSettings { _startingContext = Dhall.Context.empty- , _normalizer = Dhall.Core.ReifiedNormalizer (const Nothing)+ , _normalizer = Dhall.Core.ReifiedNormalizer (const (pure Nothing)) , _standardVersion = Dhall.Binary.defaultStandardVersion } @@ -616,16 +616,11 @@ {-| Decode a `Scientific` ->>> input scientific "1e1000000000"-1.0e1000000000+>>> input scientific "1e100"+1.0e100 -} scientific :: Type Scientific-scientific = Type {..}- where- extract (DoubleLit n) = pure n- extract _ = empty-- expected = Double+scientific = fmap Data.Scientific.fromFloatDigits double {-| Decode a `Double` @@ -633,8 +628,13 @@ 42.0 -} double :: Type Double-double = fmap Data.Scientific.toRealFloat scientific+double = Type {..}+ where+ extract (DoubleLit n) = pure n+ extract _ = empty + expected = Double+ {-| Decode lazy `Text` >>> input lazyText "\"Test\""@@ -1103,16 +1103,12 @@ declared = Integer -instance Inject Scientific where+instance Inject Double where injectWith _ = InputType {..} where embed = DoubleLit declared = Double--instance Inject Double where- injectWith =- fmap (contramap (Data.Scientific.fromFloatDigits :: Double -> Scientific)) injectWith instance Inject () where injectWith _ = InputType {..}
src/Dhall/Binary.hs view
@@ -24,7 +24,8 @@ import Control.Applicative (empty) import Control.Exception (Exception) import Dhall.Core- ( Chunks(..)+ ( Binding(..)+ , Chunks(..) , Const(..) , Directory(..) , Expr(..)@@ -38,26 +39,28 @@ , URL(..) , Var(..) )+import Data.Foldable (toList)+import Data.List.NonEmpty (NonEmpty(..)) import Data.Monoid ((<>)) import Data.Text (Text) import Options.Applicative (Parser) import Prelude hiding (exponent)+import GHC.Float (double2Float, float2Double)+import Codec.CBOR.Magic (floatToWord16, wordToFloat16) -import qualified Data.Foldable-import qualified Data.Scientific import qualified Data.Sequence-import qualified Data.Set import qualified Data.Text import qualified Dhall.Map+import qualified Dhall.Set import qualified Options.Applicative -- | Supported version strings data StandardVersion- = V_3_0_0- -- ^ Version "3.0.0"+ = V_4_0_0+ -- ^ Version "4.0.0" defaultStandardVersion :: StandardVersion-defaultStandardVersion = V_3_0_0+defaultStandardVersion = V_4_0_0 parseStandardVersion :: Parser StandardVersion parseStandardVersion =@@ -71,7 +74,7 @@ readVersion = do string <- Options.Applicative.str case string :: Text of- "3.0.0" -> return V_3_0_0+ "4.0.0" -> return V_4_0_0 _ -> fail "Unsupported version" {-| Convert a function applied to multiple arguments to the base function and@@ -297,7 +300,7 @@ TList ([ TInt 10, t₁ ] ++ xs₁) where t₁ = encode t₀- xs₁ = map TString (Data.Foldable.toList xs₀)+ xs₁ = map TString (Dhall.Set.toList xs₀) encode (Union xTs₀) = TList [ TInt 11, TMap xTs₁ ] where@@ -332,14 +335,17 @@ TList [ TInt 15, TInteger (fromIntegral n) ] encode (IntegerLit n) = TList [ TInt 16, TInteger n ]-encode (DoubleLit n) =- TList [ TInt 17, TTagged 4 (TList [ TInt exponent, TInteger mantissa ]) ]+encode (DoubleLit n64)+ -- cborg always encodes NaN as "7e00"+ | isNaN n64 = THalf n32+ | useHalf = THalf n32+ | useFloat = TFloat n32+ | otherwise = TDouble n64 where- normalized = Data.Scientific.normalize n-- exponent = Data.Scientific.base10Exponent normalized-- mantissa = Data.Scientific.coefficient normalized+ n32 = double2Float n64+ n16 = floatToWord16 n32+ useFloat = n64 == float2Double n32+ useHalf = n64 == (float2Double . wordToFloat16 . fromIntegral) n16 encode (TextLit (Chunks xys₀ z₀)) = TList ([ TInt 18 ] ++ xys₁ ++ [ z₁ ]) where@@ -352,17 +358,21 @@ z₁ = TString z₀ encode (Embed x) = importToTerm x-encode (Let x Nothing a₀ b₀) =- TList [ TInt 25, TString x, a₁, b₁ ]+encode (Let as₀ b₀) =+ TList ([ TInt 25 ] ++ as₁ ++ [ b₁ ]) where- a₁ = encode a₀+ as₁ = do+ Binding x mA₀ a₀ <- toList as₀++ let mA₁ = case mA₀ of+ Nothing -> TNull+ Just _A₀ -> encode _A₀++ let a₁ = encode a₀++ [ TString x, mA₁, a₁ ]+ b₁ = encode b₀-encode (Let x (Just _A₀) a₀ b₀) =- TList [ TInt 25, TString x, _A₁, a₁, b₁ ]- where- a₁ = encode a₀- _A₁ = encode _A₀- b₁ = encode b₀ encode (Annot t₀ _T₀) = TList [ TInt 26, t₁, _T₁ ] where@@ -585,7 +595,7 @@ xs₀ <- traverse process xs₁ - return (Project t₀ (Data.Set.fromList xs₀))+ return (Project t₀ (Dhall.Set.fromList xs₀)) decode (TList [ TInt 11, TMap xTs₁ ]) = do let process (TString x, _T₁) = do _T₀ <- decode _T₁@@ -630,10 +640,12 @@ return (IntegerLit (fromIntegral n)) decode (TList [ TInt 16, TInteger n ]) = do return (IntegerLit n)-decode (TList [ TInt 17, TTagged 4 (TList [ TInt exponent, TInteger mantissa ]) ]) = do- return (DoubleLit (Data.Scientific.scientific mantissa exponent))-decode (TList [ TInt 17, TTagged 4 (TList [ TInt exponent, TInt mantissa ]) ]) = do- return (DoubleLit (Data.Scientific.scientific (fromIntegral mantissa) exponent))+decode (THalf n) = do+ return (DoubleLit (float2Double n))+decode (TFloat n) = do+ return (DoubleLit (float2Double n))+decode (TDouble n) = do+ return (DoubleLit n) decode (TList (TInt 18 : xs)) = do let process (TString x : y₁ : zs) = do y₀ <- decode y₁@@ -722,15 +734,29 @@ let importHashed = ImportHashed {..} let importMode = Code return (Embed (Import {..}))-decode (TList [ TInt 25, TString x, a₁, b₁ ]) = do- a₀ <- decode a₁- b₀ <- decode b₁- return (Let x Nothing a₀ b₀)-decode (TList [ TInt 25, TString x, _A₁, a₁, b₁ ]) = do- _A₀ <- decode _A₁- a₀ <- decode a₁- b₀ <- decode b₁- return (Let x (Just _A₀) a₀ b₀)+decode (TList (TInt 25 : xs)) = do+ let process (TString x : _A₁ : a₁ : ls₁) = do+ mA₀ <- case _A₁ of+ TNull -> return Nothing+ _ -> fmap Just (decode _A₁)++ a₀ <- decode a₁++ let binding = Binding x mA₀ a₀++ case ls₁ of+ [ b₁ ] -> do+ b₀ <- decode b₁++ return (Let (binding :| []) b₀)+ _ -> do+ Let (l₀ :| ls₀) b₀ <- process ls₁++ return (Let (binding :| (l₀ : ls₀)) b₀)+ process _ = do+ empty++ process xs decode (TList [ TInt 26, t₁, _T₁ ]) = do t₀ <- decode t₁ _T₀ <- decode _T₁@@ -752,7 +778,7 @@ fail ("Cannot decode the version from this decoded CBOR expression: " <> show term) case version of- "3.0.0" -> do+ "4.0.0" -> do return () _ -> do fail ("This decoded version is not supported: " <> Data.Text.unpack version)@@ -765,8 +791,8 @@ -- | Encode a Dhall expression using the specified `Version` encodeWithVersion :: StandardVersion -> Expr s Import -> Term-encodeWithVersion V_3_0_0 expression =- TList [ TString "3.0.0", encode expression ]+encodeWithVersion V_4_0_0 expression =+ TList [ TString "4.0.0", encode expression ] data DecodingFailure = CannotDecodeVersionString Term
src/Dhall/Core.hs view
@@ -29,6 +29,7 @@ , Path , Scheme(..) , Var(..)+ , Binding(..) , Chunks(..) , Expr(..) @@ -36,7 +37,9 @@ , alphaNormalize , normalize , normalizeWith+ , normalizeWithM , Normalizer+ , NormalizerM , ReifiedNormalizer (..) , judgmentallyEqual , subst@@ -53,6 +56,8 @@ , internalError , reservedIdentifiers , escapeText+ , subExpressions+ , pathCharacter ) where #if MIN_VERSION_base(4,8,0)@@ -64,16 +69,17 @@ import Data.Bifunctor (Bifunctor(..)) import Data.Data (Data) import Data.Foldable+import Data.Functor.Identity (Identity(..)) import Data.HashSet (HashSet)+import Data.List.NonEmpty (NonEmpty(..)) import Data.String (IsString(..))-import Data.Scientific (Scientific) import Data.Semigroup (Semigroup(..)) import Data.Sequence (Seq, ViewL(..), ViewR(..))-import Data.Set (Set) import Data.Text (Text)-import Data.Text.Prettyprint.Doc (Pretty)+import Data.Text.Prettyprint.Doc (Doc, Pretty) import Data.Traversable import Dhall.Map (Map)+import Dhall.Set (Set) import {-# SOURCE #-} Dhall.Pretty.Internal import GHC.Generics (Generic) import Numeric.Natural (Natural)@@ -83,10 +89,10 @@ import qualified Crypto.Hash import qualified Data.HashSet import qualified Data.Sequence-import qualified Data.Set import qualified Data.Text import qualified Data.Text.Prettyprint.Doc as Pretty import qualified Dhall.Map+import qualified Dhall.Set {-| Constants for a pure type system @@ -98,13 +104,11 @@ ... and the valid rule pairs are: > ⊦ Type ↝ Type : Type -- Functions from terms to terms (ordinary functions)-> ⊦ Kind ↝ Type : Type -- Functions from types to terms (polymorphic functions)-> ⊦ Kind ↝ Kind : Kind -- Functions from types to types (type constructors)-> ⊦ Sort ↝ Type : Type -- Functions from kinds to terms (kind-polymorphic functions)-> ⊦ Sort ↝ Kind : Kind -- Functions from kinds to types (polymorphic type constructors)-> ⊦ Sort ↝ Sort : Sort -- Functions from kinds to kinds (kind constructors)-- These are the same rule pairs as System Fω+> ⊦ Kind ↝ Type : Type -- Functions from types to terms (type-polymorphic functions)+> ⊦ Sort ↝ Type : Type -- Functions from kinds to terms+> ⊦ Kind ↝ Kind : Kind -- Functions from types to types (type-level functions)+> ⊦ Sort ↝ Kind : Sort -- Functions from kinds to types (kind-polymorphic functions)+> ⊦ Sort ↝ Sort : Sort -- Functions from kinds to kinds (kind-level functions) Note that Dhall does not support functions from terms to types and therefore Dhall is not a dependently typed language@@ -128,10 +132,7 @@ Directory (components₁ <> components₀) instance Pretty Directory where- pretty (Directory {..}) =- foldMap prettyComponent (reverse components)- where- prettyComponent text = "/" <> Pretty.pretty text+ pretty (Directory {..}) = foldMap prettyPathComponent (reverse components) {-| A `File` is a `directory` followed by one additional path component representing the `file` name@@ -142,7 +143,9 @@ } deriving (Eq, Generic, Ord, Show) instance Pretty File where- pretty (File {..}) = Pretty.pretty directory <> "/" <> Pretty.pretty file+ pretty (File {..}) =+ Pretty.pretty directory+ <> prettyPathComponent file instance Semigroup File where File directory₀ _ <> File directory₁ file =@@ -329,9 +332,9 @@ | Pi Text (Expr s a) (Expr s a) -- | > App f a ~ f a | App (Expr s a) (Expr s a)- -- | > Let x Nothing r e ~ let x = r in e- -- > Let x (Just t) r e ~ let x : t = r in e- | Let Text (Maybe (Expr s a)) (Expr s a) (Expr s a)+ -- | > Let [Binding x Nothing r] e ~ let x = r in e+ -- > Let [Binding x (Just t) r] e ~ let x : t = r in e+ | Let (NonEmpty (Binding s a)) (Expr s a) -- | > Annot x t ~ x : t | Annot (Expr s a) (Expr s a) -- | > Bool ~ Bool@@ -381,7 +384,7 @@ -- | > Double ~ Double | Double -- | > DoubleLit n ~ n- | DoubleLit Scientific+ | DoubleLit Double -- | > DoubleShow ~ Double/show | DoubleShow -- | > Text ~ Text@@ -436,7 +439,7 @@ | Combine (Expr s a) (Expr s a) -- | > CombineTypes x y ~ x ⩓ y | CombineTypes (Expr s a) (Expr s a)- -- | > CombineRight x y ~ x ⫽ y+ -- | > Prefer x y ~ x ⫽ y | Prefer (Expr s a) (Expr s a) -- | > Merge x y (Just t ) ~ merge x y : t -- > Merge x y Nothing ~ merge x y@@ -465,7 +468,7 @@ fmap f (Lam v e1 e2) = Lam v (fmap f e1) (fmap f e2) fmap f (Pi v e1 e2) = Pi v (fmap f e1) (fmap f e2) fmap f (App e1 e2) = App (fmap f e1) (fmap f e2)- fmap f (Let v maybeE e1 e2) = Let v (fmap (fmap f) maybeE) (fmap f e1) (fmap f e2)+ fmap f (Let as b) = Let (fmap (fmap f) as) (fmap f b) fmap f (Annot e1 e2) = Annot (fmap f e1) (fmap f e2) fmap _ Bool = Bool fmap _ (BoolLit b) = BoolLit b@@ -540,7 +543,9 @@ Lam a b c >>= k = Lam a (b >>= k) (c >>= k) Pi a b c >>= k = Pi a (b >>= k) (c >>= k) App a b >>= k = App (a >>= k) (b >>= k)- Let a b c d >>= k = Let a (fmap (>>= k) b) (c >>= k) (d >>= k)+ Let as b >>= k = Let (fmap f as) (b >>= k)+ where+ f (Binding c d e) = Binding c (fmap (>>= k) d) (e >>= k) Annot a b >>= k = Annot (a >>= k) (b >>= k) Bool >>= _ = Bool BoolLit a >>= _ = BoolLit a@@ -607,7 +612,7 @@ first k (Lam a b c ) = Lam a (first k b) (first k c) first k (Pi a b c ) = Pi a (first k b) (first k c) first k (App a b ) = App (first k a) (first k b)- first k (Let a b c d ) = Let a (fmap (first k) b) (first k c) (first k d)+ first k (Let as b ) = Let (fmap (first k) as) (first k b) first k (Annot a b ) = Annot (first k a) (first k b) first _ Bool = Bool first _ (BoolLit a ) = BoolLit a@@ -673,6 +678,17 @@ instance IsString (Expr s a) where fromString str = Var (fromString str) +data Binding s a = Binding+ { variable :: Text+ , annotation :: Maybe (Expr s a)+ , value :: Expr s a+ } deriving (Functor, Foldable, Generic, Traversable, Show, Eq, Data)++instance Bifunctor Binding where+ first k (Binding a b c) = Binding a (fmap (first k) b) (first k c)++ second = fmap+ -- | The body of an interpolated @Text@ literal data Chunks s a = Chunks [(Text, Expr s a)] Text deriving (Functor, Foldable, Generic, Traversable, Show, Eq, Data)@@ -790,14 +806,24 @@ where f' = shift d v f a' = shift d v a-shift d (V x n) (Let f mt r e) = Let f mt' r' e'+shift d (V x₀ n₀) (Let (Binding x₁ mA₀ a₀ :| []) b₀) =+ Let (Binding x₁ mA₁ a₁ :| []) b₁ where- e' = shift d (V x n') e- where- n' = if x == f then n + 1 else n+ n₁ = if x₀ == x₁ then n₀ + 1 else n₀ - mt' = fmap (shift d (V x n)) mt- r' = shift d (V x n) r+ mA₁ = fmap (shift d (V x₀ n₀)) mA₀+ a₁ = shift d (V x₀ n₀) a₀++ b₁ = shift d (V x₀ n₁) b₀+shift d (V x₀ n₀) (Let (Binding x₁ mA₀ a₀ :| (l₀ : ls₀)) b₀) =+ Let (Binding x₁ mA₁ a₁ :| (l₁ : ls₁)) b₁+ where+ n₁ = if x₀ == x₁ then n₀ + 1 else n₀++ mA₁ = fmap (shift d (V x₀ n₀)) mA₀+ a₁ = shift d (V x₀ n₀) a₀++ Let (l₁ :| ls₁) b₁ = shift d (V x₀ n₁) (Let (l₀ :| ls₀) b₀) shift d v (Annot a b) = Annot a' b' where a' = shift d v a@@ -955,14 +981,28 @@ f' = subst v e f a' = subst v e a subst v e (Var v') = if v == v' then e else Var v'-subst (V x n) e (Let f mt r b) = Let f mt' r' b'+subst (V x₀ n₀) e₀ (Let (Binding x₁ mA₀ a₀ :| []) b₀) =+ Let (Binding x₁ mA₁ a₁ :| []) b₁ where- b' = subst (V x n') (shift 1 (V f 0) e) b- where- n' = if x == f then n + 1 else n+ n₁ = if x₀ == x₁ then n₀ + 1 else n₀ - mt' = fmap (subst (V x n) e) mt- r' = subst (V x n) e r+ e₁ = shift 1 (V x₁ 0) e₀++ mA₁ = fmap (subst (V x₀ n₀) e₀) mA₀+ a₁ = subst (V x₀ n₀) e₀ a₀++ b₁ = subst (V x₀ n₁) e₁ b₀+subst (V x₀ n₀) e₀ (Let (Binding x₁ mA₀ a₀ :| (l₀ : ls₀)) b₀) =+ Let (Binding x₁ mA₁ a₁ :| (l₁ : ls₁)) b₁+ where+ n₁ = if x₀ == x₁ then n₀ + 1 else n₀++ e₁ = shift 1 (V x₁ 0) e₀++ mA₁ = fmap (subst (V x₀ n₀) e₀) mA₀+ a₁ = subst (V x₀ n₀) e₀ a₀++ Let (l₁ :| ls₁) b₁ = subst (V x₀ n₁) e₁ (Let (l₀ :| ls₀) b₀) subst x e (Annot a b) = Annot a' b' where a' = subst x e a@@ -1141,22 +1181,41 @@ f₁ = alphaNormalize f₀ a₁ = alphaNormalize a₀-alphaNormalize (Let "_" mA₀ a₀ b₀) =- Let "_" mA₁ a₁ b₁+alphaNormalize (Let (Binding "_" mA₀ a₀ :| []) b₀) =+ Let (Binding "_" mA₁ a₁ :| []) b₁ where mA₁ = fmap alphaNormalize mA₀ a₁ = alphaNormalize a₀+ b₁ = alphaNormalize b₀-alphaNormalize (Let x mA₀ a₀ b₀) =- Let "_" mA₁ a₁ b₄+alphaNormalize (Let (Binding "_" mA₀ a₀ :| (l₀ : ls₀)) b₀) =+ Let (Binding "_" mA₁ a₁ :| (l₁ : ls₁)) b₁ where mA₁ = fmap alphaNormalize mA₀+ a₁ = alphaNormalize a₀++ Let (l₁ :| ls₁) b₁ = alphaNormalize (Let (l₀ :| ls₀) b₀)+alphaNormalize (Let (Binding x mA₀ a₀ :| []) b₀) =+ Let (Binding "_" mA₁ a₁ :| []) b₄+ where+ mA₁ = fmap alphaNormalize mA₀ a₁ = alphaNormalize a₀ b₁ = shift 1 (V "_" 0) b₀ b₂ = subst (V x 0) (Var (V "_" 0)) b₁ b₃ = shift (-1) (V x 0) b₂ b₄ = alphaNormalize b₃+alphaNormalize (Let (Binding x mA₀ a₀ :| (l₀ : ls₀)) b₀) =+ Let (Binding "_" mA₁ a₁ :| (l₁ : ls₁)) b₄+ where+ mA₁ = fmap alphaNormalize mA₀+ a₁ = alphaNormalize a₀++ b₁ = shift 1 (V "_" 0) b₀+ b₂ = subst (V x 0) (Var (V "_" 0)) b₁+ b₃ = shift (-1) (V x 0) b₂++ Let (l₁ :| ls₁) b₄ = alphaNormalize (Let (l₀ :| ls₀) b₃) alphaNormalize (Annot t₀ _T₀) = Annot t₁ _T₁ where@@ -1384,7 +1443,7 @@ leave ill-typed sub-expressions unevaluated. -} normalize :: Eq a => Expr s a -> Expr t a-normalize = normalizeWith (const Nothing)+normalize = normalizeWith (const (pure Nothing)) {-| This function is used to determine whether folds like @Natural/fold@ or @List/fold@ should be lazy or strict in their accumulator based on the type@@ -1416,7 +1475,9 @@ denote (Lam a b c ) = Lam a (denote b) (denote c) denote (Pi a b c ) = Pi a (denote b) (denote c) denote (App a b ) = App (denote a) (denote b)-denote (Let a b c d ) = Let a (fmap denote b) (denote c) (denote d)+denote (Let as b ) = Let (fmap f as) (denote b)+ where+ f (Binding c d e) = Binding c (fmap denote d) (denote e) denote (Annot a b ) = Annot (denote a) (denote b) denote Bool = Bool denote (BoolLit a ) = BoolLit a@@ -1492,149 +1553,168 @@ -} normalizeWith :: Eq a => Normalizer a -> Expr s a -> Expr t a-normalizeWith ctx e0 = loop (denote e0)+normalizeWith ctx = runIdentity . normalizeWithM ctx++normalizeWithM :: (Eq a, Monad m) => NormalizerM m a -> Expr s a -> m (Expr t a)+normalizeWithM ctx e0 = loop (denote e0) where loop e = case e of- Const k -> Const k- Var v -> Var v- Lam x _A b -> Lam x _A' b'+ Const k -> pure (Const k)+ Var v -> pure (Var v)+ Lam x _A b -> Lam x <$> _A' <*> b' where _A' = loop _A b' = loop b- Pi x _A _B -> Pi x _A' _B'+ Pi x _A _B -> Pi x <$> _A' <*> _B' where _A' = loop _A _B' = loop _B- App f a -> case loop f of- Lam x _A b -> loop b'' -- Beta reduce- where- a' = shift 1 (V x 0) a- b' = subst (V x 0) a' b- b'' = shift (-1) (V x 0) b'- f' -> case App f' a' of- -- build/fold fusion for `List`- App (App ListBuild _) (App (App ListFold _) e') -> loop e'+ App f a -> do+ res <- ctx (App f a)+ case res of+ Just e1 -> loop e1+ Nothing -> do+ f' <- loop f+ case f' of+ Lam x _A b -> loop b''+ where+ a' = shift 1 (V x 0) a+ b' = subst (V x 0) a' b+ b'' = shift (-1) (V x 0) b'+ _ -> do+ a' <- loop a+ case App f' a' of+ -- build/fold fusion for `List`+ App (App ListBuild _) (App (App ListFold _) e') -> loop e' - -- build/fold fusion for `Natural`- App NaturalBuild (App NaturalFold e') -> loop e'+ -- build/fold fusion for `Natural`+ App NaturalBuild (App NaturalFold e') -> loop e' - -- build/fold fusion for `Optional`- App (App OptionalBuild _) (App (App OptionalFold _) e') -> loop e'+ -- build/fold fusion for `Optional`+ App (App OptionalBuild _) (App (App OptionalFold _) e') -> loop e' - App (App (App (App NaturalFold (NaturalLit n0)) t) succ') zero ->- if boundedType (loop t) then strict else lazy- where- strict = strictLoop n0- lazy = loop ( lazyLoop n0)+ App (App (App (App NaturalFold (NaturalLit n0)) t) succ') zero -> do+ t' <- loop t+ if boundedType t' then strict else lazy+ where+ strict = strictLoop n0+ lazy = loop ( lazyLoop n0) - strictLoop !0 = loop zero- strictLoop !n = loop (App succ' (strictLoop (n - 1)))+ strictLoop !0 = loop zero+ strictLoop !n = App succ' <$> strictLoop (n - 1) >>= loop - lazyLoop !0 = zero- lazyLoop !n = App succ' (lazyLoop (n - 1))- App NaturalBuild g -> loop (App (App (App g Natural) succ) zero)- where- succ = Lam "x" Natural (NaturalPlus "x" (NaturalLit 1))+ lazyLoop !0 = zero+ lazyLoop !n = App succ' (lazyLoop (n - 1))+ App NaturalBuild g -> loop (App (App (App g Natural) succ) zero)+ where+ succ = Lam "x" Natural (NaturalPlus "x" (NaturalLit 1)) - zero = NaturalLit 0- App NaturalIsZero (NaturalLit n) -> BoolLit (n == 0)- App NaturalEven (NaturalLit n) -> BoolLit (even n)- App NaturalOdd (NaturalLit n) -> BoolLit (odd n)- App NaturalToInteger (NaturalLit n) -> IntegerLit (toInteger n)- App NaturalShow (NaturalLit n) ->- TextLit (Chunks [] (Data.Text.pack (show n)))- App IntegerShow (IntegerLit n)- | 0 <= n -> TextLit (Chunks [] ("+" <> Data.Text.pack (show n)))- | otherwise -> TextLit (Chunks [] (Data.Text.pack (show n)))- App IntegerToDouble (IntegerLit n) -> DoubleLit (fromInteger n)- App DoubleShow (DoubleLit n) ->- TextLit (Chunks [] (Data.Text.pack (show n)))- App (App OptionalBuild _A₀) g ->- loop (App (App (App g optional) just) nothing)- where- optional = App Optional _A₀+ zero = NaturalLit 0+ App NaturalIsZero (NaturalLit n) -> pure (BoolLit (n == 0))+ App NaturalEven (NaturalLit n) -> pure (BoolLit (even n))+ App NaturalOdd (NaturalLit n) -> pure (BoolLit (odd n))+ App NaturalToInteger (NaturalLit n) -> pure (IntegerLit (toInteger n))+ App NaturalShow (NaturalLit n) ->+ pure (TextLit (Chunks [] (Data.Text.pack (show n))))+ App IntegerShow (IntegerLit n)+ | 0 <= n -> pure (TextLit (Chunks [] ("+" <> Data.Text.pack (show n))))+ | otherwise -> pure (TextLit (Chunks [] (Data.Text.pack (show n))))+ -- `(read . show)` is used instead of `fromInteger` because `read` uses the correct rounding rule+ App IntegerToDouble (IntegerLit n) -> pure (DoubleLit ((read . show) n))+ App DoubleShow (DoubleLit n) ->+ pure (TextLit (Chunks [] (Data.Text.pack (show n))))+ App (App OptionalBuild _A₀) g ->+ loop (App (App (App g optional) just) nothing)+ where+ optional = App Optional _A₀ - just = Lam "a" _A₀ (Some "a")+ just = Lam "a" _A₀ (Some "a") - nothing = App None _A₀- App (App ListBuild _A₀) g -> loop (App (App (App g list) cons) nil)- where- _A₁ = shift 1 "a" _A₀+ nothing = App None _A₀+ App (App ListBuild _A₀) g -> loop (App (App (App g list) cons) nil)+ where+ _A₁ = shift 1 "a" _A₀ - list = App List _A₀+ list = App List _A₀ - cons =- Lam "a" _A₀- (Lam "as"- (App List _A₁)- (ListAppend (ListLit Nothing (pure "a")) "as")- )+ cons =+ Lam "a" _A₀+ (Lam "as"+ (App List _A₁)+ (ListAppend (ListLit Nothing (pure "a")) "as")+ ) - nil = ListLit (Just _A₀) empty- App (App (App (App (App ListFold _) (ListLit _ xs)) t) cons) nil ->- if boundedType (loop t) then strict else lazy- where- strict = foldr strictCons strictNil xs- lazy = loop (foldr lazyCons lazyNil xs)+ nil = ListLit (Just _A₀) empty+ App (App (App (App (App ListFold _) (ListLit _ xs)) t) cons) nil -> do+ t' <- loop t+ if boundedType t' then strict else lazy+ where+ strict = foldr strictCons strictNil xs+ lazy = loop (foldr lazyCons lazyNil xs) - strictNil = loop nil- lazyNil = nil+ strictNil = loop nil+ lazyNil = nil - strictCons y ys = loop (App (App cons y) ys)- lazyCons y ys = App (App cons y) ys- App (App ListLength _) (ListLit _ ys) ->- NaturalLit (fromIntegral (Data.Sequence.length ys))- App (App ListHead t) (ListLit _ ys) -> loop o- where- o = case Data.Sequence.viewl ys of- y :< _ -> Some y- _ -> App None t- App (App ListLast t) (ListLit _ ys) -> loop o- where- o = case Data.Sequence.viewr ys of- _ :> y -> Some y- _ -> App None t- App (App ListIndexed _A₀) (ListLit _A₁ as₀) -> loop (ListLit t as₁)- where- as₁ = Data.Sequence.mapWithIndex adapt as₀+ strictCons y ys = do+ App (App cons y) <$> ys >>= loop+ lazyCons y ys = App (App cons y) ys+ App (App ListLength _) (ListLit _ ys) ->+ pure (NaturalLit (fromIntegral (Data.Sequence.length ys)))+ App (App ListHead t) (ListLit _ ys) -> loop o+ where+ o = case Data.Sequence.viewl ys of+ y :< _ -> Some y+ _ -> App None t+ App (App ListLast t) (ListLit _ ys) -> loop o+ where+ o = case Data.Sequence.viewr ys of+ _ :> y -> Some y+ _ -> App None t+ App (App ListIndexed _A₀) (ListLit _A₁ as₀) -> loop (ListLit t as₁)+ where+ as₁ = Data.Sequence.mapWithIndex adapt as₀ - _A₂ = Record (Dhall.Map.fromList kts)- where- kts = [ ("index", Natural)- , ("value", _A₀)- ]+ _A₂ = Record (Dhall.Map.fromList kts)+ where+ kts = [ ("index", Natural)+ , ("value", _A₀)+ ] - t | null as₀ = Just _A₂- | otherwise = Nothing+ t | null as₀ = Just _A₂+ | otherwise = Nothing - adapt n a_ =- RecordLit (Dhall.Map.fromList kvs)- where- kvs = [ ("index", NaturalLit (fromIntegral n))- , ("value", a_)- ]- App (App ListReverse t) (ListLit _ xs) ->- loop (ListLit m (Data.Sequence.reverse xs))- where- m = if Data.Sequence.null xs then Just t else Nothing- App (App (App (App (App OptionalFold _) (App None _)) _) _) nothing ->- loop nothing- App (App (App (App (App OptionalFold _) (Some x)) _) just) _ ->- loop (App just x)- _ -> case ctx (App f' a') of- Nothing -> App f' a'- Just app' -> loop app'- where- a' = loop a- Let f _ r b -> loop b''+ adapt n a_ =+ RecordLit (Dhall.Map.fromList kvs)+ where+ kvs = [ ("index", NaturalLit (fromIntegral n))+ , ("value", a_)+ ]+ App (App ListReverse t) (ListLit _ xs) ->+ loop (ListLit m (Data.Sequence.reverse xs))+ where+ m = if Data.Sequence.null xs then Just t else Nothing+ App (App (App (App (App OptionalFold _) (App None _)) _) _) nothing ->+ loop nothing+ App (App (App (App (App OptionalFold _) (Some x)) _) just) _ ->+ loop (App just x)+ _ -> do+ res2 <- ctx (App f' a')+ case res2 of+ Nothing -> pure (App f' a')+ Just app' -> loop app'+ Let (Binding x _ a₀ :| ls₀) b₀ -> loop b₂ where- r' = shift 1 (V f 0) r- b' = subst (V f 0) r' b- b'' = shift (-1) (V f 0) b'+ rest = case ls₀ of+ [] -> b₀+ l₁ : ls₁ -> Let (l₁ :| ls₁) b₀++ a₁ = shift 1 (V x 0) a₀+ b₁ = subst (V x 0) a₁ rest+ b₂ = shift (-1) (V x 0) b₁ Annot x _ -> loop x- Bool -> Bool- BoolLit b -> BoolLit b- BoolAnd x y -> decide (loop x) (loop y)+ Bool -> pure Bool+ BoolLit b -> pure (BoolLit b)+ BoolAnd x y -> decide <$> loop x <*> loop y where decide (BoolLit True ) r = r decide (BoolLit False) _ = BoolLit False@@ -1643,7 +1723,7 @@ decide l r | judgmentallyEqual l r = l | otherwise = BoolAnd l r- BoolOr x y -> decide (loop x) (loop y)+ BoolOr x y -> decide <$> loop x <*> loop y where decide (BoolLit False) r = r decide (BoolLit True ) _ = BoolLit True@@ -1652,21 +1732,21 @@ decide l r | judgmentallyEqual l r = l | otherwise = BoolOr l r- BoolEQ x y -> decide (loop x) (loop y)+ BoolEQ x y -> decide <$> loop x <*> loop y where decide (BoolLit True ) r = r decide l (BoolLit True ) = l decide l r | judgmentallyEqual l r = BoolLit True | otherwise = BoolEQ l r- BoolNE x y -> decide (loop x) (loop y)+ BoolNE x y -> decide <$> loop x <*> loop y where decide (BoolLit False) r = r decide l (BoolLit False) = l decide l r | judgmentallyEqual l r = BoolLit False | otherwise = BoolNE l r- BoolIf bool true false -> decide (loop bool) (loop true) (loop false)+ BoolIf bool true false -> decide <$> loop bool <*> loop true <*> loop false where decide (BoolLit True ) l _ = l decide (BoolLit False) _ r = r@@ -1674,22 +1754,22 @@ decide b l r | judgmentallyEqual l r = l | otherwise = BoolIf b l r- Natural -> Natural- NaturalLit n -> NaturalLit n- NaturalFold -> NaturalFold- NaturalBuild -> NaturalBuild- NaturalIsZero -> NaturalIsZero- NaturalEven -> NaturalEven- NaturalOdd -> NaturalOdd- NaturalToInteger -> NaturalToInteger- NaturalShow -> NaturalShow- NaturalPlus x y -> decide (loop x) (loop y)+ Natural -> pure Natural+ NaturalLit n -> pure (NaturalLit n)+ NaturalFold -> pure NaturalFold+ NaturalBuild -> pure NaturalBuild+ NaturalIsZero -> pure NaturalIsZero+ NaturalEven -> pure NaturalEven+ NaturalOdd -> pure NaturalOdd+ NaturalToInteger -> pure NaturalToInteger+ NaturalShow -> pure NaturalShow+ NaturalPlus x y -> decide <$> loop x <*> loop y where decide (NaturalLit 0) r = r decide l (NaturalLit 0) = l decide (NaturalLit m) (NaturalLit n) = NaturalLit (m + n) decide l r = NaturalPlus l r- NaturalTimes x y -> decide (loop x) (loop y)+ NaturalTimes x y -> decide <$> loop x <*> loop y where decide (NaturalLit 1) r = r decide l (NaturalLit 1) = l@@ -1697,25 +1777,29 @@ decide _ (NaturalLit 0) = NaturalLit 0 decide (NaturalLit m) (NaturalLit n) = NaturalLit (m * n) decide l r = NaturalTimes l r- Integer -> Integer- IntegerLit n -> IntegerLit n- IntegerShow -> IntegerShow- IntegerToDouble -> IntegerToDouble- Double -> Double- DoubleLit n -> DoubleLit n- DoubleShow -> DoubleShow- Text -> Text- TextLit (Chunks xys z) ->- case mconcat chunks of- Chunks [("", x)] "" -> x- c -> TextLit c+ Integer -> pure Integer+ IntegerLit n -> pure (IntegerLit n)+ IntegerShow -> pure IntegerShow+ IntegerToDouble -> pure IntegerToDouble+ Double -> pure Double+ DoubleLit n -> pure (DoubleLit n)+ DoubleShow -> pure DoubleShow+ Text -> pure Text+ TextLit (Chunks xys z) -> do+ chunks' <- mconcat <$> chunks+ case chunks' of+ Chunks [("", x)] "" -> pure x+ c -> pure (TextLit c) where- chunks = concatMap process xys ++ [Chunks [] z]+ chunks =+ ((++ [Chunks [] z]) . concat) <$> traverse process xys - process (x, y) = case loop y of- TextLit c -> [Chunks [] x, c]- y' -> [Chunks [(x, y')] mempty]- TextAppend x y -> decide (loop x) (loop y)+ process (x, y) = do+ y' <- loop y+ case y' of+ TextLit c -> pure [Chunks [] x, c]+ _ -> pure [Chunks [(x, y')] mempty]+ TextAppend x y -> decide <$> loop x <*> loop y where isEmpty (Chunks [] "") = True isEmpty _ = False@@ -1724,49 +1808,49 @@ decide l (TextLit n) | isEmpty n = l decide (TextLit m) (TextLit n) = TextLit (m <> n) decide l r = TextAppend l r- List -> List+ List -> pure List ListLit t es- | Data.Sequence.null es -> ListLit t' es'- | otherwise -> ListLit Nothing es'+ | Data.Sequence.null es -> ListLit <$> t' <*> es'+ | otherwise -> ListLit Nothing <$> es' where- t' = fmap loop t- es' = fmap loop es- ListAppend x y -> decide (loop x) (loop y)+ t' = traverse loop t+ es' = traverse loop es+ ListAppend x y -> decide <$> loop x <*> loop y where decide (ListLit _ m) r | Data.Sequence.null m = r decide l (ListLit _ n) | Data.Sequence.null n = l decide (ListLit t m) (ListLit _ n) = ListLit t (m <> n) decide l r = ListAppend l r- ListBuild -> ListBuild- ListFold -> ListFold- ListLength -> ListLength- ListHead -> ListHead- ListLast -> ListLast- ListIndexed -> ListIndexed- ListReverse -> ListReverse- Optional -> Optional+ ListBuild -> pure ListBuild+ ListFold -> pure ListFold+ ListLength -> pure ListLength+ ListHead -> pure ListHead+ ListLast -> pure ListLast+ ListIndexed -> pure ListIndexed+ ListReverse -> pure ListReverse+ Optional -> pure Optional OptionalLit _A Nothing -> loop (App None _A) OptionalLit _ (Just a) -> loop (Some a)- Some a -> Some a'+ Some a -> Some <$> a' where a' = loop a- None -> None- OptionalFold -> OptionalFold- OptionalBuild -> OptionalBuild- Record kts -> Record (Dhall.Map.sort kts')+ None -> pure None+ OptionalFold -> pure OptionalFold+ OptionalBuild -> pure OptionalBuild+ Record kts -> Record . Dhall.Map.sort <$> kts' where- kts' = fmap loop kts- RecordLit kvs -> RecordLit (Dhall.Map.sort kvs')+ kts' = traverse loop kts+ RecordLit kvs -> RecordLit . Dhall.Map.sort <$> kvs' where- kvs' = fmap loop kvs- Union kts -> Union (Dhall.Map.sort kts')+ kvs' = traverse loop kvs+ Union kts -> Union . Dhall.Map.sort <$> kts' where- kts' = fmap loop kts- UnionLit k v kvs -> UnionLit k v' (Dhall.Map.sort kvs')+ kts' = traverse loop kts+ UnionLit k v kvs -> UnionLit k <$> v' <*> (Dhall.Map.sort <$> kvs') where- v' = loop v- kvs' = fmap loop kvs- Combine x y -> decide (loop x) (loop y)+ v' = loop v+ kvs' = traverse loop kvs+ Combine x y -> decide <$> loop x <*> loop y where decide (RecordLit m) r | Data.Foldable.null m = r@@ -1776,7 +1860,7 @@ RecordLit (Dhall.Map.sort (Dhall.Map.unionWith decide m n)) decide l r = Combine l r- CombineTypes x y -> decide (loop x) (loop y)+ CombineTypes x y -> decide <$> loop x <*> loop y where decide (Record m) r | Data.Foldable.null m = r@@ -1786,8 +1870,7 @@ Record (Dhall.Map.sort (Dhall.Map.unionWith decide m n)) decide l r = CombineTypes l r-- Prefer x y -> decide (loop x) (loop y)+ Prefer x y -> decide <$> loop x <*> loop y where decide (RecordLit m) r | Data.Foldable.null m = r@@ -1797,57 +1880,65 @@ RecordLit (Dhall.Map.sort (Dhall.Map.union n m)) decide l r = Prefer l r- Merge x y t ->+ Merge x y t -> do+ x' <- loop x+ y' <- loop y case x' of RecordLit kvsX -> case y' of UnionLit kY vY _ -> case Dhall.Map.lookup kY kvsX of Just vX -> loop (App vX vY)- Nothing -> Merge x' y' t'- _ -> Merge x' y' t'- _ -> Merge x' y' t'+ Nothing -> Merge x' y' <$> t'+ _ -> Merge x' y' <$> t'+ _ -> Merge x' y' <$> t' where- x' = loop x- y' = loop y- t' = fmap loop t- Constructors t ->+ t' = traverse loop t+ Constructors t -> do+ t' <- loop t case t' of- Union kts -> RecordLit kvs+ Union kts -> pure (RecordLit kvs) where kvs = Dhall.Map.mapWithKey adapt kts adapt k t_ = Lam k t_ (UnionLit k (Var (V k 0)) rest) where rest = Dhall.Map.delete k kts- _ -> Constructors t'- where- t' = loop t- Field r x ->- case loop r of+ _ -> pure (Constructors t')+ Field r x -> do+ r' <- loop r+ case r' of RecordLit kvs -> case Dhall.Map.lookup x kvs of Just v -> loop v- Nothing -> Field (RecordLit (fmap loop kvs)) x- r' -> Field r' x- Project r xs ->- case loop r of+ Nothing -> Field <$> (RecordLit <$> traverse loop kvs) <*> pure x+ Union kvs ->+ case Dhall.Map.lookup x kvs of+ Just t_ -> Lam x <$> t' <*> pure (UnionLit x (Var (V x 0)) rest)+ where+ t' = loop t_+ rest = Dhall.Map.delete x kvs+ Nothing -> Field <$> (Union <$> traverse loop kvs) <*> pure x+ _ -> pure (Field r' x)+ Project r xs -> do+ r' <- loop r+ case r' of RecordLit kvs ->- case traverse adapt (Data.Set.toList xs) of+ case traverse adapt (Dhall.Set.toList xs) of Just s -> loop (RecordLit kvs') where kvs' = Dhall.Map.fromList s Nothing ->- Project (RecordLit (fmap loop kvs)) xs+ Project <$> (RecordLit <$> traverse loop kvs) <*> pure xs where adapt x = do v <- Dhall.Map.lookup x kvs return (x, v)- r' -> Project r' xs+ _ -> pure (Project r' xs) Note _ e' -> loop e' ImportAlt l _r -> loop l- Embed a -> Embed a+ Embed a -> pure (Embed a) {-| Returns `True` if two expressions are α-equivalent and β-equivalent and `False` otherwise@@ -1860,8 +1951,10 @@ -- | Use this to wrap you embedded functions (see `normalizeWith`) to make them -- polymorphic enough to be used.-type Normalizer a = forall s. Expr s a -> Maybe (Expr s a)+type NormalizerM m a = forall s. Expr s a -> m (Maybe (Expr s a)) +type Normalizer a = NormalizerM Identity a+ -- | A reified 'Normalizer', which can be stored in structures without -- running into impredicative polymorphism. data ReifiedNormalizer a = ReifiedNormalizer@@ -1872,8 +1965,7 @@ -- -- It is much more efficient to use `isNormalized`. isNormalizedWith :: (Eq s, Eq a) => Normalizer a -> Expr s a -> Bool-isNormalizedWith ctx e = e == (normalizeWith ctx e)-+isNormalizedWith ctx e = e == normalizeWith ctx e -- | Quickly check if an expression is in normal form isNormalized :: Eq a => Expr s a -> Bool@@ -1920,7 +2012,7 @@ App (App (App (App (App OptionalFold _) (App None _)) _) _) _ -> False _ -> True- Let _ _ _ _ -> False+ Let _ _ -> False Annot _ _ -> False Bool -> True BoolLit _ -> True@@ -2060,6 +2152,10 @@ case Dhall.Map.lookup x kvs of Just _ -> False Nothing -> True+ Union kvs ->+ case Dhall.Map.lookup x kvs of+ Just _ -> False+ Nothing -> True _ -> True Project r xs -> loop r && case r of@@ -2160,5 +2256,103 @@ , "None" , "Optional/build" , "Optional/fold"+ , "NaN"+ , "Infinity" ] ++-- | A traversal over the immediate sub-expressions of an expression.+subExpressions :: Applicative f => (Expr s a -> f (Expr s a)) -> Expr s a -> f (Expr s a)+subExpressions _ (Const c) = pure (Const c)+subExpressions _ (Var v) = pure (Var v)+subExpressions f (Lam a b c) = Lam a <$> f b <*> f c+subExpressions f (Pi a b c) = Pi a <$> f b <*> f c+subExpressions f (App a b) = App <$> f a <*> f b+subExpressions f (Let as b) = Let <$> traverse g as <*> f b+ where+ g (Binding c d e) = Binding c <$> traverse f d <*> f e+subExpressions f (Annot a b) = Annot <$> f a <*> f b+subExpressions _ Bool = pure Bool+subExpressions _ (BoolLit b) = pure (BoolLit b)+subExpressions f (BoolAnd a b) = BoolAnd <$> f a <*> f b+subExpressions f (BoolOr a b) = BoolOr <$> f a <*> f b+subExpressions f (BoolEQ a b) = BoolEQ <$> f a <*> f b+subExpressions f (BoolNE a b) = BoolNE <$> f a <*> f b+subExpressions f (BoolIf a b c) = BoolIf <$> f a <*> f b <*> f c+subExpressions _ Natural = pure Natural+subExpressions _ (NaturalLit n) = pure (NaturalLit n)+subExpressions _ NaturalFold = pure NaturalFold+subExpressions _ NaturalBuild = pure NaturalBuild+subExpressions _ NaturalIsZero = pure NaturalIsZero+subExpressions _ NaturalEven = pure NaturalEven+subExpressions _ NaturalOdd = pure NaturalOdd+subExpressions _ NaturalToInteger = pure NaturalToInteger+subExpressions _ NaturalShow = pure NaturalShow+subExpressions f (NaturalPlus a b) = NaturalPlus <$> f a <*> f b+subExpressions f (NaturalTimes a b) = NaturalTimes <$> f a <*> f b+subExpressions _ Integer = pure Integer+subExpressions _ (IntegerLit n) = pure (IntegerLit n)+subExpressions _ IntegerShow = pure IntegerShow+subExpressions _ IntegerToDouble = pure IntegerToDouble+subExpressions _ Double = pure Double+subExpressions _ (DoubleLit n) = pure (DoubleLit n)+subExpressions _ DoubleShow = pure DoubleShow+subExpressions _ Text = pure Text+subExpressions f (TextLit (Chunks a b)) =+ TextLit <$> (Chunks <$> traverse (traverse f) a <*> pure b)+subExpressions f (TextAppend a b) = TextAppend <$> f a <*> f b+subExpressions _ List = pure List+subExpressions f (ListLit a b) = ListLit <$> traverse f a <*> traverse f b+subExpressions f (ListAppend a b) = ListAppend <$> f a <*> f b+subExpressions _ ListBuild = pure ListBuild+subExpressions _ ListFold = pure ListFold+subExpressions _ ListLength = pure ListLength+subExpressions _ ListHead = pure ListHead+subExpressions _ ListLast = pure ListLast+subExpressions _ ListIndexed = pure ListIndexed+subExpressions _ ListReverse = pure ListReverse+subExpressions _ Optional = pure Optional+subExpressions f (OptionalLit a b) = OptionalLit <$> f a <*> traverse f b+subExpressions f (Some a) = Some <$> f a+subExpressions _ None = pure None+subExpressions _ OptionalFold = pure OptionalFold+subExpressions _ OptionalBuild = pure OptionalBuild+subExpressions f (Record a) = Record <$> traverse f a+subExpressions f ( RecordLit a ) = RecordLit <$> traverse f a+subExpressions f (Union a) = Union <$> traverse f a+subExpressions f (UnionLit a b c) = UnionLit a <$> f b <*> traverse f c+subExpressions f (Combine a b) = Combine <$> f a <*> f b+subExpressions f (CombineTypes a b) = CombineTypes <$> f a <*> f b+subExpressions f (Prefer a b) = Prefer <$> f a <*> f b+subExpressions f (Merge a b t) = Merge <$> f a <*> f b <*> traverse f t+subExpressions f (Constructors a) = Constructors <$> f a+subExpressions f (Field a b) = Field <$> f a <*> pure b+subExpressions f (Project a b) = Project <$> f a <*> pure b+subExpressions f (Note a b) = Note a <$> f b+subExpressions f (ImportAlt l r) = ImportAlt <$> f l <*> f r+subExpressions _ (Embed a) = pure (Embed a)++{-| Returns `True` if the given `Char` is valid within an unquoted path+ component++ This is exported for reuse within the @"Dhall.Parser.Token"@ module+-}+pathCharacter :: Char -> Bool+pathCharacter c =+ '\x21' == c+ || ('\x24' <= c && c <= '\x27')+ || ('\x2A' <= c && c <= '\x2B')+ || ('\x2D' <= c && c <= '\x2E')+ || ('\x30' <= c && c <= '\x3B')+ || c == '\x3D'+ || ('\x40' <= c && c <= '\x5A')+ || ('\x5E' <= c && c <= '\x7A')+ || c == '\x7C'+ || c == '\x7E'++prettyPathComponent :: Text -> Doc ann+prettyPathComponent text+ | Data.Text.all pathCharacter text =+ "/" <> Pretty.pretty text+ | otherwise =+ "/\"" <> Pretty.pretty text <> "\""
src/Dhall/Diff.hs view
@@ -19,15 +19,14 @@ import Data.Function (on) import Data.List.NonEmpty (NonEmpty(..)) import Data.Monoid (Any(..))-import Data.Scientific (Scientific) import Data.Semigroup import Data.Sequence (Seq)-import Data.Set (Set) import Data.String (IsString(..)) import Data.Text (Text) import Data.Text.Prettyprint.Doc (Doc, Pretty)-import Dhall.Core (Chunks (..), Const(..), Expr(..), Var(..))+import Dhall.Core (Binding(..), Chunks (..), Const(..), Expr(..), Var(..)) import Dhall.Map (Map)+import Dhall.Set (Set) import Dhall.Pretty.Internal (Ann) import Numeric.Natural (Natural) @@ -38,6 +37,7 @@ import qualified Data.Text.Prettyprint.Doc as Pretty import qualified Dhall.Core import qualified Dhall.Map+import qualified Dhall.Set import qualified Dhall.Pretty.Internal as Internal data Diff =@@ -175,20 +175,22 @@ diffLabels ksL ksR = braced (diffFieldNames <> (if anyEqual then [ ignore ] else [])) where- extraL = Data.Set.difference ksL ksR- extraR = Data.Set.difference ksR ksL+ extraL = Dhall.Set.difference ksL ksR+ extraR = Dhall.Set.difference ksR ksL diffFieldNames = foldMap (adapt minus) extraL <> foldMap (adapt plus) extraR where adapt sign key = [ sign (token (Internal.prettyLabel key)) ] - anyEqual = not (Data.Set.null (Data.Set.intersection ksL ksR))+ anyEqual = not (Data.Set.null (Data.Set.intersection+ (Dhall.Set.toSet ksL)+ (Dhall.Set.toSet ksR))) diffNatural :: Natural -> Natural -> Diff diffNatural = diffPrimitive (token . Internal.prettyNatural) -diffScientific :: Scientific -> Scientific -> Diff-diffScientific = diffPrimitive (token . Internal.prettyScientific)+diffDouble :: Double -> Double -> Diff+diffDouble = diffPrimitive (token . Internal.prettyDouble) diffConst :: Const -> Const -> Diff diffConst = diffPrimitive (token . Internal.prettyConst)@@ -698,20 +700,21 @@ mismatch l r diffExpression l r@(BoolIf {}) = mismatch l r-diffExpression l@(Let {}) r@(Let {}) =- enclosed' " " (keyword "in" <> " ") (docs l r)+diffExpression (Let asL bL ) (Let asR bR) =+ enclosed' "" (keyword "in" <> " ")+ (Data.List.NonEmpty.zipWith docA asL asR <> pure docB) where- docs (Let aL bL cL dL) (Let aR bR cR dR) =- Data.List.NonEmpty.cons (align doc) (docs dL dR)+ docA (Binding cL dL eL) (Binding cR dR eR) = align doc where doc = keyword "let" <> " "- <> format " " (diffLabel aL aR)- <> format " " (diffMaybe (colon <> " ") diffExpression bL bR)+ <> format " " (diffLabel cL cR)+ <> format " " (diffMaybe (colon <> " ") diffExpression dL dR) <> equals <> " "- <> diffExpression cL cR- docs aL aR = pure (diffExpression aL aR)+ <> diffExpression eL eR++ docB = diffExpression bL bR diffExpression l@(Let {}) r = mismatch l r diffExpression l r@(Let {}) =@@ -1243,7 +1246,7 @@ diffPrimitiveExpression l r@(NaturalLit {}) = mismatch l r diffPrimitiveExpression (DoubleLit aL) (DoubleLit aR) =- diffScientific aL aR+ diffDouble aL aR diffPrimitiveExpression l@(DoubleLit {}) r = mismatch l r diffPrimitiveExpression l r@(DoubleLit {}) =
src/Dhall/Import.hs view
@@ -148,6 +148,7 @@ import Dhall.Binary (StandardVersion(..)) import Dhall.Core ( Expr(..)+ , Binding(..) , Chunks(..) , Directory(..) , File(..)@@ -188,6 +189,7 @@ import qualified Dhall.Parser import qualified Dhall.Pretty.Internal import qualified Dhall.TypeCheck+import qualified Network.URI.Encode import qualified System.Environment import qualified System.Directory as Directory import qualified System.FilePath as FilePath@@ -609,14 +611,23 @@ return (path, text) - Remote (URL scheme authority file query fragment maybeHeaders) -> do+ Remote (URL scheme authority path query fragment maybeHeaders) -> do let prefix = (case scheme of HTTP -> "http"; HTTPS -> "https") <> "://" <> authority - let fileText = Dhall.Pretty.Internal.prettyToStrictText file+ let File {..} = path+ let Directory {..} = directory + let pathComponentToText component =+ "/" <> Network.URI.Encode.encodeText component++ let fileText =+ Text.concat+ (map pathComponentToText (reverse components))+ <> pathComponentToText file+ let suffix = (case query of Nothing -> ""; Just q -> "?" <> q) <> (case fragment of Nothing -> ""; Just f -> "#" <> f)@@ -801,7 +812,9 @@ Lam a b c -> Lam <$> pure a <*> loadWith b <*> loadWith c Pi a b c -> Pi <$> pure a <*> loadWith b <*> loadWith c App a b -> App <$> loadWith a <*> loadWith b- Let a b c d -> Let <$> pure a <*> mapM loadWith b <*> loadWith c <*> loadWith d+ Let as b -> Let <$> traverse f as <*> loadWith b+ where+ f (Binding c d e) = Binding c <$> traverse loadWith d <*> loadWith e Annot a b -> Annot <$> loadWith a <*> loadWith b Bool -> pure Bool BoolLit a -> pure (BoolLit a)
src/Dhall/Import/Types.hs view
@@ -73,7 +73,7 @@ _standardVersion = Dhall.Binary.defaultStandardVersion - _normalizer = ReifiedNormalizer (const Nothing)+ _normalizer = ReifiedNormalizer (const (pure Nothing)) _startingContext = Dhall.Context.empty
src/Dhall/Lint.hs view
@@ -5,7 +5,9 @@ lint ) where -import Dhall.Core (Chunks(..), Expr(..), Import, Var(..))+import Dhall.Core (Binding(..), Chunks(..), Expr(..), Import, Var(..))+import Data.Semigroup ((<>))+import Data.List.NonEmpty (NonEmpty(..)) import Dhall.TypeCheck (X(..)) import qualified Dhall.Core@@ -15,6 +17,7 @@ Currently this: * removes unused @let@ bindings+ * consolidates nested @let@ bindings to use a multiple-@let@ binding * switches legacy @List@-like @Optional@ literals to use @Some@ / @None@ instead -} lint :: Expr s Import -> Expr t Import@@ -36,15 +39,32 @@ where a' = loop a b' = loop b- loop (Let a b c d)++ -- Consolidate nested `let` expresssions+ loop (Let a (Let b c)) = loop (Let (a <> b) c)++ -- Remove unused bindings+ loop (Let (Binding a b c :| []) d) | not (V a 0 `Dhall.Core.freeIn` d') = d' | otherwise =- Let a b' c' d'+ Let (Binding a b' c' :| []) d' where b' = fmap loop b c' = loop c- d' = loop d++ d' = loop d+ loop (Let (Binding a b c :| (l : ls)) d)+ | not (V a 0 `Dhall.Core.freeIn` d') =+ Let (l' :| ls') d'+ | otherwise =+ Let (Binding a b' c' :| (l' : ls')) d'+ where+ b' = fmap loop b+ c' = loop c++ Let (l' :| ls') d' = loop (Let (l :| ls) d)+ loop (Annot a b) = Annot a' b' where
src/Dhall/Parser/Combinators.hs view
@@ -10,12 +10,12 @@ import Data.Data (Data) import Data.Semigroup (Semigroup (..)) import Data.Sequence (ViewL (..))-import Data.Set (Set) import Data.String (IsString (..)) import Data.Text (Text) import Data.Text.Prettyprint.Doc (Pretty (..)) import Data.Void (Void)-import Dhall.Map (Map)+import Dhall.Map (Map)+import Dhall.Set (Set) import Prelude hiding (const, pi) import Text.Parser.Combinators (try, (<?>)) import Text.Parser.Token (TokenParsing (..))@@ -27,6 +27,7 @@ import qualified Data.Text import qualified Dhall.Map import qualified Dhall.Util+import qualified Dhall.Set import qualified Text.Megaparsec import qualified Text.Megaparsec.Char import qualified Text.Parser.Char@@ -237,13 +238,13 @@ takeWhile1 predicate = Parser (Text.Megaparsec.takeWhile1P Nothing predicate) noDuplicates :: Ord a => [a] -> Parser (Set a)-noDuplicates = go Data.Set.empty+noDuplicates = go Dhall.Set.empty where go found [] = return found go found (x:xs) =- if Data.Set.member x found+ if Data.Set.member x (Dhall.Set.toSet found) then fail "Duplicate key"- else go (Data.Set.insert x found) xs+ else go (Dhall.Set.append x found) xs toMap :: [(Text, a)] -> Parser (Map Text a) toMap kvs = do
src/Dhall/Parser/Expression.hs view
@@ -20,6 +20,7 @@ import qualified Data.ByteArray.Encoding import qualified Data.ByteString import qualified Data.Char+import qualified Data.List.NonEmpty import qualified Data.Sequence import qualified Data.Text import qualified Data.Text.Encoding@@ -82,17 +83,28 @@ return (BoolIf a b c) alternative2 = do- _let- a <- label- b <- optional (do- _colon- expression )- _equal- c <- expression+ let binding = do+ _let++ c <- label+ d <- optional (do+ _colon+ expression )++ _equal++ e <- expression++ return (Binding c d e)++ as <- Data.List.NonEmpty.some1 binding+ _in- d <- expression- return (Let a b c d) + b <- expression++ return (Let as b)+ alternative3 = do _forall _openParens@@ -158,8 +170,8 @@ <|> Combine <$ _combine precedence2Operator =- Prefer <$ _prefer- <|> CombineTypes <$ _combineTypes+ CombineTypes <$ _combineTypes+ <|> Prefer <$ _prefer <|> NaturalTimes <$ _times <|> BoolNE <$ _notEqual @@ -218,6 +230,7 @@ , alternative06 , alternative07 , alternative37+ , alternative09 , builtin <?> "built-in expression" ]@@ -225,8 +238,12 @@ <|> alternative38 where alternative00 = do+ n <- Text.Megaparsec.getOffset a <- try doubleLiteral- return (DoubleLit a)+ b <- if isInfinite a+ then Text.Megaparsec.setOffset n *> fail "double out of bounds"+ else return a+ return (DoubleLit b) alternative01 = do a <- try naturalLiteral@@ -258,6 +275,10 @@ b <- importExpression return (Merge a b Nothing) + alternative09 = do+ a <- try doubleInfinity+ return (DoubleLit a)+ builtin = do let predicate c = c == 'N'@@ -271,6 +292,8 @@ || c == 'F' || c == 'K' + let nan = (0.0/0.0)+ c <- Text.Megaparsec.lookAhead (Text.Megaparsec.satisfy predicate) case c of@@ -286,6 +309,7 @@ , NaturalShow <$ _NaturalShow , Natural <$ _Natural , None <$ _None+ , DoubleLit nan <$ _NaN ] 'I' -> choice
src/Dhall/Parser/Token.hs view
@@ -14,6 +14,7 @@ identifier, hexNumber, doubleLiteral,+ doubleInfinity, naturalLiteral, integerLiteral, _Optional,@@ -55,6 +56,7 @@ _List, _True, _False,+ _NaN, _Type, _Kind, _Sort,@@ -95,9 +97,9 @@ import Control.Applicative (Alternative(..), optional) import Data.Functor (void) import Data.Semigroup (Semigroup(..))-import Data.Set (Set) import Data.Text (Text) import Dhall.Core+import Dhall.Set (Set) import Prelude hiding (const, pi) import Text.Parser.Combinators (choice, try, (<?>)) @@ -105,12 +107,12 @@ import qualified Data.Char import qualified Data.HashSet import qualified Data.List.NonEmpty-import qualified Data.Set import qualified Data.Text+import qualified Dhall.Set+import qualified Text.Megaparsec import qualified Text.Parser.Char import qualified Text.Parser.Combinators -import Data.Scientific (Scientific) import Numeric.Natural (Natural) import Prelude hiding (const, pi) @@ -135,18 +137,28 @@ || ('A' <= c && c <= 'F') || ('a' <= c && c <= 'f') -doubleLiteral :: Parser Scientific+signPrefix :: Num a => Parser (a -> a)+signPrefix = (do+ let positive = fmap (\_ -> id ) (Text.Parser.Char.char '+')+ let negative = fmap (\_ -> negate) (Text.Parser.Char.char '-')+ positive <|> negative ) <?> "sign"++doubleLiteral :: Parser Double doubleLiteral = (do- sign <- fmap (\_ -> negate) (Text.Parser.Char.char '-')- <|> pure id- a <- Text.Parser.Token.scientific+ sign <- signPrefix <|> pure id+ a <- Text.Parser.Token.double return (sign a) ) <?> "double literal" +doubleInfinity :: Parser Double+doubleInfinity = (do+ let negative = fmap (\_ -> negate) (Text.Parser.Char.char '-')+ sign <- negative <|> pure id+ a <- Text.Parser.Char.text "Infinity" >> whitespace >> return (1.0/0.0)+ return (sign a) ) <?> "double infinity"+ integerLiteral :: Parser Integer integerLiteral = (do- let positive = fmap (\_ -> id ) (Text.Parser.Char.char '+')- let negative = fmap (\_ -> negate) (Text.Parser.Char.char '-')- sign <- positive <|> negative+ sign <- signPrefix a <- Text.Parser.Token.natural return (sign a) ) <?> "integer literal" @@ -278,7 +290,7 @@ _closeBrace return xs where- emptyLabels = pure Data.Set.empty+ emptyLabels = pure Dhall.Set.empty nonEmptyLabels = do x <- label@@ -314,26 +326,26 @@ || ('\x3E' <= c && c <= '\x5B') || ('\x5D' <= c && c <= '\x7E') -pathCharacter :: Char -> Bool-pathCharacter c =- ('\x21' <= c && c <= '\x22')- || ('\x24' <= c && c <= '\x27')- || ('\x2A' <= c && c <= '\x2B')- || ('\x2D' <= c && c <= '\x2E')- || ('\x30' <= c && c <= '\x3B')- || c == '\x3D'- || ('\x40' <= c && c <= '\x5A')- || ('\x5E' <= c && c <= '\x7A')- || c == '\x7C'- || c == '\x7E'+quotedPathCharacter :: Char -> Bool+quotedPathCharacter c =+ ('\x20' <= c && c <= '\x21')+ || ('\x23' <= c && c <= '\x2E')+ || ('\x30' <= c && c <= '\x7E') pathComponent :: Parser Text pathComponent = do _ <- "/" :: Parser Text- string <- some (Text.Parser.Char.satisfy pathCharacter) - return (Data.Text.pack string)+ let pathData = Text.Megaparsec.takeWhile1P Nothing Dhall.Core.pathCharacter + let quotedPathData = do+ _ <- Text.Parser.Char.char '"'+ text <- Text.Megaparsec.takeWhile1P Nothing quotedPathCharacter+ _ <- Text.Parser.Char.char '"'+ return text++ pathData <|> quotedPathData+ file_ :: Parser File file_ = do path <- Data.List.NonEmpty.some1 pathComponent@@ -529,7 +541,7 @@ _constructors = keyword "constructors" _Some :: Parser ()-_Some = reserved "Some"+_Some = keyword "Some" _None :: Parser () _None = reserved "None"@@ -617,6 +629,9 @@ _False :: Parser () _False = reserved "False"++_NaN :: Parser ()+_NaN = reserved "NaN" _Type :: Parser () _Type = reserved "Type"
src/Dhall/Pretty/Internal.hs view
@@ -23,7 +23,7 @@ , prettyLabels , prettyNatural , prettyNumber- , prettyScientific+ , prettyDouble , prettyToStrictText , prettyToString @@ -53,7 +53,7 @@ , rparen ) where -import {-# SOURCE #-} Dhall.Core+import Dhall.Core #if MIN_VERSION_base(4,8,0) #else@@ -61,11 +61,10 @@ #endif import Data.Foldable import Data.Monoid ((<>))-import Data.Scientific (Scientific)-import Data.Set (Set) import Data.Text (Text) import Data.Text.Prettyprint.Doc (Doc, Pretty, space) import Dhall.Map (Map)+import Dhall.Set (Set) import Numeric.Natural (Natural) import Prelude hiding (succ) import qualified Data.Text.Prettyprint.Doc.Render.Terminal as Terminal@@ -79,6 +78,7 @@ import qualified Data.Text.Prettyprint.Doc.Render.Text as Pretty import qualified Data.Text.Prettyprint.Doc.Render.String as Pretty import qualified Dhall.Map+import qualified Dhall.Set {-| Annotation type used to tag elements in a pretty-printed document for syntax highlighting purposes@@ -294,10 +294,10 @@ prettyLabels :: Set Text -> Doc Ann prettyLabels a- | Data.Set.null a =+ | Data.Set.null (Dhall.Set.toSet a) = lbrace <> rbrace | otherwise =- braces (map (duplicate . prettyLabel) (Data.Set.toList a))+ braces (map (duplicate . prettyLabel) (Dhall.Set.toList a)) prettyNumber :: Integer -> Doc Ann prettyNumber = literal . Pretty.pretty@@ -305,8 +305,8 @@ prettyNatural :: Natural -> Doc Ann prettyNatural = literal . Pretty.pretty -prettyScientific :: Scientific -> Doc Ann-prettyScientific = literal . Pretty.pretty . show+prettyDouble :: Double -> Doc Ann+prettyDouble = literal . Pretty.pretty prettyConst :: Const -> Doc Ann prettyConst Type = builtin "Type"@@ -386,50 +386,51 @@ ] docsShort (Note _ c) = docsShort c docsShort c = [ prettyExpression c ]- prettyExpression a0@(Let _ _ _ _) =- enclose' "" " " (space <> keyword "in" <> space) (Pretty.hardline <> keyword "in" <> " ")- (fmap duplicate (docs a0))+ prettyExpression (Let as b) =+ enclose' "" "" space Pretty.hardline+ (fmap duplicate (fmap docA (toList as)) ++ [ docB ]) where- docs (Let a Nothing c d) =- Pretty.group (Pretty.flatAlt long short) : docs d+ docA (Binding c Nothing e) =+ Pretty.group (Pretty.flatAlt long short) where long = keyword "let" <> space <> Pretty.align- ( prettyLabel a+ ( prettyLabel c <> space <> equals <> Pretty.hardline <> " "- <> prettyExpression c+ <> prettyExpression e ) short = keyword "let" <> space- <> prettyLabel a+ <> prettyLabel c <> (space <> equals <> space)- <> prettyExpression c- docs (Let a (Just b) c d) =- Pretty.group (Pretty.flatAlt long short) : docs d+ <> prettyExpression e+ docA (Binding c (Just d) e) =+ Pretty.group (Pretty.flatAlt long short) where long = keyword "let" <> space <> Pretty.align- ( prettyLabel a+ ( prettyLabel c <> Pretty.hardline <> colon <> space- <> prettyExpression b+ <> prettyExpression d <> Pretty.hardline <> equals <> space- <> prettyExpression c+ <> prettyExpression e ) short = keyword "let" <> space- <> prettyLabel a+ <> prettyLabel c <> space <> colon <> space- <> prettyExpression b+ <> prettyExpression d <> space <> equals <> space- <> prettyExpression c- docs (Note _ d) =- docs d- docs d =- [ prettyExpression d ]+ <> prettyExpression e++ docB =+ ( keyword "in" <> " " <> prettyExpression b+ , keyword "in" <> " " <> prettyExpression b+ ) prettyExpression a0@(Pi _ _ _) = arrows characterSet (fmap duplicate (docs a0)) where@@ -784,7 +785,7 @@ prettyPrimitiveExpression (NaturalLit a) = prettyNatural a prettyPrimitiveExpression (DoubleLit a) =- prettyScientific a+ prettyDouble a prettyPrimitiveExpression (TextLit a) = prettyChunks a prettyPrimitiveExpression (Record a) =@@ -809,15 +810,15 @@ short = lparen <> prettyExpression a <> rparen prettyKeyValue :: Pretty a => Doc Ann -> (Text, Expr s a) -> (Doc Ann, Doc Ann)- prettyKeyValue separator (key, value) =- ( prettyLabel key <> " " <> separator <> " " <> prettyExpression value+ prettyKeyValue separator (key, val) =+ ( prettyLabel key <> " " <> separator <> " " <> prettyExpression val , prettyLabel key <> " " <> separator <> long ) where- long = Pretty.hardline <> " " <> prettyExpression value+ long = Pretty.hardline <> " " <> prettyExpression val prettyRecord :: Pretty a => Map Text (Expr s a) -> Doc Ann prettyRecord =@@ -909,22 +910,22 @@ escapeText text = Text.concatMap adapt text where adapt c- | '\x20' <= c && c <= '\x21' = Text.singleton c+ | '\x20' <= c && c <= '\x21' = Text.singleton c -- '\x22' == '"'- | '\x23' == c = Text.singleton c+ | '\x23' == c = Text.singleton c -- '\x24' == '$'- | '\x25' <= c && c <= '\x5B' = Text.singleton c+ | '\x25' <= c && c <= '\x5B' = Text.singleton c -- '\x5C' == '\\'- | '\x5D' <= c && c <= '\x7F' = Text.singleton c- | c == '"' = "\\\""- | c == '$' = "\\$"- | c == '\\' = "\\\\"- | c == '\b' = "\\b"- | c == '\f' = "\\f"- | c == '\n' = "\\n"- | c == '\r' = "\\r"- | c == '\t' = "\\t"- | otherwise = "\\u" <> showDigits (Data.Char.ord c)+ | '\x5D' <= c && c <= '\x10FFFF' = Text.singleton c+ | c == '"' = "\\\""+ | c == '$' = "\\$"+ | c == '\\' = "\\\\"+ | c == '\b' = "\\b"+ | c == '\f' = "\\f"+ | c == '\n' = "\\n"+ | c == '\r' = "\\r"+ | c == '\t' = "\\t"+ | otherwise = "\\u" <> showDigits (Data.Char.ord c) showDigits r0 = Text.pack (map showDigit [q1, q2, q3, r3]) where
src/Dhall/Repl.hs view
@@ -26,6 +26,7 @@ import qualified Dhall import qualified Dhall.Binary import qualified Dhall.Context+import qualified Dhall.Core import qualified Dhall.Core as Dhall ( Var(V), Expr, normalize ) import qualified Dhall.Pretty import qualified Dhall.Core as Expr ( Expr(..) )@@ -159,7 +160,7 @@ ( Dhall.normalize ( foldl' ( \a (k, Binding { bindingType, bindingExpr }) ->- Expr.Let k ( Just bindingType ) bindingExpr a+ Expr.Let (pure (Dhall.Core.Binding k (Just bindingType) bindingExpr)) a ) e ( Dhall.Context.toList ( envToContext env ) )
+ src/Dhall/Set.hs view
@@ -0,0 +1,64 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}++-- | This module only exports ways of constructing a Set,+-- retrieving List, Set, and Seq representations of the same data,+-- as well as a novel "difference" function.+-- Any other Set-like or List-like functionality+-- should be obtained through toSet and toList, respectively.+module Dhall.Set (+ Set(..)+ , toList+ , toSet+ , toSeq+ , fromList+ , append+ , empty+ , difference+ ) where++import Prelude+import Data.List (foldl')+import Data.Sequence (Seq, (|>))+import Data.Data (Data)+import GHC.Generics (Generic)++import qualified Data.Set+import qualified Data.Sequence+import qualified Data.Foldable++data Set a = Set (Data.Set.Set a) (Seq a)+ deriving (Eq, Generic, Ord, Show, Data)++instance Foldable Set where+ foldMap f = foldMap f . toSeq++toSet :: Set a -> Data.Set.Set a+toSet (Set s _) = s++toSeq :: Set a -> Seq a+toSeq (Set _ xs) = xs++toList :: Set a -> [a]+toList = Data.Foldable.toList++-- O(n log n) time complexity, O(n) space complexity.+-- Implementing it this way is a little silly, but is faster than (nub xs).+-- n.b. toList . fromList = id, only if the list elements are unique+fromList :: Ord a => [a] -> Set a+fromList = foldl' (flip append) empty++-- O(log n) time complexity.+append :: Ord a => a -> Set a -> Set a+append x os@(Set s xs)+ | Data.Set.member x s = os+ | otherwise = Set (Data.Set.insert x s) (xs |> x)++empty :: Set a+empty = Set Data.Set.empty Data.Sequence.empty++-- | Returns, in order, all elements of the first Set not present in the second.+-- (It doesn't matter in what order the elements appear in the second Set.)+difference :: Ord a => Set a -> Set a -> [a]+difference os (Set s _) =+ filter (\ x -> not (Data.Set.member x s)) (toList os)
src/Dhall/TypeCheck.hs view
@@ -24,6 +24,7 @@ import Control.Exception (Exception) import Data.Data (Data(..)) import Data.Foldable (forM_, toList)+import Data.List.NonEmpty (NonEmpty(..)) import Data.Sequence (Seq, ViewL(..)) import Data.Semigroup (Semigroup(..)) import Data.Set (Set)@@ -31,7 +32,7 @@ import Data.Text.Prettyprint.Doc (Doc, Pretty(..)) import Data.Traversable (forM) import Data.Typeable (Typeable)-import Dhall.Core (Const(..), Chunks(..), Expr(..), Var(..))+import Dhall.Core (Binding(..), Const(..), Chunks(..), Expr(..), Var(..)) import Dhall.Context (Context) import Dhall.Pretty (Ann, layoutOpts) @@ -45,6 +46,7 @@ import qualified Dhall.Core import qualified Dhall.Diff import qualified Dhall.Map+import qualified Dhall.Set import qualified Dhall.Pretty.Internal import qualified Dhall.Util @@ -60,9 +62,9 @@ rule :: Const -> Const -> Either () Const rule Type Type = return Type rule Kind Type = return Type-rule Kind Kind = return Kind rule Sort Type = return Type-rule Sort Kind = return Kind+rule Kind Kind = return Kind+rule Sort Kind = return Sort rule Sort Sort = return Sort -- This forbids dependent types. If this ever changes, then the fast -- path in the Let case of typeWithA will become unsound.@@ -146,7 +148,7 @@ let nf_A = Dhall.Core.normalize _A let nf_A' = Dhall.Core.normalize _A' Left (TypeError ctx e (TypeMismatch f nf_A a nf_A'))- loop ctx e@(Let x mA a0 b0) = do+ loop ctx e@(Let (Binding x mA a0 :| ls) b0) = do _A1 <- loop ctx a0 case mA of Just _A0 -> do@@ -163,6 +165,10 @@ let a1 = Dhall.Core.normalize a0 let a2 = Dhall.Core.shift 1 (V x 0) a1 + let rest = case ls of+ [] -> b0+ l' : ls' -> Let (l' :| ls') b0+ -- The catch-all branch directly implements the Dhall -- specification as written; it is necessary to substitute in -- types in order to get 'dependent let' behaviour and to@@ -175,13 +181,13 @@ case Dhall.Core.normalize t of Const Type -> do let ctx' = fmap (Dhall.Core.shift 1 (V x 0)) (Dhall.Context.insert x (Dhall.Core.normalize _A1) ctx)- _B0 <- loop ctx' b0+ _B0 <- loop ctx' rest let _B1 = Dhall.Core.subst (V x 0) a2 _B0 let _B2 = Dhall.Core.shift (-1) (V x 0) _B1 return _B2 _ -> do- let b1 = Dhall.Core.subst (V x 0) a2 b0+ let b1 = Dhall.Core.subst (V x 0) a2 rest let b2 = Dhall.Core.shift (-1) (V x 0) b1 loop ctx b2 @@ -505,7 +511,11 @@ _ -> Left (TypeError ctx e (InvalidFieldType k t)) Dhall.Map.traverseWithKey_ process rest- return (Const c)++ case c of+ Type -> return (Const Type)+ Kind -> return (Const Sort)+ Sort -> return (Const Sort) loop ctx e@(RecordLit kvs ) = do case Dhall.Map.toList kvs of [] -> return (Record mempty)@@ -770,6 +780,9 @@ return (Record (Dhall.Map.mapWithKey adapt kts)) loop ctx e@(Field r x ) = do t <- fmap Dhall.Core.normalize (loop ctx r)++ let text = Dhall.Pretty.Internal.docToStrictText (Dhall.Pretty.Internal.prettyLabel x)+ case t of Record kts -> do _ <- loop ctx t@@ -777,9 +790,15 @@ case Dhall.Map.lookup x kts of Just t' -> return t' Nothing -> Left (TypeError ctx e (MissingField x t))+ Const Type -> do+ case Dhall.Core.normalize r of+ Union kts ->+ case Dhall.Map.lookup x kts of+ Just t' -> return (Pi x t' (Union kts))+ Nothing -> Left (TypeError ctx e (MissingField x t))+ r' -> Left (TypeError ctx e (CantAccess text r' t)) _ -> do- let text = Dhall.Pretty.Internal.docToStrictText (Dhall.Pretty.Internal.prettyLabel x)- Left (TypeError ctx e (NotARecord text r t))+ Left (TypeError ctx e (CantAccess text r t)) loop ctx e@(Project r xs ) = do t <- fmap Dhall.Core.normalize (loop ctx r) case t of@@ -791,10 +810,10 @@ Just t' -> return (k, t') Nothing -> Left (TypeError ctx e (MissingField k t)) let adapt = Record . Dhall.Map.fromList- fmap adapt (traverse process (Data.Set.toList xs))+ fmap adapt (traverse process (Dhall.Set.toList xs)) _ -> do let text = Dhall.Pretty.Internal.docToStrictText (Dhall.Pretty.Internal.prettyLabels xs)- Left (TypeError ctx e (NotARecord text r t))+ Left (TypeError ctx e (CantProject text r t)) loop ctx (Note s e' ) = case loop ctx e' of Left (TypeError ctx' (Note s' e'') m) -> Left (TypeError ctx' (Note s' e'') m) Left (TypeError ctx' e'' m) -> Left (TypeError ctx' (Note s e'') m)@@ -869,7 +888,8 @@ | MissingMergeType | HandlerNotAFunction Text (Expr s a) | ConstructorsRequiresAUnionType (Expr s a) (Expr s a)- | NotARecord Text (Expr s a) (Expr s a)+ | CantAccess Text (Expr s a) (Expr s a)+ | CantProject Text (Expr s a) (Expr s a) | MissingField Text (Expr s a) | CantAnd (Expr s a) (Expr s a) | CantOr (Expr s a) (Expr s a)@@ -3242,18 +3262,18 @@ where txt0 = insert expr0 txt1 = insert expr1- -prettyTypeMessage (NotARecord lazyText0 expr0 expr1) = ErrorMessages {..}++prettyTypeMessage (CantAccess lazyText0 expr0 expr1) = ErrorMessages {..} where- short = "Not a record"+ short = "Not a record or a union" long =- "Explanation: You can only access fields on records, like this: \n\+ "Explanation: You can only access fields on records or unions, like this: \n\ \ \n\ \ \n\- \ ┌─────────────────────────────────┐ \n\+ \ ┌───────────────────────────────────┐ \n\ \ │ { foo = True, bar = \"ABC\" }.foo │ This is valid ... \n\- \ └─────────────────────────────────┘ \n\+ \ └───────────────────────────────────┘ \n\ \ \n\ \ \n\ \ ┌───────────────────────────────────────────┐ \n\@@ -3261,6 +3281,16 @@ \ └───────────────────────────────────────────┘ \n\ \ \n\ \ \n\+ \ ┌─────────────────────────────────┐ \n\+ \ │ < foo : Bool | bar : Text >.foo │ ... and so is this \n\+ \ └─────────────────────────────────┘ \n\+ \ \n\+ \ \n\+ \ ┌────────────────────────────────────────────┐ \n\+ \ │ λ(r : < foo : Bool | bar : Text >) → r.foo │ ... and so is this \n\+ \ └────────────────────────────────────────────┘ \n\+ \ \n\+ \ \n\ \... but you cannot access fields on non-record expressions \n\ \ \n\ \For example, the following expression is " <> _NOT <> " valid: \n\@@ -3273,22 +3303,70 @@ \ Invalid: Not a record \n\ \ \n\ \ \n\+ \────────────────────────────────────────────────────────────────────────────────\n\+ \ \n\+ \You tried to access the field: \n\+ \ \n\+ \" <> txt0 <> "\n\+ \ \n\+ \... on the following expression which is not a record nor a union type: \n\+ \ \n\+ \" <> txt1 <> "\n\+ \ \n\+ \... but is actually an expression of type: \n\+ \ \n\+ \" <> txt2 <> "\n"+ where+ txt0 = insert lazyText0+ txt1 = insert expr0+ txt2 = insert expr1++prettyTypeMessage (CantProject lazyText0 expr0 expr1) = ErrorMessages {..}+ where+ short = "Not a record"++ long =+ "Explanation: You can only project fields on records, like this: \n\+ \ \n\+ \ \n\+ \ ┌─────────────────────────────────────────────────────┐ \n\+ \ │ { foo = True, bar = \"ABC\", baz = 1 }.{ foo, bar } │ This is valid ... \n\+ \ └─────────────────────────────────────────────────────┘ \n\+ \ \n\+ \ \n\+ \ ┌────────────────────────────────────────────────────────────────────┐ \n\+ \ │ λ(r : { foo : Bool, bar : Text , baz : Natural }) → r.{ foo, bar } │ ... and so is this \n\+ \ └────────────────────────────────────────────────────────────────────┘ \n\+ \ \n\+ \ \n\+ \... but you cannot project fields on non-record expressions \n\+ \ \n\+ \For example, the following expression is " <> _NOT <> " valid: \n\+ \ \n\+ \ \n\+ \ ┌────────────────┐ \n\+ \ │ 1.{ foo, bar } │ \n\+ \ └────────────────┘ \n\+ \ ⇧ \n\+ \ Invalid: Not a record \n\+ \ \n\+ \ \n\ \Some common reasons why you might get this error: \n\ \ \n\- \● You accidentally try to access a field of a union instead of a record, like \n\+ \● You accidentally try to project fields of a union instead of a record, like \n\ \ this: \n\ \ \n\ \ \n\- \ ┌─────────────────┐ \n\- \ │ < foo : a >.foo │ \n\- \ └─────────────────┘ \n\+ \ ┌────────────────────────────────────┐ \n\+ \ │ < foo : a | bar : b >.{ foo, bar } │ \n\+ \ └────────────────────────────────────┘ \n\ \ ⇧ \n\ \ This is a union, not a record \n\ \ \n\ \ \n\ \────────────────────────────────────────────────────────────────────────────────\n\ \ \n\- \You tried to access the field(s): \n\+ \You tried to access the fields: \n\ \ \n\ \" <> txt0 <> "\n\ \ \n\
tests/Format.hs view
@@ -34,6 +34,10 @@ "fieldOrder" , should Unicode+ "preserve the original order of projections"+ "projectionOrder"+ , should+ Unicode "escape numeric labels correctly" "escapeNumericLabel" , should@@ -42,6 +46,10 @@ "largeExponent" , should Unicode+ "round a double to the nearest representable value. Ties go to even least significant bit"+ "doubleRound"+ , should+ Unicode "correctly format the empty record literal" "emptyRecord" , should@@ -72,6 +80,10 @@ ASCII "be able to format with ASCII characters" "ascii"+ , should+ Unicode+ "preserve Unicode characters"+ "unicode" ] should :: CharacterSet -> Text -> Text -> TestTree
tests/Import.hs view
@@ -23,38 +23,38 @@ [ shouldFail 3 "alternative of several unset env variables"- "./tests/import/alternativeEnv.dhall"+ "./tests/import/failure/alternativeEnv.dhall" , shouldFail 1 "alternative of env variable and missing"- "./tests/import/alternativeEnvMissing.dhall"+ "./tests/import/failure/alternativeEnvMissing.dhall" , shouldFail 0 "just missing"- "./tests/import/missing.dhall"+ "./tests/import/failure/missing.dhall" , shouldNotFail "alternative of env variable, missing, and a Natural"- "./tests/import/alternativeEnvNatural.dhall"+ "./tests/import/success/alternativeEnvNaturalA.dhall" , shouldNotFail "alternative of env variable and a Natural"- "./tests/import/alternativeEnvSimple.dhall"+ "./tests/import/success/alternativeEnvSimpleA.dhall" , shouldNotFail "alternative of a Natural and missing"- "./tests/import/alternativeNatural.dhall"+ "./tests/import/success/alternativeNaturalA.dhall" ] , Test.Tasty.testGroup "import relative to argument" [ shouldNotFailRelative "works" "./tests/import/data/foo/bar"- "./tests/import/relative.dhall"+ "./tests/import/success/relative.dhall" , shouldNotFailRelative "a semantic integrity check if fields are reordered"- "./tests/import/"- "./tests/import/fieldOrderC.dhall"+ "./tests/import/success/"+ "./tests/import/success/fieldOrderA.dhall" , shouldNotFailRelative "a semantic integrity check when importing an expression using `constructors`"- "./tests/import/"- "./tests/import/issue553B.dhall"+ "./tests/import/success/"+ "./tests/import/success/issue553B.dhall" ] ]
tests/Normalization.hs view
@@ -29,176 +29,181 @@ , simplifications , constantFolding , conversions- , shouldNormalize "Optional build/fold fusion" "optionalBuildFold"+ , shouldNormalize "Optional build/fold fusion" "success/simple/optionalBuildFold" , customization- , shouldNormalize "a remote-systems.conf builder" "remoteSystems"- , shouldNormalize "multi-line strings correctly" "multiLine"- , shouldNormalize "the // operator and sort the fields" "sortOperator"+ , shouldNormalize "a remote-systems.conf builder" "success/remoteSystems"+ , shouldNormalize "multi-line strings correctly" "success/simple/multiLine"+ , shouldNormalize "the // operator and sort the fields" "success/simple/sortOperator" ] tutorialExamples :: TestTree tutorialExamples = testGroup "Tutorial examples"- [ shouldNormalize "⩓" "./tutorial/combineTypes/0"- , shouldNormalize "projection" "./tutorial/projection/0"+ [ shouldNormalize "⩓" "./success/haskell-tutorial/combineTypes/0"+ , shouldNormalize "//\\\\" "./success/haskell-tutorial/combineTypes/1"+ , shouldNormalize "//" "./success/haskell-tutorial/prefer/0"+ , shouldNormalize "projection" "./success/haskell-tutorial/projection/0"+ , shouldNormalize "access record" "./success/haskell-tutorial/access/0"+ , shouldNormalize "access union" "./success/haskell-tutorial/access/1" ] preludeExamples :: TestTree preludeExamples = testGroup "Prelude examples"- [ shouldNormalize "Bool/and" "./examples/Bool/and/0"- , shouldNormalize "Bool/and" "./examples/Bool/and/1"- , shouldNormalize "Bool/build" "./examples/Bool/build/0"- , shouldNormalize "Bool/build" "./examples/Bool/build/1"- , shouldNormalize "Bool/even" "./examples/Bool/even/0"- , shouldNormalize "Bool/even" "./examples/Bool/even/1"- , shouldNormalize "Bool/even" "./examples/Bool/even/2"- , shouldNormalize "Bool/even" "./examples/Bool/even/3"- , shouldNormalize "Bool/fold" "./examples/Bool/fold/0"- , shouldNormalize "Bool/fold" "./examples/Bool/fold/1"- , shouldNormalize "Bool/not" "./examples/Bool/not/0"- , shouldNormalize "Bool/not" "./examples/Bool/not/1"- , shouldNormalize "Bool/odd" "./examples/Bool/odd/0"- , shouldNormalize "Bool/odd" "./examples/Bool/odd/1"- , shouldNormalize "Bool/odd" "./examples/Bool/odd/2"- , shouldNormalize "Bool/odd" "./examples/Bool/odd/3"- , shouldNormalize "Bool/or" "./examples/Bool/or/0"- , shouldNormalize "Bool/or" "./examples/Bool/or/1"- , shouldNormalize "Bool/show" "./examples/Bool/show/0"- , shouldNormalize "Bool/show" "./examples/Bool/show/1"- , shouldNormalize "Double/show" "./examples/Double/show/0"- , shouldNormalize "Double/show" "./examples/Double/show/1"- , shouldNormalize "Integer/show" "./examples/Integer/show/0"- , shouldNormalize "Integer/show" "./examples/Integer/show/1"- , shouldNormalize "Integer/toDouble" "./examples/Integer/toDouble/0"- , shouldNormalize "Integer/toDouble" "./examples/Integer/toDouble/1"- , shouldNormalize "List/all" "./examples/List/all/0"- , shouldNormalize "List/all" "./examples/List/all/1"- , shouldNormalize "List/any" "./examples/List/any/0"- , shouldNormalize "List/any" "./examples/List/any/1"- , shouldNormalize "List/build" "./examples/List/build/0"- , shouldNormalize "List/build" "./examples/List/build/1"- , shouldNormalize "List/concat" "./examples/List/concat/0"- , shouldNormalize "List/concat" "./examples/List/concat/1"- , shouldNormalize "List/concatMap" "./examples/List/concatMap/0"- , shouldNormalize "List/concatMap" "./examples/List/concatMap/1"- , shouldNormalize "List/filter" "./examples/List/filter/0"- , shouldNormalize "List/filter" "./examples/List/filter/1"- , shouldNormalize "List/fold" "./examples/List/fold/0"- , shouldNormalize "List/fold" "./examples/List/fold/1"- , shouldNormalize "List/fold" "./examples/List/fold/2"- , shouldNormalize "List/generate" "./examples/List/generate/0"- , shouldNormalize "List/generate" "./examples/List/generate/1"- , shouldNormalize "List/head" "./examples/List/head/0"- , shouldNormalize "List/head" "./examples/List/head/1"- , shouldNormalize "List/indexed" "./examples/List/indexed/0"- , shouldNormalize "List/indexed" "./examples/List/indexed/1"- , shouldNormalize "List/iterate" "./examples/List/iterate/0"- , shouldNormalize "List/iterate" "./examples/List/iterate/1"- , shouldNormalize "List/last" "./examples/List/last/0"- , shouldNormalize "List/last" "./examples/List/last/1"- , shouldNormalize "List/length" "./examples/List/length/0"- , shouldNormalize "List/length" "./examples/List/length/1"- , shouldNormalize "List/map" "./examples/List/map/0"- , shouldNormalize "List/map" "./examples/List/map/1"- , shouldNormalize "List/null" "./examples/List/null/0"- , shouldNormalize "List/null" "./examples/List/null/1"- , shouldNormalize "List/replicate" "./examples/List/replicate/0"- , shouldNormalize "List/replicate" "./examples/List/replicate/1"- , shouldNormalize "List/reverse" "./examples/List/reverse/0"- , shouldNormalize "List/reverse" "./examples/List/reverse/1"- , shouldNormalize "List/shifted" "./examples/List/shifted/0"- , shouldNormalize "List/shifted" "./examples/List/shifted/1"- , shouldNormalize "List/unzip" "./examples/List/unzip/0"- , shouldNormalize "List/unzip" "./examples/List/unzip/1"- , shouldNormalize "Natural/build" "./examples/Natural/build/0"- , shouldNormalize "Natural/build" "./examples/Natural/build/1"- , shouldNormalize "Natural/enumerate" "./examples/Natural/enumerate/0"- , shouldNormalize "Natural/enumerate" "./examples/Natural/enumerate/1"- , shouldNormalize "Natural/even" "./examples/Natural/even/0"- , shouldNormalize "Natural/even" "./examples/Natural/even/1"- , shouldNormalize "Natural/fold" "./examples/Natural/fold/0"- , shouldNormalize "Natural/fold" "./examples/Natural/fold/1"- , shouldNormalize "Natural/fold" "./examples/Natural/fold/2"- , shouldNormalize "Natural/isZero" "./examples/Natural/isZero/0"- , shouldNormalize "Natural/isZero" "./examples/Natural/isZero/1"- , shouldNormalize "Natural/odd" "./examples/Natural/odd/0"- , shouldNormalize "Natural/odd" "./examples/Natural/odd/1"- , shouldNormalize "Natural/product" "./examples/Natural/product/0"- , shouldNormalize "Natural/product" "./examples/Natural/product/1"- , shouldNormalize "Natural/show" "./examples/Natural/show/0"- , shouldNormalize "Natural/show" "./examples/Natural/show/1"- , shouldNormalize "Natural/sum" "./examples/Natural/sum/0"- , shouldNormalize "Natural/sum" "./examples/Natural/sum/1"- , shouldNormalize "Natural/toDouble" "./examples/Natural/toDouble/0"- , shouldNormalize "Natural/toDouble" "./examples/Natural/toDouble/1"- , shouldNormalize "Natural/toInteger" "./examples/Natural/toInteger/0"- , shouldNormalize "Natural/toInteger" "./examples/Natural/toInteger/1"- , shouldNormalize "Optional/all" "./examples/Optional/all/0"- , shouldNormalize "Optional/all" "./examples/Optional/all/1"- , shouldNormalize "Optional/any" "./examples/Optional/any/0"- , shouldNormalize "Optional/any" "./examples/Optional/any/1"- , shouldNormalize "Optional/build" "./examples/Optional/build/0"- , shouldNormalize "Optional/build" "./examples/Optional/build/1"- , shouldNormalize "Optional/concat" "./examples/Optional/concat/0"- , shouldNormalize "Optional/concat" "./examples/Optional/concat/1"- , shouldNormalize "Optional/concat" "./examples/Optional/concat/2"- , shouldNormalize "Optional/filter" "./examples/Optional/filter/0"- , shouldNormalize "Optional/filter" "./examples/Optional/filter/1"- , shouldNormalize "Optional/fold" "./examples/Optional/fold/0"- , shouldNormalize "Optional/fold" "./examples/Optional/fold/1"- , shouldNormalize "Optional/head" "./examples/Optional/head/0"- , shouldNormalize "Optional/head" "./examples/Optional/head/1"- , shouldNormalize "Optional/head" "./examples/Optional/head/2"- , shouldNormalize "Optional/last" "./examples/Optional/last/0"- , shouldNormalize "Optional/last" "./examples/Optional/last/1"- , shouldNormalize "Optional/last" "./examples/Optional/last/2"- , shouldNormalize "Optional/length" "./examples/Optional/length/0"- , shouldNormalize "Optional/length" "./examples/Optional/length/1"- , shouldNormalize "Optional/map" "./examples/Optional/map/0"- , shouldNormalize "Optional/map" "./examples/Optional/map/1"- , shouldNormalize "Optional/null" "./examples/Optional/null/0"- , shouldNormalize "Optional/null" "./examples/Optional/null/1"- , shouldNormalize "Optional/toList" "./examples/Optional/toList/0"- , shouldNormalize "Optional/toList" "./examples/Optional/toList/1"- , shouldNormalize "Optional/unzip" "./examples/Optional/unzip/0"- , shouldNormalize "Optional/unzip" "./examples/Optional/unzip/1"- , shouldNormalize "Text/concat" "./examples/Text/concat/0"- , shouldNormalize "Text/concat" "./examples/Text/concat/1"- , shouldNormalize "Text/concatMap" "./examples/Text/concatMap/0"- , shouldNormalize "Text/concatMap" "./examples/Text/concatMap/1"- , shouldNormalize "Text/concatMapSep" "./examples/Text/concatMapSep/0"- , shouldNormalize "Text/concatMapSep" "./examples/Text/concatMapSep/1"- , shouldNormalize "Text/concatSep" "./examples/Text/concatSep/0"- , shouldNormalize "Text/concatSep" "./examples/Text/concatSep/1"+ [ shouldNormalize "Bool/and" "./success/prelude/Bool/and/0"+ , shouldNormalize "Bool/and" "./success/prelude/Bool/and/1"+ , shouldNormalize "Bool/build" "./success/prelude/Bool/build/0"+ , shouldNormalize "Bool/build" "./success/prelude/Bool/build/1"+ , shouldNormalize "Bool/even" "./success/prelude/Bool/even/0"+ , shouldNormalize "Bool/even" "./success/prelude/Bool/even/1"+ , shouldNormalize "Bool/even" "./success/prelude/Bool/even/2"+ , shouldNormalize "Bool/even" "./success/prelude/Bool/even/3"+ , shouldNormalize "Bool/fold" "./success/prelude/Bool/fold/0"+ , shouldNormalize "Bool/fold" "./success/prelude/Bool/fold/1"+ , shouldNormalize "Bool/not" "./success/prelude/Bool/not/0"+ , shouldNormalize "Bool/not" "./success/prelude/Bool/not/1"+ , shouldNormalize "Bool/odd" "./success/prelude/Bool/odd/0"+ , shouldNormalize "Bool/odd" "./success/prelude/Bool/odd/1"+ , shouldNormalize "Bool/odd" "./success/prelude/Bool/odd/2"+ , shouldNormalize "Bool/odd" "./success/prelude/Bool/odd/3"+ , shouldNormalize "Bool/or" "./success/prelude/Bool/or/0"+ , shouldNormalize "Bool/or" "./success/prelude/Bool/or/1"+ , shouldNormalize "Bool/show" "./success/prelude/Bool/show/0"+ , shouldNormalize "Bool/show" "./success/prelude/Bool/show/1"+ , shouldNormalize "Double/show" "./success/prelude/Double/show/0"+ , shouldNormalize "Double/show" "./success/prelude/Double/show/1"+ , shouldNormalize "Integer/show" "./success/prelude/Integer/show/0"+ , shouldNormalize "Integer/show" "./success/prelude/Integer/show/1"+ , shouldNormalize "Integer/toDouble" "./success/prelude/Integer/toDouble/0"+ , shouldNormalize "Integer/toDouble" "./success/prelude/Integer/toDouble/1"+ , shouldNormalize "List/all" "./success/prelude/List/all/0"+ , shouldNormalize "List/all" "./success/prelude/List/all/1"+ , shouldNormalize "List/any" "./success/prelude/List/any/0"+ , shouldNormalize "List/any" "./success/prelude/List/any/1"+ , shouldNormalize "List/build" "./success/prelude/List/build/0"+ , shouldNormalize "List/build" "./success/prelude/List/build/1"+ , shouldNormalize "List/concat" "./success/prelude/List/concat/0"+ , shouldNormalize "List/concat" "./success/prelude/List/concat/1"+ , shouldNormalize "List/concatMap" "./success/prelude/List/concatMap/0"+ , shouldNormalize "List/concatMap" "./success/prelude/List/concatMap/1"+ , shouldNormalize "List/filter" "./success/prelude/List/filter/0"+ , shouldNormalize "List/filter" "./success/prelude/List/filter/1"+ , shouldNormalize "List/fold" "./success/prelude/List/fold/0"+ , shouldNormalize "List/fold" "./success/prelude/List/fold/1"+ , shouldNormalize "List/fold" "./success/prelude/List/fold/2"+ , shouldNormalize "List/generate" "./success/prelude/List/generate/0"+ , shouldNormalize "List/generate" "./success/prelude/List/generate/1"+ , shouldNormalize "List/head" "./success/prelude/List/head/0"+ , shouldNormalize "List/head" "./success/prelude/List/head/1"+ , shouldNormalize "List/indexed" "./success/prelude/List/indexed/0"+ , shouldNormalize "List/indexed" "./success/prelude/List/indexed/1"+ , shouldNormalize "List/iterate" "./success/prelude/List/iterate/0"+ , shouldNormalize "List/iterate" "./success/prelude/List/iterate/1"+ , shouldNormalize "List/last" "./success/prelude/List/last/0"+ , shouldNormalize "List/last" "./success/prelude/List/last/1"+ , shouldNormalize "List/length" "./success/prelude/List/length/0"+ , shouldNormalize "List/length" "./success/prelude/List/length/1"+ , shouldNormalize "List/map" "./success/prelude/List/map/0"+ , shouldNormalize "List/map" "./success/prelude/List/map/1"+ , shouldNormalize "List/null" "./success/prelude/List/null/0"+ , shouldNormalize "List/null" "./success/prelude/List/null/1"+ , shouldNormalize "List/replicate" "./success/prelude/List/replicate/0"+ , shouldNormalize "List/replicate" "./success/prelude/List/replicate/1"+ , shouldNormalize "List/reverse" "./success/prelude/List/reverse/0"+ , shouldNormalize "List/reverse" "./success/prelude/List/reverse/1"+ , shouldNormalize "List/shifted" "./success/prelude/List/shifted/0"+ , shouldNormalize "List/shifted" "./success/prelude/List/shifted/1"+ , shouldNormalize "List/unzip" "./success/prelude/List/unzip/0"+ , shouldNormalize "List/unzip" "./success/prelude/List/unzip/1"+ , shouldNormalize "Natural/build" "./success/prelude/Natural/build/0"+ , shouldNormalize "Natural/build" "./success/prelude/Natural/build/1"+ , shouldNormalize "Natural/enumerate" "./success/prelude/Natural/enumerate/0"+ , shouldNormalize "Natural/enumerate" "./success/prelude/Natural/enumerate/1"+ , shouldNormalize "Natural/even" "./success/prelude/Natural/even/0"+ , shouldNormalize "Natural/even" "./success/prelude/Natural/even/1"+ , shouldNormalize "Natural/fold" "./success/prelude/Natural/fold/0"+ , shouldNormalize "Natural/fold" "./success/prelude/Natural/fold/1"+ , shouldNormalize "Natural/fold" "./success/prelude/Natural/fold/2"+ , shouldNormalize "Natural/isZero" "./success/prelude/Natural/isZero/0"+ , shouldNormalize "Natural/isZero" "./success/prelude/Natural/isZero/1"+ , shouldNormalize "Natural/odd" "./success/prelude/Natural/odd/0"+ , shouldNormalize "Natural/odd" "./success/prelude/Natural/odd/1"+ , shouldNormalize "Natural/product" "./success/prelude/Natural/product/0"+ , shouldNormalize "Natural/product" "./success/prelude/Natural/product/1"+ , shouldNormalize "Natural/show" "./success/prelude/Natural/show/0"+ , shouldNormalize "Natural/show" "./success/prelude/Natural/show/1"+ , shouldNormalize "Natural/sum" "./success/prelude/Natural/sum/0"+ , shouldNormalize "Natural/sum" "./success/prelude/Natural/sum/1"+ , shouldNormalize "Natural/toDouble" "./success/prelude/Natural/toDouble/0"+ , shouldNormalize "Natural/toDouble" "./success/prelude/Natural/toDouble/1"+ , shouldNormalize "Natural/toInteger" "./success/prelude/Natural/toInteger/0"+ , shouldNormalize "Natural/toInteger" "./success/prelude/Natural/toInteger/1"+ , shouldNormalize "Optional/all" "./success/prelude/Optional/all/0"+ , shouldNormalize "Optional/all" "./success/prelude/Optional/all/1"+ , shouldNormalize "Optional/any" "./success/prelude/Optional/any/0"+ , shouldNormalize "Optional/any" "./success/prelude/Optional/any/1"+ , shouldNormalize "Optional/build" "./success/prelude/Optional/build/0"+ , shouldNormalize "Optional/build" "./success/prelude/Optional/build/1"+ , shouldNormalize "Optional/concat" "./success/prelude/Optional/concat/0"+ , shouldNormalize "Optional/concat" "./success/prelude/Optional/concat/1"+ , shouldNormalize "Optional/concat" "./success/prelude/Optional/concat/2"+ , shouldNormalize "Optional/filter" "./success/prelude/Optional/filter/0"+ , shouldNormalize "Optional/filter" "./success/prelude/Optional/filter/1"+ , shouldNormalize "Optional/fold" "./success/prelude/Optional/fold/0"+ , shouldNormalize "Optional/fold" "./success/prelude/Optional/fold/1"+ , shouldNormalize "Optional/head" "./success/prelude/Optional/head/0"+ , shouldNormalize "Optional/head" "./success/prelude/Optional/head/1"+ , shouldNormalize "Optional/head" "./success/prelude/Optional/head/2"+ , shouldNormalize "Optional/last" "./success/prelude/Optional/last/0"+ , shouldNormalize "Optional/last" "./success/prelude/Optional/last/1"+ , shouldNormalize "Optional/last" "./success/prelude/Optional/last/2"+ , shouldNormalize "Optional/length" "./success/prelude/Optional/length/0"+ , shouldNormalize "Optional/length" "./success/prelude/Optional/length/1"+ , shouldNormalize "Optional/map" "./success/prelude/Optional/map/0"+ , shouldNormalize "Optional/map" "./success/prelude/Optional/map/1"+ , shouldNormalize "Optional/null" "./success/prelude/Optional/null/0"+ , shouldNormalize "Optional/null" "./success/prelude/Optional/null/1"+ , shouldNormalize "Optional/toList" "./success/prelude/Optional/toList/0"+ , shouldNormalize "Optional/toList" "./success/prelude/Optional/toList/1"+ , shouldNormalize "Optional/unzip" "./success/prelude/Optional/unzip/0"+ , shouldNormalize "Optional/unzip" "./success/prelude/Optional/unzip/1"+ , shouldNormalize "Text/concat" "./success/prelude/Text/concat/0"+ , shouldNormalize "Text/concat" "./success/prelude/Text/concat/1"+ , shouldNormalize "Text/concatMap" "./success/prelude/Text/concatMap/0"+ , shouldNormalize "Text/concatMap" "./success/prelude/Text/concatMap/1"+ , shouldNormalize "Text/concatMapSep" "./success/prelude/Text/concatMapSep/0"+ , shouldNormalize "Text/concatMapSep" "./success/prelude/Text/concatMapSep/1"+ , shouldNormalize "Text/concatSep" "./success/prelude/Text/concatSep/0"+ , shouldNormalize "Text/concatSep" "./success/prelude/Text/concatSep/1" ] simplifications :: TestTree simplifications = testGroup "Simplifications"- [ shouldNormalize "if/then/else" "./simplifications/ifThenElse"- , shouldNormalize "||" "./simplifications/or"- , shouldNormalize "&&" "./simplifications/and"- , shouldNormalize "==" "./simplifications/eq"- , shouldNormalize "!=" "./simplifications/ne"+ [ shouldNormalize "if/then/else" "./success/simplifications/ifThenElse"+ , shouldNormalize "||" "./success/simplifications/or"+ , shouldNormalize "&&" "./success/simplifications/and"+ , shouldNormalize "==" "./success/simplifications/eq"+ , shouldNormalize "!=" "./success/simplifications/ne" ] constantFolding :: TestTree constantFolding = testGroup "folding of constants"- [ shouldNormalize "Natural/plus" "naturalPlus"- , shouldNormalize "Optional/fold" "optionalFold"- , shouldNormalize "Optional/build" "optionalBuild"- , shouldNormalize "Natural/build" "naturalBuild"+ [ shouldNormalize "Natural/plus" "success/simple/naturalPlus"+ , shouldNormalize "Optional/fold" "success/simple/optionalFold"+ , shouldNormalize "Optional/build" "success/simple/optionalBuild"+ , shouldNormalize "Natural/build" "success/simple/naturalBuild" ] conversions :: TestTree conversions = testGroup "conversions"- [ shouldNormalize "Natural/show" "naturalShow"- , shouldNormalize "Integer/show" "integerShow"- , shouldNormalize "Double/show" "doubleShow"- , shouldNormalize "Natural/toInteger" "naturalToInteger"+ [ shouldNormalize "Natural/show" "success/simple/naturalShow"+ , shouldNormalize "Integer/show" "success/simple/integerShow"+ , shouldNormalize "Double/show" "success/simple/doubleShow"+ , shouldNormalize "Natural/toInteger" "success/simple/naturalToInteger"+ , shouldNormalize "Integer/toDouble" "success/simple/integerToDouble" ] customization :: TestTree@@ -212,8 +217,8 @@ simpleCustomization = testCase "simpleCustomization" $ do let tyCtx = insert "min" (Pi "_" Natural (Pi "_" Natural Natural)) empty valCtx e = case e of- (App (App (Var (V "min" 0)) (NaturalLit x)) (NaturalLit y)) -> Just (NaturalLit (min x y))- _ -> Nothing+ (App (App (Var (V "min" 0)) (NaturalLit x)) (NaturalLit y)) -> pure (Just (NaturalLit (min x y)))+ _ -> pure Nothing e <- codeWith tyCtx "min (min 11 12) 8 + 1" assertNormalizesToWith valCtx e "9" @@ -224,12 +229,12 @@ wurbleType <- insert "wurble" <$> code "Natural → Integer" let tyCtx = minType . fiveorlessType . wurbleType $ empty valCtx e = case e of- (App (App (Var (V "min" 0)) (NaturalLit x)) (NaturalLit y)) -> Just (NaturalLit (min x y))- (App (Var (V "wurble" 0)) (NaturalLit x)) -> Just- (App (Var (V "fiveorless" 0)) (NaturalPlus (NaturalLit x) (NaturalLit 2)))- (App (Var (V "fiveorless" 0)) (NaturalLit x)) -> Just- (App (App (Var (V "min" 0)) (NaturalLit x)) (NaturalPlus (NaturalLit 3) (NaturalLit 2)))- _ -> Nothing+ (App (App (Var (V "min" 0)) (NaturalLit x)) (NaturalLit y)) -> pure (Just (NaturalLit (min x y)))+ (App (Var (V "wurble" 0)) (NaturalLit x)) -> pure (Just+ (App (Var (V "fiveorless" 0)) (NaturalPlus (NaturalLit x) (NaturalLit 2))))+ (App (Var (V "fiveorless" 0)) (NaturalLit x)) -> pure (Just+ (App (App (Var (V "min" 0)) (NaturalLit x)) (NaturalPlus (NaturalLit 3) (NaturalLit 2))))+ _ -> pure Nothing e <- codeWith tyCtx "wurble 6" assertNormalizesToWith valCtx e "5"
tests/Parser.hs view
@@ -18,145 +18,151 @@ [ Test.Tasty.testGroup "whitespace" [ shouldParse "prefix/suffix"- "./tests/parser/whitespace.dhall"+ "./tests/parser/success/whitespace" , shouldParse "block comment"- "./tests/parser/blockComment.dhall"+ "./tests/parser/success/blockComment" , shouldParse "nested block comment"- "./tests/parser/nestedBlockComment.dhall"+ "./tests/parser/success/nestedBlockComment" , shouldParse "line comment"- "./tests/parser/lineComment.dhall"+ "./tests/parser/success/lineComment" , shouldParse "Unicode comment"- "./tests/parser/unicodeComment.dhall"+ "./tests/parser/success/unicodeComment" , shouldParse "whitespace buffet"- "./tests/parser/whitespaceBuffet.dhall"+ "./tests/parser/success/whitespaceBuffet" ] , shouldParse "label"- "./tests/parser/label.dhall"+ "./tests/parser/success/label" , shouldParse "quoted label"- "./tests/parser/quotedLabel.dhall"+ "./tests/parser/success/quotedLabel" , shouldParse "double quoted string"- "./tests/parser/doubleQuotedString.dhall"+ "./tests/parser/success/doubleQuotedString" , shouldParse "Unicode double quoted string"- "./tests/parser/unicodeDoubleQuotedString.dhall"+ "./tests/parser/success/unicodeDoubleQuotedString" , shouldParse "escaped double quoted string"- "./tests/parser/escapedDoubleQuotedString.dhall"+ "./tests/parser/success/escapedDoubleQuotedString" , shouldParse "interpolated double quoted string"- "./tests/parser/interpolatedDoubleQuotedString.dhall"+ "./tests/parser/success/interpolatedDoubleQuotedString" , shouldParse "single quoted string"- "./tests/parser/singleQuotedString.dhall"+ "./tests/parser/success/singleQuotedString" , shouldParse "escaped single quoted string"- "./tests/parser/escapedSingleQuotedString.dhall"+ "./tests/parser/success/escapedSingleQuotedString" , shouldParse "interpolated single quoted string"- "./tests/parser/interpolatedSingleQuotedString.dhall"+ "./tests/parser/success/interpolatedSingleQuotedString" , shouldParse "double"- "./tests/parser/double.dhall"+ "./tests/parser/success/double" , shouldParse "natural"- "./tests/parser/natural.dhall"+ "./tests/parser/success/natural" , shouldParse "identifier"- "./tests/parser/identifier.dhall"+ "./tests/parser/success/identifier" , shouldParse "paths"- "./tests/parser/paths.dhall"+ "./tests/parser/success/paths" , shouldParse "path termination"- "./tests/parser/pathTermination.dhall"+ "./tests/parser/success/pathTermination" , shouldParse "urls"- "./tests/parser/urls.dhall"+ "./tests/parser/success/urls" , shouldParse "environmentVariables"- "./tests/parser/environmentVariables.dhall"+ "./tests/parser/success/environmentVariables" , shouldParse "lambda"- "./tests/parser/lambda.dhall"+ "./tests/parser/success/lambda" , shouldParse "if then else"- "./tests/parser/ifThenElse.dhall"+ "./tests/parser/success/ifThenElse" , shouldParse "let"- "./tests/parser/let.dhall"+ "./tests/parser/success/let" , shouldParse "forall"- "./tests/parser/forall.dhall"+ "./tests/parser/success/forall" , shouldParse "function type"- "./tests/parser/functionType.dhall"+ "./tests/parser/success/functionType" , shouldParse "operators"- "./tests/parser/operators.dhall"+ "./tests/parser/success/operators" , shouldParse "annotations"- "./tests/parser/annotations.dhall"+ "./tests/parser/success/annotations" , shouldParse "merge"- "./tests/parser/merge.dhall"+ "./tests/parser/success/merge" , shouldParse "constructors"- "./tests/parser/constructors.dhall"+ "./tests/parser/success/constructors" , shouldParse "fields"- "./tests/parser/fields.dhall"+ "./tests/parser/success/fields" , shouldParse "record"- "./tests/parser/record.dhall"+ "./tests/parser/success/record" , shouldParse "union"- "./tests/parser/union.dhall"+ "./tests/parser/success/union" , shouldParse "list"- "./tests/parser/list.dhall"+ "./tests/parser/success/list" , shouldParse "builtins"- "./tests/parser/builtins.dhall"+ "./tests/parser/success/builtins" , shouldParse "import alternatives"- "./tests/parser/importAlt.dhall"+ "./tests/parser/success/importAlt" , shouldParse "large expression"- "./tests/parser/largeExpression.dhall"+ "./tests/parser/success/largeExpression" , shouldParse "names that begin with reserved identifiers"- "./tests/parser/reservedPrefix.dhall"+ "./tests/parser/success/reservedPrefix" , shouldParse "interpolated expressions with leading whitespace"- "./tests/parser/template.dhall"- , shouldNotParse- "records with duplicate fields"- "./tests/parser/failure/duplicateFields.dhall"+ "./tests/parser/success/template" , shouldParse "collections with type annotations containing imports"- "./tests/parser/collectionImportType.dhall"+ "./tests/parser/success/collectionImportType" , shouldParse "a parenthesized custom header import"- "./tests/parser/parenthesizeUsing.dhall"+ "./tests/parser/success/parenthesizeUsing" , shouldNotParse "accessing a field of an import without parentheses" "./tests/parser/failure/importAccess.dhall" , shouldParse "Sort"- "./tests/parser/sort.dhall"+ "./tests/parser/success/sort"+ , shouldParse+ "quoted path components"+ "./tests/parser/success/quotedPaths"+ , shouldNotParse+ "positive double out of bounds"+ "./tests/parser/failure/doubleBoundsPos.dhall"+ , shouldNotParse+ "negative double out of bounds"+ "./tests/parser/failure/doubleBoundsNeg.dhall" ] shouldParse :: Text -> FilePath -> TestTree shouldParse name path = Test.Tasty.HUnit.testCase (Data.Text.unpack name) (do- text <- Data.Text.IO.readFile path+ text <- Data.Text.IO.readFile (path <> "A.dhall") case Dhall.Parser.exprFromText mempty text of Left err -> Control.Exception.throwIO err Right _ -> return () )
tests/QuickCheck.hs view
@@ -8,9 +8,11 @@ import Codec.Serialise (DeserialiseFailure(..)) import Control.Monad (guard)+import Data.List.NonEmpty (NonEmpty(..)) import Dhall.Map (Map) import Dhall.Core- ( Chunks(..)+ ( Binding(..)+ , Chunks(..) , Const(..) , Directory(..) , Expr(..)@@ -24,6 +26,7 @@ , URL(..) , Var(..) )+import Dhall.Set (Set) import Numeric.Natural (Natural) import Test.QuickCheck (Arbitrary(..), Gen, Property, genericShrink, (===))@@ -36,6 +39,7 @@ import qualified Data.Sequence import qualified Dhall.Binary import qualified Dhall.Core+import qualified Dhall.Set import qualified Test.QuickCheck import qualified Test.Tasty.QuickCheck @@ -46,6 +50,9 @@ D (DeserialiseFailure aL bL) == D (DeserialiseFailure aR bR) = aL == aR && bL == bR +instance (Arbitrary a, Ord a) => Arbitrary (Set a) where+ arbitrary = Dhall.Set.fromList <$> arbitrary+ lift0 :: a -> Gen a lift0 = pure @@ -121,6 +128,11 @@ . shrink . Dhall.Map.toList +instance (Arbitrary s, Arbitrary a) => Arbitrary (Binding s a) where+ arbitrary = lift3 Binding++ shrink = genericShrink+ instance (Arbitrary s, Arbitrary a) => Arbitrary (Chunks s a) where arbitrary = do n <- Test.QuickCheck.choose (0, 2)@@ -159,7 +171,13 @@ , ( 1, Test.QuickCheck.oneof [ lift2 (Lam "_"), lift3 Lam ]) , ( 1, Test.QuickCheck.oneof [ lift2 (Pi "_"), lift3 Pi ]) , ( 1, lift2 App)- , ( 1, Test.QuickCheck.oneof [ lift3 (Let "_"), lift4 Let ])+ , let letExpression = do+ n <- Test.QuickCheck.choose (0, 2)+ binding <- arbitrary+ bindings <- Test.QuickCheck.vectorOf n arbitrary+ body <- arbitrary+ return (Let (binding :| bindings) body)+ in ( 1, Test.QuickCheck.oneof [ letExpression ]) , ( 1, lift2 Annot) , ( 7, lift0 Bool) , ( 7, lift1 BoolLit)
tests/TypeCheck.hs view
@@ -21,40 +21,70 @@ typecheckTests :: TestTree typecheckTests = Test.Tasty.testGroup "typecheck tests"- [ Test.Tasty.testGroup "Prelude examples"- [ should "Monoid" "./examples/Monoid/00"- , should "Monoid" "./examples/Monoid/01"- , should "Monoid" "./examples/Monoid/02"- , should "Monoid" "./examples/Monoid/03"- , should "Monoid" "./examples/Monoid/04"- , should "Monoid" "./examples/Monoid/05"- , should "Monoid" "./examples/Monoid/06"- , should "Monoid" "./examples/Monoid/07"- , should "Monoid" "./examples/Monoid/08"- , should "Monoid" "./examples/Monoid/09"- , should "Monoid" "./examples/Monoid/10"- ]+ [ preludeExamples+ , accessTypeChecks , should "allow type-valued fields in a record"- "fieldsAreTypes"+ "success/simple/fieldsAreTypes" , should "allow type-valued alternatives in a union"- "alternativesAreTypes"+ "success/simple/alternativesAreTypes" , should "allow anonymous functions in types to be judgmentally equal"- "anonymousFunctionsInTypes"+ "success/simple/anonymousFunctionsInTypes" , should "correctly handle α-equivalent merge alternatives"- "mergeEquivalence"+ "success/simple/mergeEquivalence" , should "allow Kind variables"- "kindParameter"+ "success/simple/kindParameter" , shouldNotTypeCheck "combining records of terms and types" "failure/combineMixedRecords" , shouldNotTypeCheck "preferring a record of types over a record of terms" "failure/preferMixedRecords"+ , should+ "allow records of types of mixed kinds"+ "success/recordOfTypes"+ , should+ "allow Boehm-Berarducci-encoded records of types of mixed kinds"+ "success/encodedRecordOfTypes"+ , should+ "allow accessing a type from a record"+ "success/accessType"+ , should+ "allow accessing a type from a Boehm-Berarducci-encoded record"+ "success/accessEncodedType"+ , shouldNotTypeCheck+ "Hurkens' paradox"+ "failure/hurkensParadox"+ , should+ "allow accessing a constructor from a type stored inside a record"+ "success/simple/mixedFieldAccess"+ ]++preludeExamples :: TestTree+preludeExamples =+ Test.Tasty.testGroup "Prelude examples"+ [ should "Monoid" "./success/prelude/Monoid/00"+ , should "Monoid" "./success/prelude/Monoid/01"+ , should "Monoid" "./success/prelude/Monoid/02"+ , should "Monoid" "./success/prelude/Monoid/03"+ , should "Monoid" "./success/prelude/Monoid/04"+ , should "Monoid" "./success/prelude/Monoid/05"+ , should "Monoid" "./success/prelude/Monoid/06"+ , should "Monoid" "./success/prelude/Monoid/07"+ , should "Monoid" "./success/prelude/Monoid/08"+ , should "Monoid" "./success/prelude/Monoid/09"+ , should "Monoid" "./success/prelude/Monoid/10"+ ]++accessTypeChecks :: TestTree+accessTypeChecks =+ Test.Tasty.testGroup "typecheck access"+ [ should "record" "./success/simple/access/0"+ , should "record" "./success/simple/access/1" ] should :: Text -> Text -> TestTree
+ tests/format/doubleRoundA.dhall view
@@ -0,0 +1,41 @@+[ 1.0000000000000000+, 1.0000000000000001+, 1.0000000000000002+, 1.0000000000000003+, 1.0000000000000004+, 1.0000000000000005+, 1.0000000000000006+, 1.0000000000000007+, 1.0000000000000008+, 1.0000000000000009++, 1.0000000000000000e64+, 1.0000000000000001e64+, 1.0000000000000002e64+, 1.0000000000000003e64+, 1.0000000000000004e64+, 1.0000000000000005e64+, 1.0000000000000006e64+, 1.0000000000000007e64+, 1.0000000000000008e64+, 1.0000000000000009e64++, 1.0000000000000000e100+, 1.0000000000000001e100+, 1.0000000000000002e100+, 1.0000000000000003e100+, 1.0000000000000004e100+, 1.0000000000000005e100+, 1.0000000000000006e100+, 1.0000000000000007e100+, 1.0000000000000008e100+, 1.0000000000000009e100++, 179769313486231580793728971405303415079934132710037826936173778980444968292764750946649017977587207096330286416692887910946555547851940402630657488671505820681908902000708383676273854845817711531764475730270069855571366959622842914819860834936475292719074168444365510704342711559699508093042880177904174497791.0+, 179769313486231560835325876058105298516207002341652166261661174625869553267292326574530099287946549246750631490335877017522087105926987962906277604735569213290190919152394180476217125334960946356387261286640198029037799514183602981511756283727771403830521483963923935633133642802139091669457927874464075218945.0+, 179769313486231560835325876058105298516207002341652166261661174625869553267292326574530099287946549246750631490335877017522087105926987962906277604735569213290190919152394180476217125334960946356387261286640198029037799514183602981511756283727771403830521483963923935633133642802139091669457927874464075218944.0++, -179769313486231580793728971405303415079934132710037826936173778980444968292764750946649017977587207096330286416692887910946555547851940402630657488671505820681908902000708383676273854845817711531764475730270069855571366959622842914819860834936475292719074168444365510704342711559699508093042880177904174497791.0+, -179769313486231560835325876058105298516207002341652166261661174625869553267292326574530099287946549246750631490335877017522087105926987962906277604735569213290190919152394180476217125334960946356387261286640198029037799514183602981511756283727771403830521483963923935633133642802139091669457927874464075218945.0+, -179769313486231560835325876058105298516207002341652166261661174625869553267292326574530099287946549246750631490335877017522087105926987962906277604735569213290190919152394180476217125334960946356387261286640198029037799514183602981511756283727771403830521483963923935633133642802139091669457927874464075218944.0+]
+ tests/format/doubleRoundB.dhall view
@@ -0,0 +1,37 @@+[ 1.0+, 1.0+, 1.0000000000000002+, 1.0000000000000002+, 1.0000000000000004+, 1.0000000000000004+, 1.0000000000000007+, 1.0000000000000007+, 1.0000000000000009+, 1.0000000000000009+, 1.0e64+, 1.0000000000000002e64+, 1.0000000000000002e64+, 1.0000000000000003e64+, 1.0000000000000005e64+, 1.0000000000000005e64+, 1.0000000000000006e64+, 1.0000000000000008e64+, 1.0000000000000008e64+, 1.0000000000000009e64+, 1.0e100+, 1.0e100+, 1.0000000000000002e100+, 1.0000000000000002e100+, 1.0000000000000004e100+, 1.0000000000000004e100+, 1.0000000000000006e100+, 1.0000000000000008e100+, 1.0000000000000008e100+, 1.000000000000001e100+, 1.7976931348623157e308+, 1.7976931348623157e308+, 1.7976931348623155e308+, -1.7976931348623157e308+, -1.7976931348623157e308+, -1.7976931348623155e308+]
tests/format/importLinesA.dhall view
@@ -1,7 +1,7 @@ let _ = ./emptyRecordA.dhall-in let _ = ./emptyRecordA.dhall-in let _ = ./emptyRecordA.dhall-in let _ = ./emptyRecordA.dhall-in let _ = ./emptyRecordA.dhall-in let _ = ./emptyRecordA.dhall+let _ = ./emptyRecordA.dhall+let _ = ./emptyRecordA.dhall+let _ = ./emptyRecordA.dhall+let _ = ./emptyRecordA.dhall+let _ = ./emptyRecordA.dhall in 123
tests/format/importLinesB.dhall view
@@ -1,13 +1,13 @@- let _ = ./emptyRecordA.dhall+let _ = ./emptyRecordA.dhall -in let _ = ./emptyRecordA.dhall+let _ = ./emptyRecordA.dhall -in let _ = ./emptyRecordA.dhall+let _ = ./emptyRecordA.dhall -in let _ = ./emptyRecordA.dhall+let _ = ./emptyRecordA.dhall -in let _ = ./emptyRecordA.dhall+let _ = ./emptyRecordA.dhall -in let _ = ./emptyRecordA.dhall+let _ = ./emptyRecordA.dhall in 123
tests/format/largeExponentA.dhall view
@@ -1,1 +1,1 @@-[ 1.0, 1e1000000000, 1e-1000000000 ]+[ 1.0, 1e100, 1e-100 ]
tests/format/largeExponentB.dhall view
@@ -1,1 +1,1 @@-[ 1.0, 1.0e1000000000, 1.0e-1000000000 ]+[ 1.0, 1.0e100, 1.0e-100 ]
+ tests/format/projectionOrderA.dhall view
@@ -0,0 +1,1 @@+e.{ foo, bar, baz }
+ tests/format/projectionOrderB.dhall view
@@ -0,0 +1,1 @@+e.{ foo, bar, baz }
tests/format/sha256PrintingA.dhall view
@@ -1,2 +1,4 @@ let replicate =- https://raw.githubusercontent.com/dhall-lang/Prelude/c79c2bc3c46f129cc5b6d594ce298a381bcae92c/List/replicate sha256:b0e3ec1797b32c80c0bcb7e8254b08c7e9e35e75e6b410c7ac21477ab90167ad in replicate 5+ https://raw.githubusercontent.com/dhall-lang/Prelude/c79c2bc3c46f129cc5b6d594ce298a381bcae92c/List/replicate sha256:cc856d59b63f7699881bdb8e4b1036ca4c0013827268040a50c1e1405f646a2c++in replicate 5
tests/format/sha256PrintingB.dhall view
@@ -1,4 +1,4 @@- let replicate =- https://raw.githubusercontent.com/dhall-lang/Prelude/c79c2bc3c46f129cc5b6d594ce298a381bcae92c/List/replicate sha256:b0e3ec1797b32c80c0bcb7e8254b08c7e9e35e75e6b410c7ac21477ab90167ad+let replicate =+ https://raw.githubusercontent.com/dhall-lang/Prelude/c79c2bc3c46f129cc5b6d594ce298a381bcae92c/List/replicate sha256:cc856d59b63f7699881bdb8e4b1036ca4c0013827268040a50c1e1405f646a2c in replicate 5
+ tests/format/unicodeA.dhall view
@@ -0,0 +1,16 @@+ λ(isActive : Bool)+→ { barLeftEnd =+ [ "┨" ] : Optional Text+ , barRightEnd =+ [ "┠" ] : Optional Text+ , separator =+ [ "┃" ] : Optional Text+ , alignment =+ < ToTheLeft = {=} | ToTheRight : {} | Centered : {} >+ : ./Alignment.dhall+ , barWidth =+ [] : Optional Natural+ , barSegments =+ [ "index", "command", "path", "title" ]+ }+ : ./Bar.dhall
+ tests/format/unicodeB.dhall view
@@ -0,0 +1,16 @@+ λ(isActive : Bool)+→ { barLeftEnd =+ [ "┨" ] : Optional Text+ , barRightEnd =+ [ "┠" ] : Optional Text+ , separator =+ [ "┃" ] : Optional Text+ , alignment =+ < ToTheLeft = {=} | ToTheRight : {} | Centered : {} >+ : ./Alignment.dhall+ , barWidth =+ [] : Optional Natural+ , barSegments =+ [ "index", "command", "path", "title" ]+ }+ : ./Bar.dhall
− tests/import/alternativeEnv.dhall
@@ -1,1 +0,0 @@-env:UNSET1 as Text ? env:UNSET2 ? missing ? env:UNSET3
− tests/import/alternativeEnvMissing.dhall
@@ -1,1 +0,0 @@-env:UNSET ? missing
− tests/import/alternativeEnvNatural.dhall
@@ -1,1 +0,0 @@-env:UNSET1 as Text ? env:UNSET2 ? missing ? env:UNSET3 ? 2
− tests/import/alternativeEnvSimple.dhall
@@ -1,1 +0,0 @@-env:UNSET ? 3
− tests/import/alternativeNatural.dhall
@@ -1,1 +0,0 @@-4 ? missing
+ tests/import/data/fieldOrder/1.dhall view
@@ -0,0 +1,1 @@+{ foo = 1, bar = True }
+ tests/import/data/fieldOrder/2.dhall view
@@ -0,0 +1,1 @@+{ bar = True, foo = 1 }
+ tests/import/failure/alternativeEnv.dhall view
@@ -0,0 +1,1 @@+env:UNSET1 as Text ? env:UNSET2 ? missing ? env:UNSET3
+ tests/import/failure/alternativeEnvMissing.dhall view
@@ -0,0 +1,1 @@+env:UNSET ? missing
+ tests/import/failure/missing.dhall view
@@ -0,0 +1,1 @@+missing
− tests/import/fieldOrderA.dhall
@@ -1,1 +0,0 @@-{ foo = 1, bar = True }
− tests/import/fieldOrderB.dhall
@@ -1,1 +0,0 @@-{ bar = True, foo = 1 }
− tests/import/fieldOrderC.dhall
@@ -1,5 +0,0 @@-{ example0 =- ./fieldOrderA.dhall sha256:72791c3846cef2ec49baabe6a5d38ca25301ed30b45754dfa1c6b06bab8faaf6-, example1 =- ./fieldOrderB.dhall sha256:72791c3846cef2ec49baabe6a5d38ca25301ed30b45754dfa1c6b06bab8faaf6-}
− tests/import/issue553A.dhall
@@ -1,5 +0,0 @@- let T = < A : {} | B : {} >--in let t = constructors T--in t
− tests/import/issue553B.dhall
@@ -1,1 +0,0 @@-./issue553A.dhall sha256:ef4cce5b6c440b2409f9ba86e48fb788b7ccb757569a713492654f23209cb19b
− tests/import/missing.dhall
@@ -1,1 +0,0 @@-missing
− tests/import/relative.dhall
@@ -1,2 +0,0 @@--- This file assumes its base directory is actually ./data/foo/bar/-./a.dhall : Natural
+ tests/import/success/alternativeEnvNaturalA.dhall view
@@ -0,0 +1,1 @@+env:UNSET1 as Text ? env:UNSET2 ? missing ? env:UNSET3 ? 2
+ tests/import/success/alternativeEnvNaturalB.dhall view
@@ -0,0 +1,1 @@+2
+ tests/import/success/alternativeEnvSimpleA.dhall view
@@ -0,0 +1,1 @@+env:UNSET ? 3
+ tests/import/success/alternativeEnvSimpleB.dhall view
@@ -0,0 +1,1 @@+3
+ tests/import/success/alternativeNaturalA.dhall view
@@ -0,0 +1,1 @@+4 ? missing
+ tests/import/success/alternativeNaturalB.dhall view
@@ -0,0 +1,1 @@+4
+ tests/import/success/fieldOrderA.dhall view
@@ -0,0 +1,5 @@+{ example0 =+ ./../data/fieldOrder/1.dhall sha256:4a7866b88389e18cf481b525544fd7903325252faf3a86c8fdc981298c788a9b+, example1 =+ ./../data/fieldOrder/2.dhall sha256:4a7866b88389e18cf481b525544fd7903325252faf3a86c8fdc981298c788a9b+}
+ tests/import/success/fieldOrderB.dhall view
@@ -0,0 +1,1 @@+{ example0 = { bar = True, foo = 1 }, example1 = { bar = True, foo = 1 } }
+ tests/import/success/issue553A.dhall view
@@ -0,0 +1,5 @@+ let T = < A : {} | B : {} >++in let t = constructors T++in t
+ tests/import/success/issue553B.dhall view
@@ -0,0 +1,1 @@+./issue553A.dhall sha256:6fb582c043889dd5a4c97176f8a58d2633252b5374cb71e288b93bc3757f9643
+ tests/import/success/relative.dhall view
@@ -0,0 +1,2 @@+-- This file assumes its base directory is actually ./data/foo/bar/+./a.dhall : Natural
− tests/normalization/doubleShowA.dhall
@@ -1,1 +0,0 @@-{ example0 = Double/show -0.42, example1 = Double/show 13.37 }
− tests/normalization/doubleShowB.dhall
@@ -1,1 +0,0 @@-{ example0 = "-0.42", example1 = "13.37" }
− tests/normalization/examples/Bool/and/0A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Bool`.and [ True, False, True ]
− tests/normalization/examples/Bool/and/0B.dhall
@@ -1,1 +0,0 @@-False
− tests/normalization/examples/Bool/and/1A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Bool`.and ([] : List Bool)
− tests/normalization/examples/Bool/and/1B.dhall
@@ -1,1 +0,0 @@-True
− tests/normalization/examples/Bool/build/0A.dhall
@@ -1,2 +0,0 @@-(../../../../../Prelude/package.dhall).`Bool`.build -(λ(bool : Type) → λ(true : bool) → λ(false : bool) → true)
− tests/normalization/examples/Bool/build/0B.dhall
@@ -1,1 +0,0 @@-True
− tests/normalization/examples/Bool/build/1A.dhall
@@ -1,2 +0,0 @@-(../../../../../Prelude/package.dhall).`Bool`.build -(λ(bool : Type) → λ(true : bool) → λ(false : bool) → false)
− tests/normalization/examples/Bool/build/1B.dhall
@@ -1,1 +0,0 @@-False
− tests/normalization/examples/Bool/even/0A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Bool`.even [ False, True, False ]
− tests/normalization/examples/Bool/even/0B.dhall
@@ -1,1 +0,0 @@-True
− tests/normalization/examples/Bool/even/1A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Bool`.even [ False, True ]
− tests/normalization/examples/Bool/even/1B.dhall
@@ -1,1 +0,0 @@-False
− tests/normalization/examples/Bool/even/2A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Bool`.even [ False ]
− tests/normalization/examples/Bool/even/2B.dhall
@@ -1,1 +0,0 @@-False
− tests/normalization/examples/Bool/even/3A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Bool`.even ([] : List Bool)
− tests/normalization/examples/Bool/even/3B.dhall
@@ -1,1 +0,0 @@-True
− tests/normalization/examples/Bool/fold/0A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Bool`.fold True Natural 0 1
− tests/normalization/examples/Bool/fold/0B.dhall
@@ -1,1 +0,0 @@-0
− tests/normalization/examples/Bool/fold/1A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Bool`.fold False Natural 0 1
− tests/normalization/examples/Bool/fold/1B.dhall
@@ -1,1 +0,0 @@-1
− tests/normalization/examples/Bool/not/0A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Bool`.not True
− tests/normalization/examples/Bool/not/0B.dhall
@@ -1,1 +0,0 @@-False
− tests/normalization/examples/Bool/not/1A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Bool`.not False
− tests/normalization/examples/Bool/not/1B.dhall
@@ -1,1 +0,0 @@-True
− tests/normalization/examples/Bool/odd/0A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Bool`.odd [ True, False, True ]
− tests/normalization/examples/Bool/odd/0B.dhall
@@ -1,1 +0,0 @@-False
− tests/normalization/examples/Bool/odd/1A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Bool`.odd [ True, False ]
− tests/normalization/examples/Bool/odd/1B.dhall
@@ -1,1 +0,0 @@-True
− tests/normalization/examples/Bool/odd/2A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Bool`.odd [ True ]
− tests/normalization/examples/Bool/odd/2B.dhall
@@ -1,1 +0,0 @@-True
− tests/normalization/examples/Bool/odd/3A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Bool`.odd ([] : List Bool)
− tests/normalization/examples/Bool/odd/3B.dhall
@@ -1,1 +0,0 @@-False
− tests/normalization/examples/Bool/or/0A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Bool`.or [ True, False, True ]
− tests/normalization/examples/Bool/or/0B.dhall
@@ -1,1 +0,0 @@-True
− tests/normalization/examples/Bool/or/1A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Bool`.or ([] : List Bool)
− tests/normalization/examples/Bool/or/1B.dhall
@@ -1,1 +0,0 @@-False
− tests/normalization/examples/Bool/show/0A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Bool`.show True
− tests/normalization/examples/Bool/show/0B.dhall
@@ -1,1 +0,0 @@-"True"
− tests/normalization/examples/Bool/show/1A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Bool`.show False
− tests/normalization/examples/Bool/show/1B.dhall
@@ -1,1 +0,0 @@-"False"
− tests/normalization/examples/Double/show/0A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Double`.show -3.1
− tests/normalization/examples/Double/show/0B.dhall
@@ -1,1 +0,0 @@-"-3.1"
− tests/normalization/examples/Double/show/1A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Double`.show 0.4
− tests/normalization/examples/Double/show/1B.dhall
@@ -1,1 +0,0 @@-"0.4"
− tests/normalization/examples/Integer/show/0A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Integer`.show -3
− tests/normalization/examples/Integer/show/0B.dhall
@@ -1,1 +0,0 @@-"-3"
− tests/normalization/examples/Integer/show/1A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Integer`.show +0
− tests/normalization/examples/Integer/show/1B.dhall
@@ -1,1 +0,0 @@-"+0"
− tests/normalization/examples/Integer/toDouble/0A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Integer`.toDouble -3
− tests/normalization/examples/Integer/toDouble/0B.dhall
@@ -1,1 +0,0 @@--3.0
− tests/normalization/examples/Integer/toDouble/1A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Integer`.toDouble +2
− tests/normalization/examples/Integer/toDouble/1B.dhall
@@ -1,1 +0,0 @@-2.0
− tests/normalization/examples/List/all/0A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`List`.all Natural Natural/even [ 2, 3, 5 ]
− tests/normalization/examples/List/all/0B.dhall
@@ -1,1 +0,0 @@-False
− tests/normalization/examples/List/all/1A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`List`.all Natural Natural/even ([] : List Natural)
− tests/normalization/examples/List/all/1B.dhall
@@ -1,1 +0,0 @@-True
− tests/normalization/examples/List/any/0A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`List`.any Natural Natural/even [ 2, 3, 5 ]
− tests/normalization/examples/List/any/0B.dhall
@@ -1,1 +0,0 @@-True
− tests/normalization/examples/List/any/1A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`List`.any Natural Natural/even ([] : List Natural)
− tests/normalization/examples/List/any/1B.dhall
@@ -1,1 +0,0 @@-False
− tests/normalization/examples/List/build/0A.dhall
@@ -1,7 +0,0 @@-(../../../../../Prelude/package.dhall).`List`.build-Text-( λ(list : Type)-→ λ(cons : Text → list → list)-→ λ(nil : list)-→ cons "ABC" (cons "DEF" nil)-)
− tests/normalization/examples/List/build/0B.dhall
@@ -1,1 +0,0 @@-[ "ABC", "DEF" ]
− tests/normalization/examples/List/build/1A.dhall
@@ -1,7 +0,0 @@-(../../../../../Prelude/package.dhall).`List`.build-Text-( λ(list : Type)-→ λ(cons : Text → list → list)-→ λ(nil : list)-→ nil-)
− tests/normalization/examples/List/build/1B.dhall
@@ -1,1 +0,0 @@-[] : List Text
− tests/normalization/examples/List/concat/0A.dhall
@@ -1,5 +0,0 @@-(../../../../../Prelude/package.dhall).`List`.concat Natural-[ [ 0, 1, 2 ]-, [ 3, 4 ]-, [ 5, 6, 7, 8 ]-]
− tests/normalization/examples/List/concat/0B.dhall
@@ -1,1 +0,0 @@-[ 0, 1, 2, 3, 4, 5, 6, 7, 8 ]
− tests/normalization/examples/List/concat/1A.dhall
@@ -1,5 +0,0 @@-(../../../../../Prelude/package.dhall).`List`.concat Natural-[ [] : List Natural-, [] : List Natural-, [] : List Natural-]
− tests/normalization/examples/List/concat/1B.dhall
@@ -1,1 +0,0 @@-[] : List Natural
− tests/normalization/examples/List/concatMap/0A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`List`.concatMap Natural Natural (λ(n : Natural) → [ n, n ]) [ 2, 3, 5 ]
− tests/normalization/examples/List/concatMap/0B.dhall
@@ -1,1 +0,0 @@-[ 2, 2, 3, 3, 5, 5 ]
− tests/normalization/examples/List/concatMap/1A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`List`.concatMap Natural Natural (λ(n : Natural) → [ n, n ]) ([] : List Natural)
− tests/normalization/examples/List/concatMap/1B.dhall
@@ -1,1 +0,0 @@-[] : List Natural
− tests/normalization/examples/List/filter/0A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`List`.filter Natural Natural/even [ 2, 3, 5 ]
− tests/normalization/examples/List/filter/0B.dhall
@@ -1,1 +0,0 @@-[ 2 ]
− tests/normalization/examples/List/filter/1A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`List`.filter Natural Natural/odd [ 2, 3, 5 ]
− tests/normalization/examples/List/filter/1B.dhall
@@ -1,1 +0,0 @@-[ 3, 5 ]
− tests/normalization/examples/List/fold/0A.dhall
@@ -1,6 +0,0 @@-(../../../../../Prelude/package.dhall).`List`.fold-Natural-[ 2, 3, 5 ]-Natural-(λ(x : Natural) → λ(y : Natural) → x + y)-0
− tests/normalization/examples/List/fold/0B.dhall
@@ -1,1 +0,0 @@-10
− tests/normalization/examples/List/fold/1A.dhall
@@ -1,7 +0,0 @@- λ(nil : Natural)-→ (../../../../../Prelude/package.dhall).`List`.fold- Natural- [ 2, 3, 5 ]- Natural- (λ(x : Natural) → λ(y : Natural) → x + y)- nil
− tests/normalization/examples/List/fold/1B.dhall
@@ -1,1 +0,0 @@-λ(nil : Natural) → 2 + (3 + (5 + nil))
− tests/normalization/examples/List/fold/2A.dhall
@@ -1,4 +0,0 @@- λ(list : Type)-→ λ(cons : Natural → list → list)-→ λ(nil : list)-→ (../../../../../Prelude/package.dhall).`List`.fold Natural [ 2, 3, 5 ] list cons nil
− tests/normalization/examples/List/fold/2B.dhall
@@ -1,4 +0,0 @@- λ(list : Type)-→ λ(cons : Natural → list → list)-→ λ(nil : list)-→ cons 2 (cons 3 (cons 5 nil))
− tests/normalization/examples/List/generate/0A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`List`.generate 5 Bool Natural/even
− tests/normalization/examples/List/generate/0B.dhall
@@ -1,1 +0,0 @@-[ True, False, True, False, True ]
− tests/normalization/examples/List/generate/1A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`List`.generate 0 Bool Natural/even
− tests/normalization/examples/List/generate/1B.dhall
@@ -1,1 +0,0 @@-[] : List Bool
− tests/normalization/examples/List/head/0A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`List`.head Natural [ 0, 1, 2 ]
− tests/normalization/examples/List/head/0B.dhall
@@ -1,1 +0,0 @@-Some 0
− tests/normalization/examples/List/head/1A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`List`.head Natural ([] : List Natural)
− tests/normalization/examples/List/head/1B.dhall
@@ -1,1 +0,0 @@-None Natural
− tests/normalization/examples/List/indexed/0A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`List`.indexed Bool [ True, False, True ]
− tests/normalization/examples/List/indexed/0B.dhall
@@ -1,4 +0,0 @@-[ { index = 0, value = True }-, { index = 1, value = False }-, { index = 2, value = True }-]
− tests/normalization/examples/List/indexed/1A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`List`.indexed Bool ([] : List Bool)
− tests/normalization/examples/List/indexed/1B.dhall
@@ -1,1 +0,0 @@-[] : List { index : Natural, value : Bool }
− tests/normalization/examples/List/iterate/0A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`List`.iterate 10 Natural (λ(x : Natural) → x * 2) 1
− tests/normalization/examples/List/iterate/0B.dhall
@@ -1,1 +0,0 @@-[ 1, 2, 4, 8, 16, 32, 64, 128, 256, 512 ]
− tests/normalization/examples/List/iterate/1A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`List`.iterate 0 Natural (λ(x : Natural) → x * 2) 1
− tests/normalization/examples/List/iterate/1B.dhall
@@ -1,1 +0,0 @@-[] : List Natural
− tests/normalization/examples/List/last/0A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`List`.last Natural [ 0, 1, 2 ]
− tests/normalization/examples/List/last/0B.dhall
@@ -1,1 +0,0 @@-Some 2
− tests/normalization/examples/List/last/1A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`List`.last Natural ([] : List Natural)
− tests/normalization/examples/List/last/1B.dhall
@@ -1,1 +0,0 @@-None Natural
− tests/normalization/examples/List/length/0A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`List`.length Natural [ 0, 1, 2 ]
− tests/normalization/examples/List/length/0B.dhall
@@ -1,1 +0,0 @@-3
− tests/normalization/examples/List/length/1A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`List`.length Natural ([] : List Natural)
− tests/normalization/examples/List/length/1B.dhall
@@ -1,1 +0,0 @@-0
− tests/normalization/examples/List/map/0A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`List`.map Natural Bool Natural/even [ 2, 3, 5 ]
− tests/normalization/examples/List/map/0B.dhall
@@ -1,1 +0,0 @@-[ True, False, False ]
− tests/normalization/examples/List/map/1A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`List`.map Natural Bool Natural/even ([] : List Natural)
− tests/normalization/examples/List/map/1B.dhall
@@ -1,1 +0,0 @@-[] : List Bool
− tests/normalization/examples/List/null/0A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`List`.null Natural [ 0, 1, 2 ]
− tests/normalization/examples/List/null/0B.dhall
@@ -1,1 +0,0 @@-False
− tests/normalization/examples/List/null/1A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`List`.null Natural ([] : List Natural)
− tests/normalization/examples/List/null/1B.dhall
@@ -1,1 +0,0 @@-True
− tests/normalization/examples/List/replicate/0A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`List`.replicate 9 Natural 1
− tests/normalization/examples/List/replicate/0B.dhall
@@ -1,1 +0,0 @@-[ 1, 1, 1, 1, 1, 1, 1, 1, 1 ]
− tests/normalization/examples/List/replicate/1A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`List`.replicate 0 Natural 1
− tests/normalization/examples/List/replicate/1B.dhall
@@ -1,1 +0,0 @@-[] : List Natural
− tests/normalization/examples/List/reverse/0A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`List`.reverse Natural [ 0, 1, 2 ]
− tests/normalization/examples/List/reverse/0B.dhall
@@ -1,1 +0,0 @@-[ 2, 1, 0 ]
− tests/normalization/examples/List/reverse/1A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`List`.reverse Natural ([] : List Natural)
− tests/normalization/examples/List/reverse/1B.dhall
@@ -1,1 +0,0 @@-[] : List Natural
− tests/normalization/examples/List/shifted/0A.dhall
@@ -1,15 +0,0 @@-(../../../../../Prelude/package.dhall).`List`.shifted-Bool-[ [ { index = 0, value = True }- , { index = 1, value = True }- , { index = 2, value = False }- ]-, [ { index = 0, value = False }- , { index = 1, value = False }- ]-, [ { index = 0, value = True }- , { index = 1, value = True }- , { index = 2, value = True }- , { index = 3, value = True }- ]-]
− tests/normalization/examples/List/shifted/0B.dhall
@@ -1,10 +0,0 @@-[ { index = 0, value = True }-, { index = 1, value = True }-, { index = 2, value = False }-, { index = 3, value = False }-, { index = 4, value = False }-, { index = 5, value = True }-, { index = 6, value = True }-, { index = 7, value = True }-, { index = 8, value = True }-]
− tests/normalization/examples/List/shifted/1A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`List`.shifted Bool ([] : List (List { index : Natural, value : Bool }))
− tests/normalization/examples/List/shifted/1B.dhall
@@ -1,1 +0,0 @@-[] : List { index : Natural, value : Bool }
− tests/normalization/examples/List/unzip/0A.dhall
@@ -1,7 +0,0 @@-(../../../../../Prelude/package.dhall).`List`.unzip-Text-Bool-[ { _1 = "ABC", _2 = True }-, { _1 = "DEF", _2 = False }-, { _1 = "GHI", _2 = True }-]
− tests/normalization/examples/List/unzip/0B.dhall
@@ -1,1 +0,0 @@-{ _1 = [ "ABC", "DEF", "GHI" ], _2 = [ True, False, True ] }
− tests/normalization/examples/List/unzip/1A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`List`.unzip Text Bool ([] : List { _1 : Text, _2 : Bool })
− tests/normalization/examples/List/unzip/1B.dhall
@@ -1,1 +0,0 @@-{ _1 = [] : List Text, _2 = [] : List Bool }
− tests/normalization/examples/Natural/build/0A.dhall
@@ -1,6 +0,0 @@-(../../../../../Prelude/package.dhall).`Natural`.build-( λ(natural : Type)-→ λ(succ : natural → natural)-→ λ(zero : natural)-→ succ (succ (succ zero))-)
− tests/normalization/examples/Natural/build/0B.dhall
@@ -1,1 +0,0 @@-3
− tests/normalization/examples/Natural/build/1A.dhall
@@ -1,6 +0,0 @@-(../../../../../Prelude/package.dhall).`Natural`.build-( λ(natural : Type)-→ λ(succ : natural → natural)-→ λ(zero : natural)-→ zero-)
− tests/normalization/examples/Natural/build/1B.dhall
@@ -1,1 +0,0 @@-0
− tests/normalization/examples/Natural/enumerate/0A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Natural`.enumerate 10
− tests/normalization/examples/Natural/enumerate/0B.dhall
@@ -1,1 +0,0 @@-[ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ]
− tests/normalization/examples/Natural/enumerate/1A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Natural`.enumerate 0
− tests/normalization/examples/Natural/enumerate/1B.dhall
@@ -1,1 +0,0 @@-[] : List Natural
− tests/normalization/examples/Natural/even/0A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Natural`.even 3
− tests/normalization/examples/Natural/even/0B.dhall
@@ -1,1 +0,0 @@-False
− tests/normalization/examples/Natural/even/1A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Natural`.even 0
− tests/normalization/examples/Natural/even/1B.dhall
@@ -1,1 +0,0 @@-True
− tests/normalization/examples/Natural/fold/0A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Natural`.fold 3 Natural (λ(x : Natural) → 5 * x) 1
− tests/normalization/examples/Natural/fold/0B.dhall
@@ -1,1 +0,0 @@-125
− tests/normalization/examples/Natural/fold/1A.dhall
@@ -1,1 +0,0 @@-λ(zero : Natural) → (../../../../../Prelude/package.dhall).`Natural`.fold 3 Natural (λ(x : Natural) → 5 * x) zero
− tests/normalization/examples/Natural/fold/1B.dhall
@@ -1,1 +0,0 @@-λ(zero : Natural) → 5 * (5 * (5 * zero))
− tests/normalization/examples/Natural/fold/2A.dhall
@@ -1,4 +0,0 @@- λ(natural : Type)-→ λ(succ : natural → natural)-→ λ(zero : natural)-→ (../../../../../Prelude/package.dhall).`Natural`.fold 3 natural succ zero
− tests/normalization/examples/Natural/fold/2B.dhall
@@ -1,1 +0,0 @@-λ(natural : Type) → λ(succ : natural → natural) → λ(zero : natural) → succ (succ (succ zero))
− tests/normalization/examples/Natural/isZero/0A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Natural`.isZero 2
− tests/normalization/examples/Natural/isZero/0B.dhall
@@ -1,1 +0,0 @@-False
− tests/normalization/examples/Natural/isZero/1A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Natural`.isZero 0
− tests/normalization/examples/Natural/isZero/1B.dhall
@@ -1,1 +0,0 @@-True
− tests/normalization/examples/Natural/odd/0A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Natural`.odd 3
− tests/normalization/examples/Natural/odd/0B.dhall
@@ -1,1 +0,0 @@-True
− tests/normalization/examples/Natural/odd/1A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Natural`.odd 0
− tests/normalization/examples/Natural/odd/1B.dhall
@@ -1,1 +0,0 @@-False
− tests/normalization/examples/Natural/product/0A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Natural`.product [ 2, 3, 5 ]
− tests/normalization/examples/Natural/product/0B.dhall
@@ -1,1 +0,0 @@-30
− tests/normalization/examples/Natural/product/1A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Natural`.product ([] : List Natural)
− tests/normalization/examples/Natural/product/1B.dhall
@@ -1,1 +0,0 @@-1
− tests/normalization/examples/Natural/show/0A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Natural`.show 3
− tests/normalization/examples/Natural/show/0B.dhall
@@ -1,1 +0,0 @@-"3"
− tests/normalization/examples/Natural/show/1A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Natural`.show 0
− tests/normalization/examples/Natural/show/1B.dhall
@@ -1,1 +0,0 @@-"0"
− tests/normalization/examples/Natural/sum/0A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Natural`.sum [ 2, 3, 5 ]
− tests/normalization/examples/Natural/sum/0B.dhall
@@ -1,1 +0,0 @@-10
− tests/normalization/examples/Natural/sum/1A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Natural`.sum ([] : List Natural)
− tests/normalization/examples/Natural/sum/1B.dhall
@@ -1,1 +0,0 @@-0
− tests/normalization/examples/Natural/toDouble/0A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Natural`.toDouble 3
− tests/normalization/examples/Natural/toDouble/0B.dhall
@@ -1,1 +0,0 @@-3.0
− tests/normalization/examples/Natural/toDouble/1A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Natural`.toDouble 0
− tests/normalization/examples/Natural/toDouble/1B.dhall
@@ -1,1 +0,0 @@-0.0
− tests/normalization/examples/Natural/toInteger/0A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Natural`.toInteger 3
− tests/normalization/examples/Natural/toInteger/0B.dhall
@@ -1,1 +0,0 @@-+3
− tests/normalization/examples/Natural/toInteger/1A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Natural`.toInteger 0
− tests/normalization/examples/Natural/toInteger/1B.dhall
@@ -1,1 +0,0 @@-+0
− tests/normalization/examples/Optional/all/0A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Optional`.all Natural Natural/even (Some 3)
− tests/normalization/examples/Optional/all/0B.dhall
@@ -1,1 +0,0 @@-False
− tests/normalization/examples/Optional/all/1A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Optional`.all Natural Natural/even (None Natural)
− tests/normalization/examples/Optional/all/1B.dhall
@@ -1,1 +0,0 @@-True
− tests/normalization/examples/Optional/any/0A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Optional`.any Natural Natural/even (Some 2)
− tests/normalization/examples/Optional/any/0B.dhall
@@ -1,1 +0,0 @@-True
− tests/normalization/examples/Optional/any/1A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Optional`.any Natural Natural/even (None Natural)
− tests/normalization/examples/Optional/any/1B.dhall
@@ -1,1 +0,0 @@-False
− tests/normalization/examples/Optional/build/0A.dhall
@@ -1,7 +0,0 @@-(../../../../../Prelude/package.dhall).`Optional`.build-Natural-( λ(optional : Type)-→ λ(some : Natural → optional)-→ λ(none : optional)-→ some 1-)
− tests/normalization/examples/Optional/build/0B.dhall
@@ -1,1 +0,0 @@-Some 1
− tests/normalization/examples/Optional/build/1A.dhall
@@ -1,7 +0,0 @@-(../../../../../Prelude/package.dhall).`Optional`.build-Natural-( λ(optional : Type)-→ λ(some : Natural → optional)-→ λ(none : optional)-→ none-)
− tests/normalization/examples/Optional/build/1B.dhall
@@ -1,1 +0,0 @@-None Natural
− tests/normalization/examples/Optional/concat/0A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Optional`.concat Natural (Some (Some 1))
− tests/normalization/examples/Optional/concat/0B.dhall
@@ -1,1 +0,0 @@-Some 1
− tests/normalization/examples/Optional/concat/1A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Optional`.concat Natural (Some (None Natural))
− tests/normalization/examples/Optional/concat/1B.dhall
@@ -1,1 +0,0 @@-None Natural
− tests/normalization/examples/Optional/concat/2A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Optional`.concat Natural (None (Optional Natural))
− tests/normalization/examples/Optional/concat/2B.dhall
@@ -1,1 +0,0 @@-None Natural
− tests/normalization/examples/Optional/filter/0A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Optional`.filter Natural Natural/even (Some 2)
− tests/normalization/examples/Optional/filter/0B.dhall
@@ -1,1 +0,0 @@-Some 2
− tests/normalization/examples/Optional/filter/1A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Optional`.filter Natural Natural/odd (Some 2)
− tests/normalization/examples/Optional/filter/1B.dhall
@@ -1,1 +0,0 @@-None Natural
− tests/normalization/examples/Optional/fold/0A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Optional`.fold Natural (Some 2) Natural (λ(x : Natural) → x) 0
− tests/normalization/examples/Optional/fold/0B.dhall
@@ -1,1 +0,0 @@-2
− tests/normalization/examples/Optional/fold/1A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Optional`.fold Natural (None Natural) Natural (λ(x : Natural) → x) 0
− tests/normalization/examples/Optional/fold/1B.dhall
@@ -1,1 +0,0 @@-0
− tests/normalization/examples/Optional/head/0A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Optional`.head Natural [ None Natural, Some 1, Some 2 ]
− tests/normalization/examples/Optional/head/0B.dhall
@@ -1,1 +0,0 @@-Some 1
− tests/normalization/examples/Optional/head/1A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Optional`.head Natural [ None Natural, None Natural ]
− tests/normalization/examples/Optional/head/1B.dhall
@@ -1,1 +0,0 @@-None Natural
− tests/normalization/examples/Optional/head/2A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Optional`.head Natural ([] : List (Optional Natural))
− tests/normalization/examples/Optional/head/2B.dhall
@@ -1,1 +0,0 @@-None Natural
− tests/normalization/examples/Optional/last/0A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Optional`.last Natural [ None Natural, Some 1, Some 2 ]
− tests/normalization/examples/Optional/last/0B.dhall
@@ -1,1 +0,0 @@-Some 2
− tests/normalization/examples/Optional/last/1A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Optional`.last Natural [ None Natural, None Natural ]
− tests/normalization/examples/Optional/last/1B.dhall
@@ -1,1 +0,0 @@-None Natural
− tests/normalization/examples/Optional/last/2A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Optional`.last Natural ([] : List (Optional Natural))
− tests/normalization/examples/Optional/last/2B.dhall
@@ -1,1 +0,0 @@-None Natural
− tests/normalization/examples/Optional/length/0A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Optional`.length Natural (Some 2)
− tests/normalization/examples/Optional/length/0B.dhall
@@ -1,1 +0,0 @@-1
− tests/normalization/examples/Optional/length/1A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Optional`.length Natural (None Natural)
− tests/normalization/examples/Optional/length/1B.dhall
@@ -1,1 +0,0 @@-0
− tests/normalization/examples/Optional/map/0A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Optional`.map Natural Bool Natural/even (Some 3)
− tests/normalization/examples/Optional/map/0B.dhall
@@ -1,1 +0,0 @@-Some False
− tests/normalization/examples/Optional/map/1A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Optional`.map Natural Bool Natural/even (None Natural)
− tests/normalization/examples/Optional/map/1B.dhall
@@ -1,1 +0,0 @@-None Bool
− tests/normalization/examples/Optional/null/0A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Optional`.null Natural (Some 2)
− tests/normalization/examples/Optional/null/0B.dhall
@@ -1,1 +0,0 @@-False
− tests/normalization/examples/Optional/null/1A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Optional`.null Natural (None Natural)
− tests/normalization/examples/Optional/null/1B.dhall
@@ -1,1 +0,0 @@-True
− tests/normalization/examples/Optional/toList/0A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Optional`.toList Natural (Some 1)
− tests/normalization/examples/Optional/toList/0B.dhall
@@ -1,1 +0,0 @@-[ 1 ] : List Natural
− tests/normalization/examples/Optional/toList/1A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Optional`.toList Natural (None Natural)
− tests/normalization/examples/Optional/toList/1B.dhall
@@ -1,1 +0,0 @@-[] : List Natural
− tests/normalization/examples/Optional/unzip/0A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Optional`.unzip Text Bool (Some { _1 = "ABC", _2 = True })
− tests/normalization/examples/Optional/unzip/0B.dhall
@@ -1,1 +0,0 @@-{ _1 = Some "ABC", _2 = Some True }
− tests/normalization/examples/Optional/unzip/1A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Optional`.unzip Text Bool (None { _1 : Text, _2 : Bool })
− tests/normalization/examples/Optional/unzip/1B.dhall
@@ -1,1 +0,0 @@-{ _1 = None Text, _2 = None Bool }
− tests/normalization/examples/Text/concat/0A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Text`.concat [ "ABC", "DEF", "GHI" ]
− tests/normalization/examples/Text/concat/0B.dhall
@@ -1,1 +0,0 @@-"ABCDEFGHI"
− tests/normalization/examples/Text/concat/1A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Text`.concat ([] : List Text)
− tests/normalization/examples/Text/concat/1B.dhall
@@ -1,1 +0,0 @@-""
− tests/normalization/examples/Text/concatMap/0A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Text`.concatMap Natural (λ(n : Natural) → "${Natural/show n} ") [ 0, 1, 2 ]
− tests/normalization/examples/Text/concatMap/0B.dhall
@@ -1,1 +0,0 @@-"0 1 2 "
− tests/normalization/examples/Text/concatMap/1A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Text`.concatMap Natural (λ(n : Natural) → "${Natural/show n} ") ([] : List Natural)
− tests/normalization/examples/Text/concatMap/1B.dhall
@@ -1,1 +0,0 @@-""
− tests/normalization/examples/Text/concatMapSep/0A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Text`.concatMapSep ", " Natural Natural/show [ 0, 1, 2 ]
− tests/normalization/examples/Text/concatMapSep/0B.dhall
@@ -1,1 +0,0 @@-"0, 1, 2"
− tests/normalization/examples/Text/concatMapSep/1A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Text`.concatMapSep ", " Natural Natural/show ([] : List Natural)
− tests/normalization/examples/Text/concatMapSep/1B.dhall
@@ -1,1 +0,0 @@-""
− tests/normalization/examples/Text/concatSep/0A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Text`.concatSep ", " [ "ABC", "DEF", "GHI" ]
− tests/normalization/examples/Text/concatSep/0B.dhall
@@ -1,1 +0,0 @@-"ABC, DEF, GHI"
− tests/normalization/examples/Text/concatSep/1A.dhall
@@ -1,1 +0,0 @@-(../../../../../Prelude/package.dhall).`Text`.concatSep ", " ([] : List Text)
− tests/normalization/examples/Text/concatSep/1B.dhall
@@ -1,1 +0,0 @@-""
− tests/normalization/integerShowA.dhall
@@ -1,4 +0,0 @@-{ example0 = Integer/show +1337-, example1 = Integer/show -42-, example2 = Integer/show +0-}
− tests/normalization/integerShowB.dhall
@@ -1,1 +0,0 @@-{ example0 = "+1337", example1 = "-42", example2 = "+0" }
− tests/normalization/listBuildA.dhall
@@ -1,22 +0,0 @@-{ example0 =- List/build- Bool- ( λ(list : Type)- → λ(cons : Bool → list → list)- → λ(nil : list)- → cons True (cons False nil)- )-, example1 =- List/build- Bool- (λ(x : Type) → λ(x : Bool → x → x) → λ(x : x@1) → x@1 True (x@1 False x))-, example2 =- λ(id : ∀(a : Type) → a → a)- → List/build- Bool- ( λ(list : Type)- → λ(cons : Bool → list → list)- → λ(nil : list)- → id list (cons True (cons False nil))- )-}
− tests/normalization/listBuildB.dhall
@@ -1,7 +0,0 @@-{ example0 =- [ True, False ] : List Bool-, example1 =- [ True, False ] : List Bool-, example2 =- λ(id : ∀(a : Type) → a → a) → id (List Bool) [ True, False ]-}
− tests/normalization/multiLineA.dhall
@@ -1,4 +0,0 @@-''- foo-bar-''
− tests/normalization/multiLineB.dhall
@@ -1,4 +0,0 @@-''- foo-bar-''
− tests/normalization/naturalBuildA.dhall
@@ -1,18 +0,0 @@-{ example0 =- Natural/build- ( λ(natural : Type)- → λ(succ : natural → natural)- → λ(zero : natural)- → succ zero- )-, example1 =- Natural/build (λ(x : Type) → λ(x : x → x) → λ(x : x@1) → x@1 x)-, example2 =- λ(id : ∀(a : Type) → a → a)- → Natural/build- ( λ(natural : Type)- → λ(succ : natural → natural)- → λ(zero : natural)- → id natural (succ zero)- )-}
− tests/normalization/naturalBuildB.dhall
@@ -1,7 +0,0 @@-{ example0 =- 1-, example1 =- 1-, example2 =- λ(id : ∀(a : Type) → a → a) → id Natural 1-}
− tests/normalization/naturalPlusA.dhall
@@ -1,1 +0,0 @@-1 + 2
− tests/normalization/naturalPlusB.dhall
@@ -1,1 +0,0 @@-3
− tests/normalization/naturalShowA.dhall
@@ -1,1 +0,0 @@-Natural/show 42
− tests/normalization/naturalShowB.dhall
@@ -1,1 +0,0 @@-"42"
− tests/normalization/naturalToIntegerA.dhall
@@ -1,1 +0,0 @@-Natural/toInteger 1
− tests/normalization/naturalToIntegerB.dhall
@@ -1,1 +0,0 @@-+1
− tests/normalization/optionalBuildA.dhall
@@ -1,32 +0,0 @@-{ example0 =- Optional/build- Natural- ( λ(optional : Type)- → λ(just : Natural → optional)- → λ(nothing : optional)- → just 1- )-, example1 =- Optional/build- Integer- (λ(optional : Type) → λ(x : Integer → optional) → λ(x : optional) → x@1 +1)-, example2 =- λ(id : ∀(a : Type) → a → a)- → Optional/build- Bool- ( λ(optional : Type)- → λ(just : Bool → optional)- → λ(nothing : optional)- → id optional (just True)- )-, example3 =- λ(a : Type)- → λ(x : a)- → Optional/build- a- ( λ(optional : Type)- → λ(just : a → optional)- → λ(nothing : optional)- → just x- )-}
− tests/normalization/optionalBuildB.dhall
@@ -1,9 +0,0 @@-{ example0 =- [ 1 ] : Optional Natural-, example1 =- [ +1 ] : Optional Integer-, example2 =- λ(id : ∀(a : Type) → a → a) → id (Optional Bool) ([ True ] : Optional Bool)-, example3 =- λ(a : Type) → λ(x : a) → [ x ] : Optional a-}
− tests/normalization/optionalBuildFoldA.dhall
@@ -1,1 +0,0 @@-Optional/build Text (Optional/fold Text ([ "foo" ] : Optional Text))
− tests/normalization/optionalBuildFoldB.dhall
@@ -1,1 +0,0 @@-[ "foo" ] : Optional Text
− tests/normalization/optionalFoldA.dhall
@@ -1,7 +0,0 @@- let f =- λ(o : Optional Text)- → Optional/fold Text o Natural (λ(j : Text) → 1) 2--in { example0 = f ([ "foo" ] : Optional Text)- , example1 = f ([] : Optional Text)- }
− tests/normalization/optionalFoldB.dhall
@@ -1,1 +0,0 @@-{ example0 = 1, example1 = 2 }
− tests/normalization/remoteSystemsA.dhall
@@ -1,55 +0,0 @@- let Text/concatMap =-( ../../Prelude/package.dhall).`Text`.concatMap --in let Text/concatSep =-( ../../Prelude/package.dhall).`Text`.concatSep --in let Row =- { cores :- Natural- , host :- Text- , key :- Text- , mandatoryFeatures :- List Text- , platforms :- List Text- , speedFactor :- Natural- , supportedFeatures :- List Text- , user :- Optional Text- }--in let renderRow =- λ ( row- : Row- )- → let host =- Optional/fold- Text- row.user- Text- (λ(user : Text) → "${user}@${row.host}")- row.host- - in let platforms = Text/concatSep "," row.platforms- - in let key = row.key- - in let cores = Integer/show (Natural/toInteger row.cores)- - in let speedFactor =- Integer/show (Natural/toInteger row.speedFactor)- - in let supportedFeatures = Text/concatSep "," row.supportedFeatures- - in let mandatoryFeatures = Text/concatSep "," row.mandatoryFeatures- - in ''- ${host} ${platforms} ${key} ${cores} ${speedFactor} ${supportedFeatures} ${mandatoryFeatures}- ''--in Text/concatMap Row renderRow
− tests/normalization/remoteSystemsB.dhall
@@ -1,1 +0,0 @@-λ(xs : List { cores : Natural, host : Text, key : Text, mandatoryFeatures : List Text, platforms : List Text, speedFactor : Natural, supportedFeatures : List Text, user : Optional Text }) → List/fold { cores : Natural, host : Text, key : Text, mandatoryFeatures : List Text, platforms : List Text, speedFactor : Natural, supportedFeatures : List Text, user : Optional Text } xs Text (λ(x : { cores : Natural, host : Text, key : Text, mandatoryFeatures : List Text, platforms : List Text, speedFactor : Natural, supportedFeatures : List Text, user : Optional Text }) → λ(y : Text) → "${Optional/fold Text x.user Text (λ(user : Text) → "${user}@${x.host}") x.host} ${merge { Empty = λ(_ : {}) → "", NonEmpty = λ(result : Text) → result } (List/fold Text x.platforms < Empty : {} | NonEmpty : Text > (λ(element : Text) → λ(status : < Empty : {} | NonEmpty : Text >) → merge { Empty = λ(_ : {}) → < NonEmpty = element | Empty : {} >, NonEmpty = λ(result : Text) → < NonEmpty = element ++ "," ++ result | Empty : {} > } status : < Empty : {} | NonEmpty : Text >) < Empty = {=} | NonEmpty : Text >) : Text} ${x.key} ${Integer/show (Natural/toInteger x.cores)} ${Integer/show (Natural/toInteger x.speedFactor)} ${merge { Empty = λ(_ : {}) → "", NonEmpty = λ(result : Text) → result } (List/fold Text x.supportedFeatures < Empty : {} | NonEmpty : Text > (λ(element : Text) → λ(status : < Empty : {} | NonEmpty : Text >) → merge { Empty = λ(_ : {}) → < NonEmpty = element | Empty : {} >, NonEmpty = λ(result : Text) → < NonEmpty = element ++ "," ++ result | Empty : {} > } status : < Empty : {} | NonEmpty : Text >) < Empty = {=} | NonEmpty : Text >) : Text} ${merge { Empty = λ(_ : {}) → "", NonEmpty = λ(result : Text) → result } (List/fold Text x.mandatoryFeatures < Empty : {} | NonEmpty : Text > (λ(element : Text) → λ(status : < Empty : {} | NonEmpty : Text >) → merge { Empty = λ(_ : {}) → < NonEmpty = element | Empty : {} >, NonEmpty = λ(result : Text) → < NonEmpty = element ++ "," ++ result | Empty : {} > } status : < Empty : {} | NonEmpty : Text >) < Empty = {=} | NonEmpty : Text >) : Text}\n" ++ y) ""
− tests/normalization/simplifications/andA.dhall
@@ -1,6 +0,0 @@-{ example0 = λ(x : Bool) → x && True-, example1 = λ(x : Bool) → True && x-, example2 = λ(x : Bool) → x && False-, example3 = λ(x : Bool) → False && x-, example4 = λ(x : Bool) → x && x-}
− tests/normalization/simplifications/andB.dhall
@@ -1,6 +0,0 @@-{ example0 = λ(x : Bool) → x-, example1 = λ(x : Bool) → x-, example2 = λ(x : Bool) → False-, example3 = λ(x : Bool) → False-, example4 = λ(x : Bool) → x-}
− tests/normalization/simplifications/eqA.dhall
@@ -1,4 +0,0 @@-{ example0 = λ(x : Bool) → x == True-, example1 = λ(x : Bool) → True == x-, example2 = λ(x : Bool) → x == x-}
− tests/normalization/simplifications/eqB.dhall
@@ -1,4 +0,0 @@-{ example0 = λ(x : Bool) → x-, example1 = λ(x : Bool) → x-, example2 = λ(x : Bool) → True-}
− tests/normalization/simplifications/ifThenElseA.dhall
@@ -1,3 +0,0 @@-{ example0 = λ(x : Bool) → if x then True else False-, example1 = λ(x : Bool) → λ(y : Text) → if x then y else y-}
− tests/normalization/simplifications/ifThenElseB.dhall
@@ -1,3 +0,0 @@-{ example0 = λ(x : Bool) → x-, example1 = λ(x : Bool) → λ(y : Text) → y-}
− tests/normalization/simplifications/neA.dhall
@@ -1,4 +0,0 @@-{ example0 = λ(x : Bool) → x != False-, example1 = λ(x : Bool) → False != x-, example2 = λ(x : Bool) → x != x-}
− tests/normalization/simplifications/neB.dhall
@@ -1,4 +0,0 @@-{ example0 = λ(x : Bool) → x-, example1 = λ(x : Bool) → x-, example2 = λ(x : Bool) → False-}
− tests/normalization/simplifications/orA.dhall
@@ -1,6 +0,0 @@-{ example0 = λ(x : Bool) → x || True-, example1 = λ(x : Bool) → True || x-, example2 = λ(x : Bool) → x || False-, example3 = λ(x : Bool) → False || x-, example4 = λ(x : Bool) → x || x-}
− tests/normalization/simplifications/orB.dhall
@@ -1,6 +0,0 @@-{ example0 = λ(x : Bool) → True-, example1 = λ(x : Bool) → True-, example2 = λ(x : Bool) → x-, example3 = λ(x : Bool) → x-, example4 = λ(x : Bool) → x-}
− tests/normalization/sortOperatorA.dhall
@@ -1,1 +0,0 @@-{ b = 2 } // { a = 1 }
− tests/normalization/sortOperatorB.dhall
@@ -1,1 +0,0 @@-{ a = 1, b = 2 }
+ tests/normalization/success/haskell-tutorial/access/0A.dhall view
@@ -0,0 +1,1 @@+{ x = "foo" }.x
+ tests/normalization/success/haskell-tutorial/access/0B.dhall view
@@ -0,0 +1,1 @@+"foo"
+ tests/normalization/success/haskell-tutorial/access/1A.dhall view
@@ -0,0 +1,1 @@+< Foo : Text | Bar : Natural >.Foo
+ tests/normalization/success/haskell-tutorial/access/1B.dhall view
@@ -0,0 +1,1 @@+λ(Foo : Text) → < Foo = Foo | Bar : Natural >
+ tests/normalization/success/haskell-tutorial/combineTypes/0A.dhall view
@@ -0,0 +1,1 @@+{ foo : { bar : Text } } ⩓ { foo : { baz : Bool }, qux : Integer }
+ tests/normalization/success/haskell-tutorial/combineTypes/0B.dhall view
@@ -0,0 +1,1 @@+{ foo : { bar : Text, baz : Bool }, qux : Integer }
+ tests/normalization/success/haskell-tutorial/combineTypes/1A.dhall view
@@ -0,0 +1,1 @@+{ foo : { bar : Text } } //\\ { foo : { baz : Bool }, qux : Integer }
+ tests/normalization/success/haskell-tutorial/combineTypes/1B.dhall view
@@ -0,0 +1,1 @@+{ foo : { bar : Text, baz : Bool }, qux : Integer }
+ tests/normalization/success/haskell-tutorial/prefer/0A.dhall view
@@ -0,0 +1,1 @@+{ foo = 1, bar = "ABC" } // { baz = True }
+ tests/normalization/success/haskell-tutorial/prefer/0B.dhall view
@@ -0,0 +1,1 @@+{ bar = "ABC", baz = True, foo = 1 }
+ tests/normalization/success/haskell-tutorial/projection/0A.dhall view
@@ -0,0 +1,1 @@+{ x = 1, y = True, z = "ABC" }.{ x, y }
+ tests/normalization/success/haskell-tutorial/projection/0B.dhall view
@@ -0,0 +1,1 @@+{ x = 1, y = True }
+ tests/normalization/success/prelude/Bool/and/0A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Bool`.and [ True, False, True ]
+ tests/normalization/success/prelude/Bool/and/0B.dhall view
@@ -0,0 +1,1 @@+False
+ tests/normalization/success/prelude/Bool/and/1A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Bool`.and ([] : List Bool)
+ tests/normalization/success/prelude/Bool/and/1B.dhall view
@@ -0,0 +1,1 @@+True
+ tests/normalization/success/prelude/Bool/build/0A.dhall view
@@ -0,0 +1,2 @@+(../../../../../../Prelude/package.dhall).`Bool`.build +(λ(bool : Type) → λ(true : bool) → λ(false : bool) → true)
+ tests/normalization/success/prelude/Bool/build/0B.dhall view
@@ -0,0 +1,1 @@+True
+ tests/normalization/success/prelude/Bool/build/1A.dhall view
@@ -0,0 +1,2 @@+(../../../../../../Prelude/package.dhall).`Bool`.build +(λ(bool : Type) → λ(true : bool) → λ(false : bool) → false)
+ tests/normalization/success/prelude/Bool/build/1B.dhall view
@@ -0,0 +1,1 @@+False
+ tests/normalization/success/prelude/Bool/even/0A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Bool`.even [ False, True, False ]
+ tests/normalization/success/prelude/Bool/even/0B.dhall view
@@ -0,0 +1,1 @@+True
+ tests/normalization/success/prelude/Bool/even/1A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Bool`.even [ False, True ]
+ tests/normalization/success/prelude/Bool/even/1B.dhall view
@@ -0,0 +1,1 @@+False
+ tests/normalization/success/prelude/Bool/even/2A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Bool`.even [ False ]
+ tests/normalization/success/prelude/Bool/even/2B.dhall view
@@ -0,0 +1,1 @@+False
+ tests/normalization/success/prelude/Bool/even/3A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Bool`.even ([] : List Bool)
+ tests/normalization/success/prelude/Bool/even/3B.dhall view
@@ -0,0 +1,1 @@+True
+ tests/normalization/success/prelude/Bool/fold/0A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Bool`.fold True Natural 0 1
+ tests/normalization/success/prelude/Bool/fold/0B.dhall view
@@ -0,0 +1,1 @@+0
+ tests/normalization/success/prelude/Bool/fold/1A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Bool`.fold False Natural 0 1
+ tests/normalization/success/prelude/Bool/fold/1B.dhall view
@@ -0,0 +1,1 @@+1
+ tests/normalization/success/prelude/Bool/not/0A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Bool`.not True
+ tests/normalization/success/prelude/Bool/not/0B.dhall view
@@ -0,0 +1,1 @@+False
+ tests/normalization/success/prelude/Bool/not/1A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Bool`.not False
+ tests/normalization/success/prelude/Bool/not/1B.dhall view
@@ -0,0 +1,1 @@+True
+ tests/normalization/success/prelude/Bool/odd/0A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Bool`.odd [ True, False, True ]
+ tests/normalization/success/prelude/Bool/odd/0B.dhall view
@@ -0,0 +1,1 @@+False
+ tests/normalization/success/prelude/Bool/odd/1A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Bool`.odd [ True, False ]
+ tests/normalization/success/prelude/Bool/odd/1B.dhall view
@@ -0,0 +1,1 @@+True
+ tests/normalization/success/prelude/Bool/odd/2A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Bool`.odd [ True ]
+ tests/normalization/success/prelude/Bool/odd/2B.dhall view
@@ -0,0 +1,1 @@+True
+ tests/normalization/success/prelude/Bool/odd/3A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Bool`.odd ([] : List Bool)
+ tests/normalization/success/prelude/Bool/odd/3B.dhall view
@@ -0,0 +1,1 @@+False
+ tests/normalization/success/prelude/Bool/or/0A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Bool`.or [ True, False, True ]
+ tests/normalization/success/prelude/Bool/or/0B.dhall view
@@ -0,0 +1,1 @@+True
+ tests/normalization/success/prelude/Bool/or/1A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Bool`.or ([] : List Bool)
+ tests/normalization/success/prelude/Bool/or/1B.dhall view
@@ -0,0 +1,1 @@+False
+ tests/normalization/success/prelude/Bool/show/0A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Bool`.show True
+ tests/normalization/success/prelude/Bool/show/0B.dhall view
@@ -0,0 +1,1 @@+"True"
+ tests/normalization/success/prelude/Bool/show/1A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Bool`.show False
+ tests/normalization/success/prelude/Bool/show/1B.dhall view
@@ -0,0 +1,1 @@+"False"
+ tests/normalization/success/prelude/Double/show/0A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Double`.show -3.1
+ tests/normalization/success/prelude/Double/show/0B.dhall view
@@ -0,0 +1,1 @@+"-3.1"
+ tests/normalization/success/prelude/Double/show/1A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Double`.show 0.4
+ tests/normalization/success/prelude/Double/show/1B.dhall view
@@ -0,0 +1,1 @@+"0.4"
+ tests/normalization/success/prelude/Integer/show/0A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Integer`.show -3
+ tests/normalization/success/prelude/Integer/show/0B.dhall view
@@ -0,0 +1,1 @@+"-3"
+ tests/normalization/success/prelude/Integer/show/1A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Integer`.show +0
+ tests/normalization/success/prelude/Integer/show/1B.dhall view
@@ -0,0 +1,1 @@+"+0"
+ tests/normalization/success/prelude/Integer/toDouble/0A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Integer`.toDouble -3
+ tests/normalization/success/prelude/Integer/toDouble/0B.dhall view
@@ -0,0 +1,1 @@+-3.0
+ tests/normalization/success/prelude/Integer/toDouble/1A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Integer`.toDouble +2
+ tests/normalization/success/prelude/Integer/toDouble/1B.dhall view
@@ -0,0 +1,1 @@+2.0
+ tests/normalization/success/prelude/List/all/0A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`List`.all Natural Natural/even [ 2, 3, 5 ]
+ tests/normalization/success/prelude/List/all/0B.dhall view
@@ -0,0 +1,1 @@+False
+ tests/normalization/success/prelude/List/all/1A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`List`.all Natural Natural/even ([] : List Natural)
+ tests/normalization/success/prelude/List/all/1B.dhall view
@@ -0,0 +1,1 @@+True
+ tests/normalization/success/prelude/List/any/0A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`List`.any Natural Natural/even [ 2, 3, 5 ]
+ tests/normalization/success/prelude/List/any/0B.dhall view
@@ -0,0 +1,1 @@+True
+ tests/normalization/success/prelude/List/any/1A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`List`.any Natural Natural/even ([] : List Natural)
+ tests/normalization/success/prelude/List/any/1B.dhall view
@@ -0,0 +1,1 @@+False
+ tests/normalization/success/prelude/List/build/0A.dhall view
@@ -0,0 +1,7 @@+(../../../../../../Prelude/package.dhall).`List`.build+Text+( λ(list : Type)+→ λ(cons : Text → list → list)+→ λ(nil : list)+→ cons "ABC" (cons "DEF" nil)+)
+ tests/normalization/success/prelude/List/build/0B.dhall view
@@ -0,0 +1,1 @@+[ "ABC", "DEF" ]
+ tests/normalization/success/prelude/List/build/1A.dhall view
@@ -0,0 +1,7 @@+(../../../../../../Prelude/package.dhall).`List`.build+Text+( λ(list : Type)+→ λ(cons : Text → list → list)+→ λ(nil : list)+→ nil+)
+ tests/normalization/success/prelude/List/build/1B.dhall view
@@ -0,0 +1,1 @@+[] : List Text
+ tests/normalization/success/prelude/List/concat/0A.dhall view
@@ -0,0 +1,5 @@+(../../../../../../Prelude/package.dhall).`List`.concat Natural+[ [ 0, 1, 2 ]+, [ 3, 4 ]+, [ 5, 6, 7, 8 ]+]
+ tests/normalization/success/prelude/List/concat/0B.dhall view
@@ -0,0 +1,1 @@+[ 0, 1, 2, 3, 4, 5, 6, 7, 8 ]
+ tests/normalization/success/prelude/List/concat/1A.dhall view
@@ -0,0 +1,5 @@+(../../../../../../Prelude/package.dhall).`List`.concat Natural+[ [] : List Natural+, [] : List Natural+, [] : List Natural+]
+ tests/normalization/success/prelude/List/concat/1B.dhall view
@@ -0,0 +1,1 @@+[] : List Natural
+ tests/normalization/success/prelude/List/concatMap/0A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`List`.concatMap Natural Natural (λ(n : Natural) → [ n, n ]) [ 2, 3, 5 ]
+ tests/normalization/success/prelude/List/concatMap/0B.dhall view
@@ -0,0 +1,1 @@+[ 2, 2, 3, 3, 5, 5 ]
+ tests/normalization/success/prelude/List/concatMap/1A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`List`.concatMap Natural Natural (λ(n : Natural) → [ n, n ]) ([] : List Natural)
+ tests/normalization/success/prelude/List/concatMap/1B.dhall view
@@ -0,0 +1,1 @@+[] : List Natural
+ tests/normalization/success/prelude/List/filter/0A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`List`.filter Natural Natural/even [ 2, 3, 5 ]
+ tests/normalization/success/prelude/List/filter/0B.dhall view
@@ -0,0 +1,1 @@+[ 2 ]
+ tests/normalization/success/prelude/List/filter/1A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`List`.filter Natural Natural/odd [ 2, 3, 5 ]
+ tests/normalization/success/prelude/List/filter/1B.dhall view
@@ -0,0 +1,1 @@+[ 3, 5 ]
+ tests/normalization/success/prelude/List/fold/0A.dhall view
@@ -0,0 +1,6 @@+(../../../../../../Prelude/package.dhall).`List`.fold+Natural+[ 2, 3, 5 ]+Natural+(λ(x : Natural) → λ(y : Natural) → x + y)+0
+ tests/normalization/success/prelude/List/fold/0B.dhall view
@@ -0,0 +1,1 @@+10
+ tests/normalization/success/prelude/List/fold/1A.dhall view
@@ -0,0 +1,7 @@+ λ(nil : Natural)+→ (../../../../../../Prelude/package.dhall).`List`.fold+ Natural+ [ 2, 3, 5 ]+ Natural+ (λ(x : Natural) → λ(y : Natural) → x + y)+ nil
+ tests/normalization/success/prelude/List/fold/1B.dhall view
@@ -0,0 +1,1 @@+λ(nil : Natural) → 2 + (3 + (5 + nil))
+ tests/normalization/success/prelude/List/fold/2A.dhall view
@@ -0,0 +1,4 @@+ λ(list : Type)+→ λ(cons : Natural → list → list)+→ λ(nil : list)+→ (../../../../../../Prelude/package.dhall).`List`.fold Natural [ 2, 3, 5 ] list cons nil
+ tests/normalization/success/prelude/List/fold/2B.dhall view
@@ -0,0 +1,4 @@+ λ(list : Type)+→ λ(cons : Natural → list → list)+→ λ(nil : list)+→ cons 2 (cons 3 (cons 5 nil))
+ tests/normalization/success/prelude/List/generate/0A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`List`.generate 5 Bool Natural/even
+ tests/normalization/success/prelude/List/generate/0B.dhall view
@@ -0,0 +1,1 @@+[ True, False, True, False, True ]
+ tests/normalization/success/prelude/List/generate/1A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`List`.generate 0 Bool Natural/even
+ tests/normalization/success/prelude/List/generate/1B.dhall view
@@ -0,0 +1,1 @@+[] : List Bool
+ tests/normalization/success/prelude/List/head/0A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`List`.head Natural [ 0, 1, 2 ]
+ tests/normalization/success/prelude/List/head/0B.dhall view
@@ -0,0 +1,1 @@+Some 0
+ tests/normalization/success/prelude/List/head/1A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`List`.head Natural ([] : List Natural)
+ tests/normalization/success/prelude/List/head/1B.dhall view
@@ -0,0 +1,1 @@+None Natural
+ tests/normalization/success/prelude/List/indexed/0A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`List`.indexed Bool [ True, False, True ]
+ tests/normalization/success/prelude/List/indexed/0B.dhall view
@@ -0,0 +1,4 @@+[ { index = 0, value = True }+, { index = 1, value = False }+, { index = 2, value = True }+]
+ tests/normalization/success/prelude/List/indexed/1A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`List`.indexed Bool ([] : List Bool)
+ tests/normalization/success/prelude/List/indexed/1B.dhall view
@@ -0,0 +1,1 @@+[] : List { index : Natural, value : Bool }
+ tests/normalization/success/prelude/List/iterate/0A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`List`.iterate 10 Natural (λ(x : Natural) → x * 2) 1
+ tests/normalization/success/prelude/List/iterate/0B.dhall view
@@ -0,0 +1,1 @@+[ 1, 2, 4, 8, 16, 32, 64, 128, 256, 512 ]
+ tests/normalization/success/prelude/List/iterate/1A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`List`.iterate 0 Natural (λ(x : Natural) → x * 2) 1
+ tests/normalization/success/prelude/List/iterate/1B.dhall view
@@ -0,0 +1,1 @@+[] : List Natural
+ tests/normalization/success/prelude/List/last/0A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`List`.last Natural [ 0, 1, 2 ]
+ tests/normalization/success/prelude/List/last/0B.dhall view
@@ -0,0 +1,1 @@+Some 2
+ tests/normalization/success/prelude/List/last/1A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`List`.last Natural ([] : List Natural)
+ tests/normalization/success/prelude/List/last/1B.dhall view
@@ -0,0 +1,1 @@+None Natural
+ tests/normalization/success/prelude/List/length/0A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`List`.length Natural [ 0, 1, 2 ]
+ tests/normalization/success/prelude/List/length/0B.dhall view
@@ -0,0 +1,1 @@+3
+ tests/normalization/success/prelude/List/length/1A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`List`.length Natural ([] : List Natural)
+ tests/normalization/success/prelude/List/length/1B.dhall view
@@ -0,0 +1,1 @@+0
+ tests/normalization/success/prelude/List/map/0A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`List`.map Natural Bool Natural/even [ 2, 3, 5 ]
+ tests/normalization/success/prelude/List/map/0B.dhall view
@@ -0,0 +1,1 @@+[ True, False, False ]
+ tests/normalization/success/prelude/List/map/1A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`List`.map Natural Bool Natural/even ([] : List Natural)
+ tests/normalization/success/prelude/List/map/1B.dhall view
@@ -0,0 +1,1 @@+[] : List Bool
+ tests/normalization/success/prelude/List/null/0A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`List`.null Natural [ 0, 1, 2 ]
+ tests/normalization/success/prelude/List/null/0B.dhall view
@@ -0,0 +1,1 @@+False
+ tests/normalization/success/prelude/List/null/1A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`List`.null Natural ([] : List Natural)
+ tests/normalization/success/prelude/List/null/1B.dhall view
@@ -0,0 +1,1 @@+True
+ tests/normalization/success/prelude/List/replicate/0A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`List`.replicate 9 Natural 1
+ tests/normalization/success/prelude/List/replicate/0B.dhall view
@@ -0,0 +1,1 @@+[ 1, 1, 1, 1, 1, 1, 1, 1, 1 ]
+ tests/normalization/success/prelude/List/replicate/1A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`List`.replicate 0 Natural 1
+ tests/normalization/success/prelude/List/replicate/1B.dhall view
@@ -0,0 +1,1 @@+[] : List Natural
+ tests/normalization/success/prelude/List/reverse/0A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`List`.reverse Natural [ 0, 1, 2 ]
+ tests/normalization/success/prelude/List/reverse/0B.dhall view
@@ -0,0 +1,1 @@+[ 2, 1, 0 ]
+ tests/normalization/success/prelude/List/reverse/1A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`List`.reverse Natural ([] : List Natural)
+ tests/normalization/success/prelude/List/reverse/1B.dhall view
@@ -0,0 +1,1 @@+[] : List Natural
+ tests/normalization/success/prelude/List/shifted/0A.dhall view
@@ -0,0 +1,15 @@+(../../../../../../Prelude/package.dhall).`List`.shifted+Bool+[ [ { index = 0, value = True }+ , { index = 1, value = True }+ , { index = 2, value = False }+ ]+, [ { index = 0, value = False }+ , { index = 1, value = False }+ ]+, [ { index = 0, value = True }+ , { index = 1, value = True }+ , { index = 2, value = True }+ , { index = 3, value = True }+ ]+]
+ tests/normalization/success/prelude/List/shifted/0B.dhall view
@@ -0,0 +1,10 @@+[ { index = 0, value = True }+, { index = 1, value = True }+, { index = 2, value = False }+, { index = 3, value = False }+, { index = 4, value = False }+, { index = 5, value = True }+, { index = 6, value = True }+, { index = 7, value = True }+, { index = 8, value = True }+]
+ tests/normalization/success/prelude/List/shifted/1A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`List`.shifted Bool ([] : List (List { index : Natural, value : Bool }))
+ tests/normalization/success/prelude/List/shifted/1B.dhall view
@@ -0,0 +1,1 @@+[] : List { index : Natural, value : Bool }
+ tests/normalization/success/prelude/List/unzip/0A.dhall view
@@ -0,0 +1,7 @@+(../../../../../../Prelude/package.dhall).`List`.unzip+Text+Bool+[ { _1 = "ABC", _2 = True }+, { _1 = "DEF", _2 = False }+, { _1 = "GHI", _2 = True }+]
+ tests/normalization/success/prelude/List/unzip/0B.dhall view
@@ -0,0 +1,1 @@+{ _1 = [ "ABC", "DEF", "GHI" ], _2 = [ True, False, True ] }
+ tests/normalization/success/prelude/List/unzip/1A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`List`.unzip Text Bool ([] : List { _1 : Text, _2 : Bool })
+ tests/normalization/success/prelude/List/unzip/1B.dhall view
@@ -0,0 +1,1 @@+{ _1 = [] : List Text, _2 = [] : List Bool }
+ tests/normalization/success/prelude/Natural/build/0A.dhall view
@@ -0,0 +1,6 @@+(../../../../../../Prelude/package.dhall).`Natural`.build+( λ(natural : Type)+→ λ(succ : natural → natural)+→ λ(zero : natural)+→ succ (succ (succ zero))+)
+ tests/normalization/success/prelude/Natural/build/0B.dhall view
@@ -0,0 +1,1 @@+3
+ tests/normalization/success/prelude/Natural/build/1A.dhall view
@@ -0,0 +1,6 @@+(../../../../../../Prelude/package.dhall).`Natural`.build+( λ(natural : Type)+→ λ(succ : natural → natural)+→ λ(zero : natural)+→ zero+)
+ tests/normalization/success/prelude/Natural/build/1B.dhall view
@@ -0,0 +1,1 @@+0
+ tests/normalization/success/prelude/Natural/enumerate/0A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Natural`.enumerate 10
+ tests/normalization/success/prelude/Natural/enumerate/0B.dhall view
@@ -0,0 +1,1 @@+[ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ]
+ tests/normalization/success/prelude/Natural/enumerate/1A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Natural`.enumerate 0
+ tests/normalization/success/prelude/Natural/enumerate/1B.dhall view
@@ -0,0 +1,1 @@+[] : List Natural
+ tests/normalization/success/prelude/Natural/even/0A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Natural`.even 3
+ tests/normalization/success/prelude/Natural/even/0B.dhall view
@@ -0,0 +1,1 @@+False
+ tests/normalization/success/prelude/Natural/even/1A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Natural`.even 0
+ tests/normalization/success/prelude/Natural/even/1B.dhall view
@@ -0,0 +1,1 @@+True
+ tests/normalization/success/prelude/Natural/fold/0A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Natural`.fold 3 Natural (λ(x : Natural) → 5 * x) 1
+ tests/normalization/success/prelude/Natural/fold/0B.dhall view
@@ -0,0 +1,1 @@+125
+ tests/normalization/success/prelude/Natural/fold/1A.dhall view
@@ -0,0 +1,1 @@+λ(zero : Natural) → (../../../../../../Prelude/package.dhall).`Natural`.fold 3 Natural (λ(x : Natural) → 5 * x) zero
+ tests/normalization/success/prelude/Natural/fold/1B.dhall view
@@ -0,0 +1,1 @@+λ(zero : Natural) → 5 * (5 * (5 * zero))
+ tests/normalization/success/prelude/Natural/fold/2A.dhall view
@@ -0,0 +1,4 @@+ λ(natural : Type)+→ λ(succ : natural → natural)+→ λ(zero : natural)+→ (../../../../../../Prelude/package.dhall).`Natural`.fold 3 natural succ zero
+ tests/normalization/success/prelude/Natural/fold/2B.dhall view
@@ -0,0 +1,1 @@+λ(natural : Type) → λ(succ : natural → natural) → λ(zero : natural) → succ (succ (succ zero))
+ tests/normalization/success/prelude/Natural/isZero/0A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Natural`.isZero 2
+ tests/normalization/success/prelude/Natural/isZero/0B.dhall view
@@ -0,0 +1,1 @@+False
+ tests/normalization/success/prelude/Natural/isZero/1A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Natural`.isZero 0
+ tests/normalization/success/prelude/Natural/isZero/1B.dhall view
@@ -0,0 +1,1 @@+True
+ tests/normalization/success/prelude/Natural/odd/0A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Natural`.odd 3
+ tests/normalization/success/prelude/Natural/odd/0B.dhall view
@@ -0,0 +1,1 @@+True
+ tests/normalization/success/prelude/Natural/odd/1A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Natural`.odd 0
+ tests/normalization/success/prelude/Natural/odd/1B.dhall view
@@ -0,0 +1,1 @@+False
+ tests/normalization/success/prelude/Natural/product/0A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Natural`.product [ 2, 3, 5 ]
+ tests/normalization/success/prelude/Natural/product/0B.dhall view
@@ -0,0 +1,1 @@+30
+ tests/normalization/success/prelude/Natural/product/1A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Natural`.product ([] : List Natural)
+ tests/normalization/success/prelude/Natural/product/1B.dhall view
@@ -0,0 +1,1 @@+1
+ tests/normalization/success/prelude/Natural/show/0A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Natural`.show 3
+ tests/normalization/success/prelude/Natural/show/0B.dhall view
@@ -0,0 +1,1 @@+"3"
+ tests/normalization/success/prelude/Natural/show/1A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Natural`.show 0
+ tests/normalization/success/prelude/Natural/show/1B.dhall view
@@ -0,0 +1,1 @@+"0"
+ tests/normalization/success/prelude/Natural/sum/0A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Natural`.sum [ 2, 3, 5 ]
+ tests/normalization/success/prelude/Natural/sum/0B.dhall view
@@ -0,0 +1,1 @@+10
+ tests/normalization/success/prelude/Natural/sum/1A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Natural`.sum ([] : List Natural)
+ tests/normalization/success/prelude/Natural/sum/1B.dhall view
@@ -0,0 +1,1 @@+0
+ tests/normalization/success/prelude/Natural/toDouble/0A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Natural`.toDouble 3
+ tests/normalization/success/prelude/Natural/toDouble/0B.dhall view
@@ -0,0 +1,1 @@+3.0
+ tests/normalization/success/prelude/Natural/toDouble/1A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Natural`.toDouble 0
+ tests/normalization/success/prelude/Natural/toDouble/1B.dhall view
@@ -0,0 +1,1 @@+0.0
+ tests/normalization/success/prelude/Natural/toInteger/0A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Natural`.toInteger 3
+ tests/normalization/success/prelude/Natural/toInteger/0B.dhall view
@@ -0,0 +1,1 @@++3
+ tests/normalization/success/prelude/Natural/toInteger/1A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Natural`.toInteger 0
+ tests/normalization/success/prelude/Natural/toInteger/1B.dhall view
@@ -0,0 +1,1 @@++0
+ tests/normalization/success/prelude/Optional/all/0A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Optional`.all Natural Natural/even (Some 3)
+ tests/normalization/success/prelude/Optional/all/0B.dhall view
@@ -0,0 +1,1 @@+False
+ tests/normalization/success/prelude/Optional/all/1A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Optional`.all Natural Natural/even (None Natural)
+ tests/normalization/success/prelude/Optional/all/1B.dhall view
@@ -0,0 +1,1 @@+True
+ tests/normalization/success/prelude/Optional/any/0A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Optional`.any Natural Natural/even (Some 2)
+ tests/normalization/success/prelude/Optional/any/0B.dhall view
@@ -0,0 +1,1 @@+True
+ tests/normalization/success/prelude/Optional/any/1A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Optional`.any Natural Natural/even (None Natural)
+ tests/normalization/success/prelude/Optional/any/1B.dhall view
@@ -0,0 +1,1 @@+False
+ tests/normalization/success/prelude/Optional/build/0A.dhall view
@@ -0,0 +1,7 @@+(../../../../../../Prelude/package.dhall).`Optional`.build+Natural+( λ(optional : Type)+→ λ(some : Natural → optional)+→ λ(none : optional)+→ some 1+)
+ tests/normalization/success/prelude/Optional/build/0B.dhall view
@@ -0,0 +1,1 @@+Some 1
+ tests/normalization/success/prelude/Optional/build/1A.dhall view
@@ -0,0 +1,7 @@+(../../../../../../Prelude/package.dhall).`Optional`.build+Natural+( λ(optional : Type)+→ λ(some : Natural → optional)+→ λ(none : optional)+→ none+)
+ tests/normalization/success/prelude/Optional/build/1B.dhall view
@@ -0,0 +1,1 @@+None Natural
+ tests/normalization/success/prelude/Optional/concat/0A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Optional`.concat Natural (Some (Some 1))
+ tests/normalization/success/prelude/Optional/concat/0B.dhall view
@@ -0,0 +1,1 @@+Some 1
+ tests/normalization/success/prelude/Optional/concat/1A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Optional`.concat Natural (Some (None Natural))
+ tests/normalization/success/prelude/Optional/concat/1B.dhall view
@@ -0,0 +1,1 @@+None Natural
+ tests/normalization/success/prelude/Optional/concat/2A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Optional`.concat Natural (None (Optional Natural))
+ tests/normalization/success/prelude/Optional/concat/2B.dhall view
@@ -0,0 +1,1 @@+None Natural
+ tests/normalization/success/prelude/Optional/filter/0A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Optional`.filter Natural Natural/even (Some 2)
+ tests/normalization/success/prelude/Optional/filter/0B.dhall view
@@ -0,0 +1,1 @@+Some 2
+ tests/normalization/success/prelude/Optional/filter/1A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Optional`.filter Natural Natural/odd (Some 2)
+ tests/normalization/success/prelude/Optional/filter/1B.dhall view
@@ -0,0 +1,1 @@+None Natural
+ tests/normalization/success/prelude/Optional/fold/0A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Optional`.fold Natural (Some 2) Natural (λ(x : Natural) → x) 0
+ tests/normalization/success/prelude/Optional/fold/0B.dhall view
@@ -0,0 +1,1 @@+2
+ tests/normalization/success/prelude/Optional/fold/1A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Optional`.fold Natural (None Natural) Natural (λ(x : Natural) → x) 0
+ tests/normalization/success/prelude/Optional/fold/1B.dhall view
@@ -0,0 +1,1 @@+0
+ tests/normalization/success/prelude/Optional/head/0A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Optional`.head Natural [ None Natural, Some 1, Some 2 ]
+ tests/normalization/success/prelude/Optional/head/0B.dhall view
@@ -0,0 +1,1 @@+Some 1
+ tests/normalization/success/prelude/Optional/head/1A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Optional`.head Natural [ None Natural, None Natural ]
+ tests/normalization/success/prelude/Optional/head/1B.dhall view
@@ -0,0 +1,1 @@+None Natural
+ tests/normalization/success/prelude/Optional/head/2A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Optional`.head Natural ([] : List (Optional Natural))
+ tests/normalization/success/prelude/Optional/head/2B.dhall view
@@ -0,0 +1,1 @@+None Natural
+ tests/normalization/success/prelude/Optional/last/0A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Optional`.last Natural [ None Natural, Some 1, Some 2 ]
+ tests/normalization/success/prelude/Optional/last/0B.dhall view
@@ -0,0 +1,1 @@+Some 2
+ tests/normalization/success/prelude/Optional/last/1A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Optional`.last Natural [ None Natural, None Natural ]
+ tests/normalization/success/prelude/Optional/last/1B.dhall view
@@ -0,0 +1,1 @@+None Natural
+ tests/normalization/success/prelude/Optional/last/2A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Optional`.last Natural ([] : List (Optional Natural))
+ tests/normalization/success/prelude/Optional/last/2B.dhall view
@@ -0,0 +1,1 @@+None Natural
+ tests/normalization/success/prelude/Optional/length/0A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Optional`.length Natural (Some 2)
+ tests/normalization/success/prelude/Optional/length/0B.dhall view
@@ -0,0 +1,1 @@+1
+ tests/normalization/success/prelude/Optional/length/1A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Optional`.length Natural (None Natural)
+ tests/normalization/success/prelude/Optional/length/1B.dhall view
@@ -0,0 +1,1 @@+0
+ tests/normalization/success/prelude/Optional/map/0A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Optional`.map Natural Bool Natural/even (Some 3)
+ tests/normalization/success/prelude/Optional/map/0B.dhall view
@@ -0,0 +1,1 @@+Some False
+ tests/normalization/success/prelude/Optional/map/1A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Optional`.map Natural Bool Natural/even (None Natural)
+ tests/normalization/success/prelude/Optional/map/1B.dhall view
@@ -0,0 +1,1 @@+None Bool
+ tests/normalization/success/prelude/Optional/null/0A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Optional`.null Natural (Some 2)
+ tests/normalization/success/prelude/Optional/null/0B.dhall view
@@ -0,0 +1,1 @@+False
+ tests/normalization/success/prelude/Optional/null/1A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Optional`.null Natural (None Natural)
+ tests/normalization/success/prelude/Optional/null/1B.dhall view
@@ -0,0 +1,1 @@+True
+ tests/normalization/success/prelude/Optional/toList/0A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Optional`.toList Natural (Some 1)
+ tests/normalization/success/prelude/Optional/toList/0B.dhall view
@@ -0,0 +1,1 @@+[ 1 ] : List Natural
+ tests/normalization/success/prelude/Optional/toList/1A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Optional`.toList Natural (None Natural)
+ tests/normalization/success/prelude/Optional/toList/1B.dhall view
@@ -0,0 +1,1 @@+[] : List Natural
+ tests/normalization/success/prelude/Optional/unzip/0A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Optional`.unzip Text Bool (Some { _1 = "ABC", _2 = True })
+ tests/normalization/success/prelude/Optional/unzip/0B.dhall view
@@ -0,0 +1,1 @@+{ _1 = Some "ABC", _2 = Some True }
+ tests/normalization/success/prelude/Optional/unzip/1A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Optional`.unzip Text Bool (None { _1 : Text, _2 : Bool })
+ tests/normalization/success/prelude/Optional/unzip/1B.dhall view
@@ -0,0 +1,1 @@+{ _1 = None Text, _2 = None Bool }
+ tests/normalization/success/prelude/Text/concat/0A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Text`.concat [ "ABC", "DEF", "GHI" ]
+ tests/normalization/success/prelude/Text/concat/0B.dhall view
@@ -0,0 +1,1 @@+"ABCDEFGHI"
+ tests/normalization/success/prelude/Text/concat/1A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Text`.concat ([] : List Text)
+ tests/normalization/success/prelude/Text/concat/1B.dhall view
@@ -0,0 +1,1 @@+""
+ tests/normalization/success/prelude/Text/concatMap/0A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Text`.concatMap Natural (λ(n : Natural) → "${Natural/show n} ") [ 0, 1, 2 ]
+ tests/normalization/success/prelude/Text/concatMap/0B.dhall view
@@ -0,0 +1,1 @@+"0 1 2 "
+ tests/normalization/success/prelude/Text/concatMap/1A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Text`.concatMap Natural (λ(n : Natural) → "${Natural/show n} ") ([] : List Natural)
+ tests/normalization/success/prelude/Text/concatMap/1B.dhall view
@@ -0,0 +1,1 @@+""
+ tests/normalization/success/prelude/Text/concatMapSep/0A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Text`.concatMapSep ", " Natural Natural/show [ 0, 1, 2 ]
+ tests/normalization/success/prelude/Text/concatMapSep/0B.dhall view
@@ -0,0 +1,1 @@+"0, 1, 2"
+ tests/normalization/success/prelude/Text/concatMapSep/1A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Text`.concatMapSep ", " Natural Natural/show ([] : List Natural)
+ tests/normalization/success/prelude/Text/concatMapSep/1B.dhall view
@@ -0,0 +1,1 @@+""
+ tests/normalization/success/prelude/Text/concatSep/0A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Text`.concatSep ", " [ "ABC", "DEF", "GHI" ]
+ tests/normalization/success/prelude/Text/concatSep/0B.dhall view
@@ -0,0 +1,1 @@+"ABC, DEF, GHI"
+ tests/normalization/success/prelude/Text/concatSep/1A.dhall view
@@ -0,0 +1,1 @@+(../../../../../../Prelude/package.dhall).`Text`.concatSep ", " ([] : List Text)
+ tests/normalization/success/prelude/Text/concatSep/1B.dhall view
@@ -0,0 +1,1 @@+""
+ tests/normalization/success/remoteSystemsA.dhall view
@@ -0,0 +1,52 @@+let Text/concatMap = (./../../../Prelude/package.dhall).`Text`.concatMap++let Text/concatSep = (./../../../Prelude/package.dhall).`Text`.concatSep++let Row =+ { cores :+ Natural+ , host :+ Text+ , key :+ Text+ , mandatoryFeatures :+ List Text+ , platforms :+ List Text+ , speedFactor :+ Natural+ , supportedFeatures :+ List Text+ , user :+ Optional Text+ }++let renderRow =+ λ ( row+ : Row+ )+ → let host =+ Optional/fold+ Text+ row.user+ Text+ (λ(user : Text) → "${user}@${row.host}")+ row.host+ + let platforms = Text/concatSep "," row.platforms+ + let key = row.key+ + let cores = Integer/show (Natural/toInteger row.cores)+ + let speedFactor = Integer/show (Natural/toInteger row.speedFactor)+ + let supportedFeatures = Text/concatSep "," row.supportedFeatures+ + let mandatoryFeatures = Text/concatSep "," row.mandatoryFeatures+ + in ''+ ${host} ${platforms} ${key} ${cores} ${speedFactor} ${supportedFeatures} ${mandatoryFeatures}+ ''++in Text/concatMap Row renderRow
+ tests/normalization/success/remoteSystemsB.dhall view
@@ -0,0 +1,1 @@+λ(xs : List { cores : Natural, host : Text, key : Text, mandatoryFeatures : List Text, platforms : List Text, speedFactor : Natural, supportedFeatures : List Text, user : Optional Text }) → List/fold { cores : Natural, host : Text, key : Text, mandatoryFeatures : List Text, platforms : List Text, speedFactor : Natural, supportedFeatures : List Text, user : Optional Text } xs Text (λ(x : { cores : Natural, host : Text, key : Text, mandatoryFeatures : List Text, platforms : List Text, speedFactor : Natural, supportedFeatures : List Text, user : Optional Text }) → λ(y : Text) → "${Optional/fold Text x.user Text (λ(user : Text) → "${user}@${x.host}") x.host} ${merge { Empty = λ(_ : {}) → "", NonEmpty = λ(result : Text) → result } (List/fold Text x.platforms < Empty : {} | NonEmpty : Text > (λ(element : Text) → λ(status : < Empty : {} | NonEmpty : Text >) → merge { Empty = λ(_ : {}) → < NonEmpty = element | Empty : {} >, NonEmpty = λ(result : Text) → < NonEmpty = element ++ "," ++ result | Empty : {} > } status : < Empty : {} | NonEmpty : Text >) < Empty = {=} | NonEmpty : Text >) : Text} ${x.key} ${Integer/show (Natural/toInteger x.cores)} ${Integer/show (Natural/toInteger x.speedFactor)} ${merge { Empty = λ(_ : {}) → "", NonEmpty = λ(result : Text) → result } (List/fold Text x.supportedFeatures < Empty : {} | NonEmpty : Text > (λ(element : Text) → λ(status : < Empty : {} | NonEmpty : Text >) → merge { Empty = λ(_ : {}) → < NonEmpty = element | Empty : {} >, NonEmpty = λ(result : Text) → < NonEmpty = element ++ "," ++ result | Empty : {} > } status : < Empty : {} | NonEmpty : Text >) < Empty = {=} | NonEmpty : Text >) : Text} ${merge { Empty = λ(_ : {}) → "", NonEmpty = λ(result : Text) → result } (List/fold Text x.mandatoryFeatures < Empty : {} | NonEmpty : Text > (λ(element : Text) → λ(status : < Empty : {} | NonEmpty : Text >) → merge { Empty = λ(_ : {}) → < NonEmpty = element | Empty : {} >, NonEmpty = λ(result : Text) → < NonEmpty = element ++ "," ++ result | Empty : {} > } status : < Empty : {} | NonEmpty : Text >) < Empty = {=} | NonEmpty : Text >) : Text}\n" ++ y) ""
+ tests/normalization/success/simple/doubleShowA.dhall view
@@ -0,0 +1,1 @@+{ example0 = Double/show -0.42, example1 = Double/show 13.37 }
+ tests/normalization/success/simple/doubleShowB.dhall view
@@ -0,0 +1,1 @@+{ example0 = "-0.42", example1 = "13.37" }
+ tests/normalization/success/simple/integerShowA.dhall view
@@ -0,0 +1,4 @@+{ example0 = Integer/show +1337+, example1 = Integer/show -42+, example2 = Integer/show +0+}
+ tests/normalization/success/simple/integerShowB.dhall view
@@ -0,0 +1,1 @@+{ example0 = "+1337", example1 = "-42", example2 = "+0" }
+ tests/normalization/success/simple/integerToDoubleA.dhall view
@@ -0,0 +1,10 @@+[ Integer/toDouble +179769313486231580793728971405303415079934132710037826936173778980444968292764750946649017977587207096330286416692887910946555547851940402630657488671505820681908902000708383676273854845817711531764475730270069855571366959622842914819860834936475292719074168444365510704342711559699508093042880177904174497792+, Integer/toDouble +179769313486231580793728971405303415079934132710037826936173778980444968292764750946649017977587207096330286416692887910946555547851940402630657488671505820681908902000708383676273854845817711531764475730270069855571366959622842914819860834936475292719074168444365510704342711559699508093042880177904174497791+, Integer/toDouble +179769313486231560835325876058105298516207002341652166261661174625869553267292326574530099287946549246750631490335877017522087105926987962906277604735569213290190919152394180476217125334960946356387261286640198029037799514183602981511756283727771403830521483963923935633133642802139091669457927874464075218945+, Integer/toDouble +179769313486231560835325876058105298516207002341652166261661174625869553267292326574530099287946549246750631490335877017522087105926987962906277604735569213290190919152394180476217125334960946356387261286640198029037799514183602981511756283727771403830521483963923935633133642802139091669457927874464075218944++, Integer/toDouble -179769313486231580793728971405303415079934132710037826936173778980444968292764750946649017977587207096330286416692887910946555547851940402630657488671505820681908902000708383676273854845817711531764475730270069855571366959622842914819860834936475292719074168444365510704342711559699508093042880177904174497792+, Integer/toDouble -179769313486231580793728971405303415079934132710037826936173778980444968292764750946649017977587207096330286416692887910946555547851940402630657488671505820681908902000708383676273854845817711531764475730270069855571366959622842914819860834936475292719074168444365510704342711559699508093042880177904174497791+, Integer/toDouble -179769313486231560835325876058105298516207002341652166261661174625869553267292326574530099287946549246750631490335877017522087105926987962906277604735569213290190919152394180476217125334960946356387261286640198029037799514183602981511756283727771403830521483963923935633133642802139091669457927874464075218945+, Integer/toDouble -179769313486231560835325876058105298516207002341652166261661174625869553267292326574530099287946549246750631490335877017522087105926987962906277604735569213290190919152394180476217125334960946356387261286640198029037799514183602981511756283727771403830521483963923935633133642802139091669457927874464075218944+]
+ tests/normalization/success/simple/integerToDoubleB.dhall view
@@ -0,0 +1,9 @@+[ Infinity+, 1.7976931348623157e308+, 1.7976931348623157e308+, 1.7976931348623155e308+, -Infinity+, -1.7976931348623157e308+, -1.7976931348623157e308+, -1.7976931348623155e308+]
+ tests/normalization/success/simple/letletA.dhall view
@@ -0,0 +1,3 @@+let l = λ(n : Natural) → λ(m : Natural) → λ(x : Natural) → n + m * x+let f = l 2 3+in f 445
+ tests/normalization/success/simple/letletB.dhall view
@@ -0,0 +1,1 @@+1337
+ tests/normalization/success/simple/listBuildA.dhall view
@@ -0,0 +1,22 @@+{ example0 =+ List/build+ Bool+ ( λ(list : Type)+ → λ(cons : Bool → list → list)+ → λ(nil : list)+ → cons True (cons False nil)+ )+, example1 =+ List/build+ Bool+ (λ(x : Type) → λ(x : Bool → x → x) → λ(x : x@1) → x@1 True (x@1 False x))+, example2 =+ λ(id : ∀(a : Type) → a → a)+ → List/build+ Bool+ ( λ(list : Type)+ → λ(cons : Bool → list → list)+ → λ(nil : list)+ → id list (cons True (cons False nil))+ )+}
+ tests/normalization/success/simple/listBuildB.dhall view
@@ -0,0 +1,7 @@+{ example0 =+ [ True, False ] : List Bool+, example1 =+ [ True, False ] : List Bool+, example2 =+ λ(id : ∀(a : Type) → a → a) → id (List Bool) [ True, False ]+}
+ tests/normalization/success/simple/multiLineA.dhall view
@@ -0,0 +1,4 @@+''+ foo+bar+''
+ tests/normalization/success/simple/multiLineB.dhall view
@@ -0,0 +1,4 @@+''+ foo+bar+''
+ tests/normalization/success/simple/naturalBuildA.dhall view
@@ -0,0 +1,18 @@+{ example0 =+ Natural/build+ ( λ(natural : Type)+ → λ(succ : natural → natural)+ → λ(zero : natural)+ → succ zero+ )+, example1 =+ Natural/build (λ(x : Type) → λ(x : x → x) → λ(x : x@1) → x@1 x)+, example2 =+ λ(id : ∀(a : Type) → a → a)+ → Natural/build+ ( λ(natural : Type)+ → λ(succ : natural → natural)+ → λ(zero : natural)+ → id natural (succ zero)+ )+}
+ tests/normalization/success/simple/naturalBuildB.dhall view
@@ -0,0 +1,7 @@+{ example0 =+ 1+, example1 =+ 1+, example2 =+ λ(id : ∀(a : Type) → a → a) → id Natural 1+}
+ tests/normalization/success/simple/naturalPlusA.dhall view
@@ -0,0 +1,1 @@+1 + 2
+ tests/normalization/success/simple/naturalPlusB.dhall view
@@ -0,0 +1,1 @@+3
+ tests/normalization/success/simple/naturalShowA.dhall view
@@ -0,0 +1,1 @@+Natural/show 42
+ tests/normalization/success/simple/naturalShowB.dhall view
@@ -0,0 +1,1 @@+"42"
+ tests/normalization/success/simple/naturalToIntegerA.dhall view
@@ -0,0 +1,1 @@+Natural/toInteger 1
+ tests/normalization/success/simple/naturalToIntegerB.dhall view
@@ -0,0 +1,1 @@++1
+ tests/normalization/success/simple/optionalBuildA.dhall view
@@ -0,0 +1,32 @@+{ example0 =+ Optional/build+ Natural+ ( λ(optional : Type)+ → λ(just : Natural → optional)+ → λ(nothing : optional)+ → just 1+ )+, example1 =+ Optional/build+ Integer+ (λ(optional : Type) → λ(x : Integer → optional) → λ(x : optional) → x@1 +1)+, example2 =+ λ(id : ∀(a : Type) → a → a)+ → Optional/build+ Bool+ ( λ(optional : Type)+ → λ(just : Bool → optional)+ → λ(nothing : optional)+ → id optional (just True)+ )+, example3 =+ λ(a : Type)+ → λ(x : a)+ → Optional/build+ a+ ( λ(optional : Type)+ → λ(just : a → optional)+ → λ(nothing : optional)+ → just x+ )+}
+ tests/normalization/success/simple/optionalBuildB.dhall view
@@ -0,0 +1,9 @@+{ example0 =+ [ 1 ] : Optional Natural+, example1 =+ [ +1 ] : Optional Integer+, example2 =+ λ(id : ∀(a : Type) → a → a) → id (Optional Bool) ([ True ] : Optional Bool)+, example3 =+ λ(a : Type) → λ(x : a) → [ x ] : Optional a+}
+ tests/normalization/success/simple/optionalBuildFoldA.dhall view
@@ -0,0 +1,1 @@+Optional/build Text (Optional/fold Text ([ "foo" ] : Optional Text))
+ tests/normalization/success/simple/optionalBuildFoldB.dhall view
@@ -0,0 +1,1 @@+[ "foo" ] : Optional Text
+ tests/normalization/success/simple/optionalFoldA.dhall view
@@ -0,0 +1,7 @@+ let f =+ λ(o : Optional Text)+ → Optional/fold Text o Natural (λ(j : Text) → 1) 2++in { example0 = f ([ "foo" ] : Optional Text)+ , example1 = f ([] : Optional Text)+ }
+ tests/normalization/success/simple/optionalFoldB.dhall view
@@ -0,0 +1,1 @@+{ example0 = 1, example1 = 2 }
+ tests/normalization/success/simple/sortOperatorA.dhall view
@@ -0,0 +1,1 @@+{ b = 2 } // { a = 1 }
+ tests/normalization/success/simple/sortOperatorB.dhall view
@@ -0,0 +1,1 @@+{ a = 1, b = 2 }
+ tests/normalization/success/simplifications/andA.dhall view
@@ -0,0 +1,6 @@+{ example0 = λ(x : Bool) → x && True+, example1 = λ(x : Bool) → True && x+, example2 = λ(x : Bool) → x && False+, example3 = λ(x : Bool) → False && x+, example4 = λ(x : Bool) → x && x+}
+ tests/normalization/success/simplifications/andB.dhall view
@@ -0,0 +1,6 @@+{ example0 = λ(x : Bool) → x+, example1 = λ(x : Bool) → x+, example2 = λ(x : Bool) → False+, example3 = λ(x : Bool) → False+, example4 = λ(x : Bool) → x+}
+ tests/normalization/success/simplifications/eqA.dhall view
@@ -0,0 +1,4 @@+{ example0 = λ(x : Bool) → x == True+, example1 = λ(x : Bool) → True == x+, example2 = λ(x : Bool) → x == x+}
+ tests/normalization/success/simplifications/eqB.dhall view
@@ -0,0 +1,4 @@+{ example0 = λ(x : Bool) → x+, example1 = λ(x : Bool) → x+, example2 = λ(x : Bool) → True+}
+ tests/normalization/success/simplifications/ifThenElseA.dhall view
@@ -0,0 +1,3 @@+{ example0 = λ(x : Bool) → if x then True else False+, example1 = λ(x : Bool) → λ(y : Text) → if x then y else y+}
+ tests/normalization/success/simplifications/ifThenElseB.dhall view
@@ -0,0 +1,3 @@+{ example0 = λ(x : Bool) → x+, example1 = λ(x : Bool) → λ(y : Text) → y+}
+ tests/normalization/success/simplifications/neA.dhall view
@@ -0,0 +1,4 @@+{ example0 = λ(x : Bool) → x != False+, example1 = λ(x : Bool) → False != x+, example2 = λ(x : Bool) → x != x+}
+ tests/normalization/success/simplifications/neB.dhall view
@@ -0,0 +1,4 @@+{ example0 = λ(x : Bool) → x+, example1 = λ(x : Bool) → x+, example2 = λ(x : Bool) → False+}
+ tests/normalization/success/simplifications/orA.dhall view
@@ -0,0 +1,6 @@+{ example0 = λ(x : Bool) → x || True+, example1 = λ(x : Bool) → True || x+, example2 = λ(x : Bool) → x || False+, example3 = λ(x : Bool) → False || x+, example4 = λ(x : Bool) → x || x+}
+ tests/normalization/success/simplifications/orB.dhall view
@@ -0,0 +1,6 @@+{ example0 = λ(x : Bool) → True+, example1 = λ(x : Bool) → True+, example2 = λ(x : Bool) → x+, example3 = λ(x : Bool) → x+, example4 = λ(x : Bool) → x+}
− tests/normalization/tutorial/combineTypes/0A.dhall
@@ -1,1 +0,0 @@-{ foo : { bar : Text } } ⩓ { foo : { baz : Bool }, qux : Integer }
− tests/normalization/tutorial/combineTypes/0B.dhall
@@ -1,1 +0,0 @@-{ foo : { bar : Text, baz : Bool }, qux : Integer }
− tests/normalization/tutorial/projection/0A.dhall
@@ -1,1 +0,0 @@-{ x = 1, y = True, z = "ABC" }.{ x, y }
− tests/normalization/tutorial/projection/0B.dhall
@@ -1,1 +0,0 @@-{ x = 1, y = True }
− tests/parser/annotations.dhall
@@ -1,4 +0,0 @@-{ foo = ([] : List Integer) # [1, 2, 3] # ([1, 2, 3] : List Integer)-, bar = [] : Optional Integer-, baz = [1] : Optional Integer-} : { foo : List Integer, bar : Optional Integer, baz : Optional Integer }
− tests/parser/blockComment.dhall
@@ -1,3 +0,0 @@-{- foo -}--1
− tests/parser/builtins.dhall
@@ -1,31 +0,0 @@- λ ( x- : { field0 : Bool- , field1 : Optional (Optional Bool)- , field2 : Natural- , field3 : Integer- , field4 : Double- , field5 : Text- , field6 : List (List Bool)- }- )-→ { field00 = Natural/fold- , field01 = Natural/build- , field02 = Natural/isZero- , field03 = Natural/even- , field04 = Natural/odd- , field05 = Natural/toInteger- , field06 = Natural/show- , field07 = Integer/show- , field08 = Double/show- , field09 = List/build- , field10 = List/fold- , field11 = List/length- , field12 = List/head- , field13 = List/last- , field14 = List/indexed- , field15 = List/reverse- , field16 = Optional/fold- , field17 = Optional/build- , field18 = True- , field19 = False- }
− tests/parser/collectionImportType.dhall
@@ -1,3 +0,0 @@-{ example0 = [] : Optional ./type.dhall-, example1 = [] : List ./type.dhall-}
− tests/parser/constructors.dhall
@@ -1,1 +0,0 @@-constructors < Left : Natural | Right : Bool >
− tests/parser/double.dhall
@@ -1,1 +0,0 @@-[ 1.1, -1.1, 1e1, 1.1e1, -1.1 ]
− tests/parser/doubleQuotedString.dhall
@@ -1,1 +0,0 @@-"ABC"
− tests/parser/environmentVariables.dhall
@@ -1,5 +0,0 @@-[ env:FOO-- -- Yes, this is legal-, env:"\"\\\a\b\f\n\r\t\v"-]
− tests/parser/escapedDoubleQuotedString.dhall
@@ -1,1 +0,0 @@-"\\\"\$\\\/\b\f\n\r\t \u2200(a : Type) \u2192 a"
− tests/parser/escapedSingleQuotedString.dhall
@@ -1,4 +0,0 @@-''-''${-'''-''
+ tests/parser/failure/doubleBoundsNeg.dhall view
@@ -0,0 +1,1 @@+-179769313486231580793728971405303415079934132710037826936173778980444968292764750946649017977587207096330286416692887910946555547851940402630657488671505820681908902000708383676273854845817711531764475730270069855571366959622842914819860834936475292719074168444365510704342711559699508093042880177904174497792.0
+ tests/parser/failure/doubleBoundsPos.dhall view
@@ -0,0 +1,1 @@+179769313486231580793728971405303415079934132710037826936173778980444968292764750946649017977587207096330286416692887910946555547851940402630657488671505820681908902000708383676273854845817711531764475730270069855571366959622842914819860834936475292719074168444365510704342711559699508093042880177904174497792.0
− tests/parser/failure/duplicateFields.dhall
@@ -1,1 +0,0 @@-{ a = 1, a = 2 }
− tests/parser/fields.dhall
@@ -1,1 +0,0 @@-({ foo = { bar = { baz = 1 } } }).foo. bar .baz
− tests/parser/forall.dhall
@@ -1,1 +0,0 @@-∀(a : Type) → forall (b : Type) -> a
− tests/parser/functionType.dhall
@@ -1,1 +0,0 @@-Bool → Bool -> Bool
− tests/parser/identifier.dhall
@@ -1,1 +0,0 @@-λ(a : Type) → λ(a : Type) → a@1
− tests/parser/ifThenElse.dhall
@@ -1,1 +0,0 @@-if True then 1 else 2
− tests/parser/importAlt.dhall
@@ -1,1 +0,0 @@-env:UNSET1 as Text ? env:UNSET2 ? missing ? env:UNSET3 ? 2
− tests/parser/interpolatedDoubleQuotedString.dhall
@@ -1,1 +0,0 @@-"ABC${Integer/show 123}"
− tests/parser/interpolatedSingleQuotedString.dhall
@@ -1,4 +0,0 @@-''-ABC-${Integer/show 123}-''
− tests/parser/label.dhall
@@ -1,2 +0,0 @@-let _ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-/ = 1-in _ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-/
− tests/parser/lambda.dhall
@@ -1,1 +0,0 @@-λ(a : Type) → \(b : Type) -> a
− tests/parser/largeExpression.dhall
@@ -1,254 +0,0 @@- λ ( xs- : List- { cores : Natural- , host : Text- , key : Text- , mandatoryFeatures : List Text- , platforms :- List- < AArch64_Linux : {}- | ARMv5tel_Linux : {}- | ARMv7l_Linux : {}- | I686_Cygwin : {}- | I686_Linux : {}- | MIPS64el_Linux : {}- | PowerPC_Linux : {}- | X86_64_Cygwin : {}- | X86_64_Darwin : {}- | X86_64_FreeBSD : {}- | X86_64_Linux : {}- | X86_64_Solaris : {}- >- , speedFactor : Natural- , supportedFeatures : List Text- , user : Optional Text- }- )-→ List/fold- { cores : Natural- , host : Text- , key : Text- , mandatoryFeatures : List Text- , platforms :- List- < AArch64_Linux : {}- | ARMv5tel_Linux : {}- | ARMv7l_Linux : {}- | I686_Cygwin : {}- | I686_Linux : {}- | MIPS64el_Linux : {}- | PowerPC_Linux : {}- | X86_64_Cygwin : {}- | X86_64_Darwin : {}- | X86_64_FreeBSD : {}- | X86_64_Linux : {}- | X86_64_Solaris : {}- >- , speedFactor : Natural- , supportedFeatures : List Text- , user : Optional Text- }- xs- Text- ( λ ( x- : { cores : Natural- , host : Text- , key : Text- , mandatoryFeatures : List Text- , platforms :- List- < AArch64_Linux : {}- | ARMv5tel_Linux : {}- | ARMv7l_Linux : {}- | I686_Cygwin : {}- | I686_Linux : {}- | MIPS64el_Linux : {}- | PowerPC_Linux : {}- | X86_64_Cygwin : {}- | X86_64_Darwin : {}- | X86_64_FreeBSD : {}- | X86_64_Linux : {}- | X86_64_Solaris : {}- >- , speedFactor : Natural- , supportedFeatures : List Text- , user : Optional Text- }- )- → λ(y : Text)- → ( Optional/fold- Text- x.user- Text- (λ(user : Text) → user ++ "@" ++ x.host ++ "")- x.host- ++ " "- ++ ( merge- { Empty = λ(_ : {}) → ""- , NonEmpty = λ(result : Text) → result- }- ( List/fold- < AArch64_Linux : {}- | ARMv5tel_Linux : {}- | ARMv7l_Linux : {}- | I686_Cygwin : {}- | I686_Linux : {}- | MIPS64el_Linux : {}- | PowerPC_Linux : {}- | X86_64_Cygwin : {}- | X86_64_Darwin : {}- | X86_64_FreeBSD : {}- | X86_64_Linux : {}- | X86_64_Solaris : {}- >- x.platforms- < Empty : {} | NonEmpty : Text >- ( λ ( element- : < AArch64_Linux : {}- | ARMv5tel_Linux : {}- | ARMv7l_Linux : {}- | I686_Cygwin : {}- | I686_Linux : {}- | MIPS64el_Linux : {}- | PowerPC_Linux : {}- | X86_64_Cygwin : {}- | X86_64_Darwin : {}- | X86_64_FreeBSD : {}- | X86_64_Linux : {}- | X86_64_Solaris : {}- >- )- → λ(status : < Empty : {} | NonEmpty : Text >)- → merge- { Empty =- λ(_ : {})- → < NonEmpty =- merge- { AArch64_Linux = λ(_ : {}) → "aarch64-linux"- , ARMv5tel_Linux =- λ(_ : {}) → "armv5tel-linux"- , ARMv7l_Linux = λ(_ : {}) → "armv7l-linux"- , I686_Cygwin = λ(_ : {}) → "i686-cygwin"- , I686_Linux = λ(_ : {}) → "i686-linux"- , MIPS64el_Linux =- λ(_ : {}) → "mips64el-linux"- , PowerPC_Linux = λ(_ : {}) → "powerpc-linux"- , X86_64_Cygwin = λ(_ : {}) → "x86_64-cygwin"- , X86_64_Darwin = λ(_ : {}) → "x86_64-darwin"- , X86_64_FreeBSD =- λ(_ : {}) → "x86_64-freebsd"- , X86_64_Linux = λ(_ : {}) → "x86_64-linux"- , X86_64_Solaris =- λ(_ : {}) → "x86_64-solaris"- }- element- | Empty : {}- >- , NonEmpty =- λ(result : Text)- → < NonEmpty =- ( merge- { AArch64_Linux =- λ(_ : {}) → "aarch64-linux"- , ARMv5tel_Linux =- λ(_ : {}) → "armv5tel-linux"- , ARMv7l_Linux =- λ(_ : {}) → "armv7l-linux"- , I686_Cygwin =- λ(_ : {}) → "i686-cygwin"- , I686_Linux =- λ(_ : {}) → "i686-linux"- , MIPS64el_Linux =- λ(_ : {}) → "mips64el-linux"- , PowerPC_Linux =- λ(_ : {}) → "powerpc-linux"- , X86_64_Cygwin =- λ(_ : {}) → "x86_64-cygwin"- , X86_64_Darwin =- λ(_ : {}) → "x86_64-darwin"- , X86_64_FreeBSD =- λ(_ : {}) → "x86_64-freebsd"- , X86_64_Linux =- λ(_ : {}) → "x86_64-linux"- , X86_64_Solaris =- λ(_ : {}) → "x86_64-solaris"- }- element- )- ++ ","- ++ result- | Empty : {}- >- }- status- : < Empty : {} | NonEmpty : Text >- )- < Empty = {=} | NonEmpty : Text >- )- : Text- )- ++ " "- ++ x.key- ++ " "- ++ Integer/show (Natural/toInteger x.cores)- ++ " "- ++ Integer/show (Natural/toInteger x.speedFactor)- ++ " "- ++ ( merge- { Empty = λ(_ : {}) → ""- , NonEmpty = λ(result : Text) → result- }- ( List/fold- Text- x.supportedFeatures- < Empty : {} | NonEmpty : Text >- ( λ(element : Text)- → λ(status : < Empty : {} | NonEmpty : Text >)- → merge- { Empty =- λ(_ : {}) → < NonEmpty = element | Empty : {} >- , NonEmpty =- λ(result : Text)- → < NonEmpty = element ++ "," ++ result- | Empty : {}- >- }- status- : < Empty : {} | NonEmpty : Text >- )- < Empty = {=} | NonEmpty : Text >- )- : Text- )- ++ " "- ++ ( merge- { Empty = λ(_ : {}) → ""- , NonEmpty = λ(result : Text) → result- }- ( List/fold- Text- x.mandatoryFeatures- < Empty : {} | NonEmpty : Text >- ( λ(element : Text)- → λ(status : < Empty : {} | NonEmpty : Text >)- → merge- { Empty =- λ(_ : {}) → < NonEmpty = element | Empty : {} >- , NonEmpty =- λ(result : Text)- → < NonEmpty = element ++ "," ++ result- | Empty : {}- >- }- status- : < Empty : {} | NonEmpty : Text >- )- < Empty = {=} | NonEmpty : Text >- )- : Text- )- ++ "\n"- )- ++ y- )- ""
− tests/parser/let.dhall
@@ -1,3 +0,0 @@- let x = 1-in let y : Integer = 2-in x
− tests/parser/lineComment.dhall
@@ -1,3 +0,0 @@--- foo--1
− tests/parser/list.dhall
@@ -1,4 +0,0 @@-[ [1, 2, 3]-, [1, 2, 3] : List Integer-, [] : List Integer-]
− tests/parser/merge.dhall
@@ -1,7 +0,0 @@- λ(x : <>)-→ { bar = merge {=} x : Integer- , foo =- merge- { Left = λ(b : Bool) → b, Right = Natural/even }- < Left = True | Right : Natural >- }
− tests/parser/natural.dhall
@@ -1,1 +0,0 @@-[ +0, +1, +01, +10 ]
− tests/parser/nestedBlockComment.dhall
@@ -1,3 +0,0 @@-{- foo {- bar -} baz -}--1
− tests/parser/operators.dhall
@@ -1,2 +0,0 @@- { foo = (False && Natural/even (+1 + +2 * +3)) || True == False != True }-∧ { bar = [ "ABC" ++ "DEF" ] # [ "GHI" ] } ⫽ { baz = True }
− tests/parser/parenthesizeUsing.dhall
@@ -1,1 +0,0 @@-https://raw.githubusercontent.com/dhall-lang/Prelude/c79c2bc3c46f129cc5b6d594ce298a381bcae92c/List/replicate using (./a.dhall sha256:16173e984d35ee3ffd8b6b79167df89480e67d1cd03ea5d0fc93689e4d928e61) sha256:b0e3ec1797b32c80c0bcb7e8254b08c7e9e35e75e6b410c7ac21477ab90167ad
− tests/parser/pathTermination.dhall
@@ -1,3 +0,0 @@--- Verify that certain punctuation marks terminate paths correctly- λ(x : ./example)-→ ./example[./example, ./example{bar = ./example<baz = ./example>, qux = ./example}, ./example]
− tests/parser/paths.dhall
@@ -1,5 +0,0 @@-[ /absolute/path-, ./relative/path-, ~/home/anchored/path-, /ipfs/QmQ8w5PLcsNz56dMvRtq54vbuPe9cNnCCUXAQp6xLc6Ccx/Prelude-]
− tests/parser/quotedLabel.dhall
@@ -1,4 +0,0 @@-{ example1 = let `let` = 1 in `let`-, example2 = let `:.` = 1 in `:.`-, example3 = let `$ref` = 1 in `$ref`-}
− tests/parser/record.dhall
@@ -1,4 +0,0 @@-{ foo = 1-, bar = +2-, baz = True-} : { foo : Integer, bar : Natural, baz : Bool }
− tests/parser/reservedPrefix.dhall
@@ -1,1 +0,0 @@-let TypeSynonym = Integer in 1 : TypeSynonym
− tests/parser/singleQuotedString.dhall
@@ -1,4 +0,0 @@-''-ABC-DEF-''
− tests/parser/sort.dhall
@@ -1,1 +0,0 @@-Sort
+ tests/parser/success/annotationsA.dhall view
@@ -0,0 +1,4 @@+{ foo = ([] : List Integer) # [1, 2, 3] # ([1, 2, 3] : List Integer)+, bar = [] : Optional Integer+, baz = [1] : Optional Integer+} : { foo : List Integer, bar : Optional Integer, baz : Optional Integer }
+ tests/parser/success/annotationsB.dhall view
@@ -0,0 +1,84 @@+[+ 26,+ [+ 8,+ {+ "foo": [+ 3,+ 7,+ [+ 3,+ 7,+ [+ 4,+ "Integer"+ ],+ [+ 4,+ null,+ [+ 15,+ 1+ ],+ [+ 15,+ 2+ ],+ [+ 15,+ 3+ ]+ ]+ ],+ [+ 4,+ null,+ [+ 15,+ 1+ ],+ [+ 15,+ 2+ ],+ [+ 15,+ 3+ ]+ ]+ ],+ "bar": [+ 5,+ "Integer"+ ],+ "baz": [+ 5,+ "Integer",+ [+ 15,+ 1+ ]+ ]+ }+ ],+ [+ 7,+ {+ "foo": [+ 0,+ "List",+ "Integer"+ ],+ "bar": [+ 0,+ "Optional",+ "Integer"+ ],+ "baz": [+ 0,+ "Optional",+ "Integer"+ ]+ }+ ]+]
+ tests/parser/success/blockCommentA.dhall view
@@ -0,0 +1,3 @@+{- foo -}++1
+ tests/parser/success/blockCommentB.dhall view
@@ -0,0 +1,4 @@+[+ 15,+ 1+]
+ tests/parser/success/builtinsA.dhall view
@@ -0,0 +1,31 @@+ λ ( x+ : { field0 : Bool+ , field1 : Optional (Optional Bool)+ , field2 : Natural+ , field3 : Integer+ , field4 : Double+ , field5 : Text+ , field6 : List (List Bool)+ }+ )+→ { field00 = Natural/fold+ , field01 = Natural/build+ , field02 = Natural/isZero+ , field03 = Natural/even+ , field04 = Natural/odd+ , field05 = Natural/toInteger+ , field06 = Natural/show+ , field07 = Integer/show+ , field08 = Double/show+ , field09 = List/build+ , field10 = List/fold+ , field11 = List/length+ , field12 = List/head+ , field13 = List/last+ , field14 = List/indexed+ , field15 = List/reverse+ , field16 = Optional/fold+ , field17 = Optional/build+ , field18 = True+ , field19 = False+ }
+ tests/parser/success/builtinsB.dhall view
@@ -0,0 +1,57 @@+[+ 1,+ "x",+ [+ 7,+ {+ "field0": "Bool",+ "field1": [+ 0,+ "Optional",+ [+ 0,+ "Optional",+ "Bool"+ ]+ ],+ "field2": "Natural",+ "field3": "Integer",+ "field4": "Double",+ "field5": "Text",+ "field6": [+ 0,+ "List",+ [+ 0,+ "List",+ "Bool"+ ]+ ]+ }+ ],+ [+ 8,+ {+ "field00": "Natural/fold",+ "field01": "Natural/build",+ "field02": "Natural/isZero",+ "field03": "Natural/even",+ "field04": "Natural/odd",+ "field05": "Natural/toInteger",+ "field06": "Natural/show",+ "field07": "Integer/show",+ "field08": "Double/show",+ "field09": "List/build",+ "field10": "List/fold",+ "field11": "List/length",+ "field12": "List/head",+ "field13": "List/last",+ "field14": "List/indexed",+ "field15": "List/reverse",+ "field16": "Optional/fold",+ "field17": "Optional/build",+ "field18": true,+ "field19": false+ }+ ]+]
+ tests/parser/success/collectionImportTypeA.dhall view
@@ -0,0 +1,3 @@+{ example0 = [] : Optional ./type.dhall+, example1 = [] : List ./type.dhall+}
+ tests/parser/success/collectionImportTypeB.dhall view
@@ -0,0 +1,21 @@+[+ 8,+ {+ "example0": [+ 5,+ [+ 24,+ 3,+ "type.dhall"+ ]+ ],+ "example1": [+ 4,+ [+ 24,+ 3,+ "type.dhall"+ ]+ ]+ }+]
+ tests/parser/success/constructorsA.dhall view
@@ -0,0 +1,1 @@+constructors < Left : Natural | Right : Bool >
+ tests/parser/success/constructorsB.dhall view
@@ -0,0 +1,10 @@+[+ 13,+ [+ 11,+ {+ "Left": "Natural",+ "Right": "Bool"+ }+ ]+]
+ tests/parser/success/doubleA.dhall view
@@ -0,0 +1,1 @@+[ 1.1, -1.1, 1e1, 1.1e1, -1.1 ]
+ tests/parser/success/doubleB.dhall view
@@ -0,0 +1,24 @@+[+ 4,+ null,+ [+ 17,+ 1.1+ ],+ [+ 17,+ -1.1+ ],+ [+ 17,+ 10.0+ ],+ [+ 17,+ 11.0+ ],+ [+ 17,+ -1.1+ ]+]
+ tests/parser/success/doubleQuotedStringA.dhall view
@@ -0,0 +1,1 @@+"ABC"
+ tests/parser/success/doubleQuotedStringB.dhall view
@@ -0,0 +1,4 @@+[+ 18,+ "ABC"+]
+ tests/parser/success/environmentVariablesA.dhall view
@@ -0,0 +1,5 @@+[ env:FOO++ -- Yes, this is legal+, env:"\"\\\a\b\f\n\r\t\v"+]
+ tests/parser/success/environmentVariablesB.dhall view
@@ -0,0 +1,14 @@+[+ 4,+ null,+ [+ 24,+ 6,+ "FOO"+ ],+ [+ 24,+ 6,+ "\\\"\\\\\\a\\b\\f\\n\\r\\t\\v"+ ]+]
+ tests/parser/success/escapedDoubleQuotedStringA.dhall view
@@ -0,0 +1,1 @@+"\\\"\$\\\/\b\f\n\r\t \u2200(a : Type) \u2192 a"
+ tests/parser/success/escapedDoubleQuotedStringB.dhall view
@@ -0,0 +1,4 @@+[+ 18,+ "\\\"$\\/\b\f\n\r\t ∀(a : Type) → a"+]
+ tests/parser/success/escapedSingleQuotedStringA.dhall view
@@ -0,0 +1,4 @@+''+''${+'''+''
+ tests/parser/success/escapedSingleQuotedStringB.dhall view
@@ -0,0 +1,4 @@+[+ 18,+ "${\n''\n"+]
+ tests/parser/success/fieldsA.dhall view
@@ -0,0 +1,1 @@+({ foo = { bar = { baz = 1 } } }).foo. bar .baz
+ tests/parser/success/fieldsB.dhall view
@@ -0,0 +1,31 @@+[+ 9,+ [+ 9,+ [+ 9,+ [+ 8,+ {+ "foo": [+ 8,+ {+ "bar": [+ 8,+ {+ "baz": [+ 15,+ 1+ ]+ }+ ]+ }+ ]+ }+ ],+ "foo"+ ],+ "bar"+ ],+ "baz"+]
+ tests/parser/success/forallA.dhall view
@@ -0,0 +1,1 @@+∀(a : Type) → forall (b : Type) -> a
+ tests/parser/success/forallB.dhall view
@@ -0,0 +1,11 @@+[+ 2,+ "a",+ "Type",+ [+ 2,+ "b",+ "Type",+ "a"+ ]+]
+ tests/parser/success/functionTypeA.dhall view
@@ -0,0 +1,1 @@+Bool → Bool -> Bool
+ tests/parser/success/functionTypeB.dhall view
@@ -0,0 +1,9 @@+[+ 2,+ "Bool",+ [+ 2,+ "Bool",+ "Bool"+ ]+]
+ tests/parser/success/identifierA.dhall view
@@ -0,0 +1,1 @@+λ(a : Type) → λ(a : Type) → a@1
+ tests/parser/success/identifierB.dhall view
@@ -0,0 +1,14 @@+[+ 1,+ "a",+ "Type",+ [+ 1,+ "a",+ "Type",+ [+ "a",+ 1+ ]+ ]+]
+ tests/parser/success/ifThenElseA.dhall view
@@ -0,0 +1,1 @@+if True then 1 else 2
+ tests/parser/success/ifThenElseB.dhall view
@@ -0,0 +1,12 @@+[+ 14,+ true,+ [+ 15,+ 1+ ],+ [+ 15,+ 2+ ]+]
+ tests/parser/success/importAltA.dhall view
@@ -0,0 +1,1 @@+env:UNSET1 as Text ? env:UNSET2 ? missing ? env:UNSET3 ? 2
+ tests/parser/success/importAltB.dhall view
@@ -0,0 +1,39 @@+[+ 3,+ 11,+ [+ 3,+ 11,+ [+ 3,+ 11,+ [+ 3,+ 11,+ [+ 24,+ 6,+ "UNSET1"+ ],+ [+ 24,+ 6,+ "UNSET2"+ ]+ ],+ [+ 24,+ 7+ ]+ ],+ [+ 24,+ 6,+ "UNSET3"+ ]+ ],+ [+ 15,+ 2+ ]+]
+ tests/parser/success/interpolatedDoubleQuotedStringA.dhall view
@@ -0,0 +1,1 @@+"ABC${Integer/show 123}"
+ tests/parser/success/interpolatedDoubleQuotedStringB.dhall view
@@ -0,0 +1,13 @@+[+ 18,+ "ABC",+ [+ 0,+ "Integer/show",+ [+ 15,+ 123+ ]+ ],+ ""+]
+ tests/parser/success/interpolatedSingleQuotedStringA.dhall view
@@ -0,0 +1,4 @@+''+ABC+${Integer/show 123}+''
+ tests/parser/success/interpolatedSingleQuotedStringB.dhall view
@@ -0,0 +1,13 @@+[+ 18,+ "ABC\n",+ [+ 0,+ "Integer/show",+ [+ 15,+ 123+ ]+ ],+ "\n"+]
+ tests/parser/success/labelA.dhall view
@@ -0,0 +1,2 @@+let _ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-/ = 1+in _ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-/
+ tests/parser/success/labelB.dhall view
@@ -0,0 +1,10 @@+[+ 25,+ "_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-/",+ null,+ [+ 15,+ 1+ ],+ "_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-/"+]
+ tests/parser/success/lambdaA.dhall view
@@ -0,0 +1,1 @@+λ(a : Type) → \(b : Type) -> a
+ tests/parser/success/lambdaB.dhall view
@@ -0,0 +1,11 @@+[+ 1,+ "a",+ "Type",+ [+ 1,+ "b",+ "Type",+ "a"+ ]+]
+ tests/parser/success/largeExpressionA.dhall view
@@ -0,0 +1,254 @@+ λ ( xs+ : List+ { cores : Natural+ , host : Text+ , key : Text+ , mandatoryFeatures : List Text+ , platforms :+ List+ < AArch64_Linux : {}+ | ARMv5tel_Linux : {}+ | ARMv7l_Linux : {}+ | I686_Cygwin : {}+ | I686_Linux : {}+ | MIPS64el_Linux : {}+ | PowerPC_Linux : {}+ | X86_64_Cygwin : {}+ | X86_64_Darwin : {}+ | X86_64_FreeBSD : {}+ | X86_64_Linux : {}+ | X86_64_Solaris : {}+ >+ , speedFactor : Natural+ , supportedFeatures : List Text+ , user : Optional Text+ }+ )+→ List/fold+ { cores : Natural+ , host : Text+ , key : Text+ , mandatoryFeatures : List Text+ , platforms :+ List+ < AArch64_Linux : {}+ | ARMv5tel_Linux : {}+ | ARMv7l_Linux : {}+ | I686_Cygwin : {}+ | I686_Linux : {}+ | MIPS64el_Linux : {}+ | PowerPC_Linux : {}+ | X86_64_Cygwin : {}+ | X86_64_Darwin : {}+ | X86_64_FreeBSD : {}+ | X86_64_Linux : {}+ | X86_64_Solaris : {}+ >+ , speedFactor : Natural+ , supportedFeatures : List Text+ , user : Optional Text+ }+ xs+ Text+ ( λ ( x+ : { cores : Natural+ , host : Text+ , key : Text+ , mandatoryFeatures : List Text+ , platforms :+ List+ < AArch64_Linux : {}+ | ARMv5tel_Linux : {}+ | ARMv7l_Linux : {}+ | I686_Cygwin : {}+ | I686_Linux : {}+ | MIPS64el_Linux : {}+ | PowerPC_Linux : {}+ | X86_64_Cygwin : {}+ | X86_64_Darwin : {}+ | X86_64_FreeBSD : {}+ | X86_64_Linux : {}+ | X86_64_Solaris : {}+ >+ , speedFactor : Natural+ , supportedFeatures : List Text+ , user : Optional Text+ }+ )+ → λ(y : Text)+ → ( Optional/fold+ Text+ x.user+ Text+ (λ(user : Text) → user ++ "@" ++ x.host ++ "")+ x.host+ ++ " "+ ++ ( merge+ { Empty = λ(_ : {}) → ""+ , NonEmpty = λ(result : Text) → result+ }+ ( List/fold+ < AArch64_Linux : {}+ | ARMv5tel_Linux : {}+ | ARMv7l_Linux : {}+ | I686_Cygwin : {}+ | I686_Linux : {}+ | MIPS64el_Linux : {}+ | PowerPC_Linux : {}+ | X86_64_Cygwin : {}+ | X86_64_Darwin : {}+ | X86_64_FreeBSD : {}+ | X86_64_Linux : {}+ | X86_64_Solaris : {}+ >+ x.platforms+ < Empty : {} | NonEmpty : Text >+ ( λ ( element+ : < AArch64_Linux : {}+ | ARMv5tel_Linux : {}+ | ARMv7l_Linux : {}+ | I686_Cygwin : {}+ | I686_Linux : {}+ | MIPS64el_Linux : {}+ | PowerPC_Linux : {}+ | X86_64_Cygwin : {}+ | X86_64_Darwin : {}+ | X86_64_FreeBSD : {}+ | X86_64_Linux : {}+ | X86_64_Solaris : {}+ >+ )+ → λ(status : < Empty : {} | NonEmpty : Text >)+ → merge+ { Empty =+ λ(_ : {})+ → < NonEmpty =+ merge+ { AArch64_Linux = λ(_ : {}) → "aarch64-linux"+ , ARMv5tel_Linux =+ λ(_ : {}) → "armv5tel-linux"+ , ARMv7l_Linux = λ(_ : {}) → "armv7l-linux"+ , I686_Cygwin = λ(_ : {}) → "i686-cygwin"+ , I686_Linux = λ(_ : {}) → "i686-linux"+ , MIPS64el_Linux =+ λ(_ : {}) → "mips64el-linux"+ , PowerPC_Linux = λ(_ : {}) → "powerpc-linux"+ , X86_64_Cygwin = λ(_ : {}) → "x86_64-cygwin"+ , X86_64_Darwin = λ(_ : {}) → "x86_64-darwin"+ , X86_64_FreeBSD =+ λ(_ : {}) → "x86_64-freebsd"+ , X86_64_Linux = λ(_ : {}) → "x86_64-linux"+ , X86_64_Solaris =+ λ(_ : {}) → "x86_64-solaris"+ }+ element+ | Empty : {}+ >+ , NonEmpty =+ λ(result : Text)+ → < NonEmpty =+ ( merge+ { AArch64_Linux =+ λ(_ : {}) → "aarch64-linux"+ , ARMv5tel_Linux =+ λ(_ : {}) → "armv5tel-linux"+ , ARMv7l_Linux =+ λ(_ : {}) → "armv7l-linux"+ , I686_Cygwin =+ λ(_ : {}) → "i686-cygwin"+ , I686_Linux =+ λ(_ : {}) → "i686-linux"+ , MIPS64el_Linux =+ λ(_ : {}) → "mips64el-linux"+ , PowerPC_Linux =+ λ(_ : {}) → "powerpc-linux"+ , X86_64_Cygwin =+ λ(_ : {}) → "x86_64-cygwin"+ , X86_64_Darwin =+ λ(_ : {}) → "x86_64-darwin"+ , X86_64_FreeBSD =+ λ(_ : {}) → "x86_64-freebsd"+ , X86_64_Linux =+ λ(_ : {}) → "x86_64-linux"+ , X86_64_Solaris =+ λ(_ : {}) → "x86_64-solaris"+ }+ element+ )+ ++ ","+ ++ result+ | Empty : {}+ >+ }+ status+ : < Empty : {} | NonEmpty : Text >+ )+ < Empty = {=} | NonEmpty : Text >+ )+ : Text+ )+ ++ " "+ ++ x.key+ ++ " "+ ++ Integer/show (Natural/toInteger x.cores)+ ++ " "+ ++ Integer/show (Natural/toInteger x.speedFactor)+ ++ " "+ ++ ( merge+ { Empty = λ(_ : {}) → ""+ , NonEmpty = λ(result : Text) → result+ }+ ( List/fold+ Text+ x.supportedFeatures+ < Empty : {} | NonEmpty : Text >+ ( λ(element : Text)+ → λ(status : < Empty : {} | NonEmpty : Text >)+ → merge+ { Empty =+ λ(_ : {}) → < NonEmpty = element | Empty : {} >+ , NonEmpty =+ λ(result : Text)+ → < NonEmpty = element ++ "," ++ result+ | Empty : {}+ >+ }+ status+ : < Empty : {} | NonEmpty : Text >+ )+ < Empty = {=} | NonEmpty : Text >+ )+ : Text+ )+ ++ " "+ ++ ( merge+ { Empty = λ(_ : {}) → ""+ , NonEmpty = λ(result : Text) → result+ }+ ( List/fold+ Text+ x.mandatoryFeatures+ < Empty : {} | NonEmpty : Text >+ ( λ(element : Text)+ → λ(status : < Empty : {} | NonEmpty : Text >)+ → merge+ { Empty =+ λ(_ : {}) → < NonEmpty = element | Empty : {} >+ , NonEmpty =+ λ(result : Text)+ → < NonEmpty = element ++ "," ++ result+ | Empty : {}+ >+ }+ status+ : < Empty : {} | NonEmpty : Text >+ )+ < Empty = {=} | NonEmpty : Text >+ )+ : Text+ )+ ++ "\n"+ )+ ++ y+ )+ ""
+ tests/parser/success/largeExpressionB.dhall view
@@ -0,0 +1,1303 @@+[+ 1,+ "xs",+ [+ 0,+ "List",+ [+ 7,+ {+ "cores": "Natural",+ "host": "Text",+ "key": "Text",+ "mandatoryFeatures": [+ 0,+ "List",+ "Text"+ ],+ "platforms": [+ 0,+ "List",+ [+ 11,+ {+ "AArch64_Linux": [+ 7,+ {}+ ],+ "ARMv5tel_Linux": [+ 7,+ {}+ ],+ "ARMv7l_Linux": [+ 7,+ {}+ ],+ "I686_Cygwin": [+ 7,+ {}+ ],+ "I686_Linux": [+ 7,+ {}+ ],+ "MIPS64el_Linux": [+ 7,+ {}+ ],+ "PowerPC_Linux": [+ 7,+ {}+ ],+ "X86_64_Cygwin": [+ 7,+ {}+ ],+ "X86_64_Darwin": [+ 7,+ {}+ ],+ "X86_64_FreeBSD": [+ 7,+ {}+ ],+ "X86_64_Linux": [+ 7,+ {}+ ],+ "X86_64_Solaris": [+ 7,+ {}+ ]+ }+ ]+ ],+ "speedFactor": "Natural",+ "supportedFeatures": [+ 0,+ "List",+ "Text"+ ],+ "user": [+ 0,+ "Optional",+ "Text"+ ]+ }+ ]+ ],+ [+ 0,+ [+ 0,+ [+ 0,+ [+ 0,+ [+ 0,+ "List/fold",+ [+ 7,+ {+ "cores": "Natural",+ "host": "Text",+ "key": "Text",+ "mandatoryFeatures": [+ 0,+ "List",+ "Text"+ ],+ "platforms": [+ 0,+ "List",+ [+ 11,+ {+ "AArch64_Linux": [+ 7,+ {}+ ],+ "ARMv5tel_Linux": [+ 7,+ {}+ ],+ "ARMv7l_Linux": [+ 7,+ {}+ ],+ "I686_Cygwin": [+ 7,+ {}+ ],+ "I686_Linux": [+ 7,+ {}+ ],+ "MIPS64el_Linux": [+ 7,+ {}+ ],+ "PowerPC_Linux": [+ 7,+ {}+ ],+ "X86_64_Cygwin": [+ 7,+ {}+ ],+ "X86_64_Darwin": [+ 7,+ {}+ ],+ "X86_64_FreeBSD": [+ 7,+ {}+ ],+ "X86_64_Linux": [+ 7,+ {}+ ],+ "X86_64_Solaris": [+ 7,+ {}+ ]+ }+ ]+ ],+ "speedFactor": "Natural",+ "supportedFeatures": [+ 0,+ "List",+ "Text"+ ],+ "user": [+ 0,+ "Optional",+ "Text"+ ]+ }+ ]+ ],+ "xs"+ ],+ "Text"+ ],+ [+ 1,+ "x",+ [+ 7,+ {+ "cores": "Natural",+ "host": "Text",+ "key": "Text",+ "mandatoryFeatures": [+ 0,+ "List",+ "Text"+ ],+ "platforms": [+ 0,+ "List",+ [+ 11,+ {+ "AArch64_Linux": [+ 7,+ {}+ ],+ "ARMv5tel_Linux": [+ 7,+ {}+ ],+ "ARMv7l_Linux": [+ 7,+ {}+ ],+ "I686_Cygwin": [+ 7,+ {}+ ],+ "I686_Linux": [+ 7,+ {}+ ],+ "MIPS64el_Linux": [+ 7,+ {}+ ],+ "PowerPC_Linux": [+ 7,+ {}+ ],+ "X86_64_Cygwin": [+ 7,+ {}+ ],+ "X86_64_Darwin": [+ 7,+ {}+ ],+ "X86_64_FreeBSD": [+ 7,+ {}+ ],+ "X86_64_Linux": [+ 7,+ {}+ ],+ "X86_64_Solaris": [+ 7,+ {}+ ]+ }+ ]+ ],+ "speedFactor": "Natural",+ "supportedFeatures": [+ 0,+ "List",+ "Text"+ ],+ "user": [+ 0,+ "Optional",+ "Text"+ ]+ }+ ],+ [+ 1,+ "y",+ "Text",+ [+ 3,+ 6,+ [+ 3,+ 6,+ [+ 3,+ 6,+ [+ 3,+ 6,+ [+ 3,+ 6,+ [+ 3,+ 6,+ [+ 3,+ 6,+ [+ 3,+ 6,+ [+ 3,+ 6,+ [+ 3,+ 6,+ [+ 3,+ 6,+ [+ 3,+ 6,+ [+ 3,+ 6,+ [+ 3,+ 6,+ [+ 0,+ [+ 0,+ [+ 0,+ [+ 0,+ [+ 0,+ "Optional/fold",+ "Text"+ ],+ [+ 9,+ "x",+ "user"+ ]+ ],+ "Text"+ ],+ [+ 1,+ "user",+ "Text",+ [+ 3,+ 6,+ [+ 3,+ 6,+ [+ 3,+ 6,+ "user",+ [+ 18,+ "@"+ ]+ ],+ [+ 9,+ "x",+ "host"+ ]+ ],+ [+ 18,+ ""+ ]+ ]+ ]+ ],+ [+ 9,+ "x",+ "host"+ ]+ ],+ [+ 18,+ " "+ ]+ ],+ [+ 6,+ [+ 8,+ {+ "Empty": [+ 1,+ [+ 7,+ {}+ ],+ [+ 18,+ ""+ ]+ ],+ "NonEmpty": [+ 1,+ "result",+ "Text",+ "result"+ ]+ }+ ],+ [+ 0,+ [+ 0,+ [+ 0,+ [+ 0,+ [+ 0,+ "List/fold",+ [+ 11,+ {+ "AArch64_Linux": [+ 7,+ {}+ ],+ "ARMv5tel_Linux": [+ 7,+ {}+ ],+ "ARMv7l_Linux": [+ 7,+ {}+ ],+ "I686_Cygwin": [+ 7,+ {}+ ],+ "I686_Linux": [+ 7,+ {}+ ],+ "MIPS64el_Linux": [+ 7,+ {}+ ],+ "PowerPC_Linux": [+ 7,+ {}+ ],+ "X86_64_Cygwin": [+ 7,+ {}+ ],+ "X86_64_Darwin": [+ 7,+ {}+ ],+ "X86_64_FreeBSD": [+ 7,+ {}+ ],+ "X86_64_Linux": [+ 7,+ {}+ ],+ "X86_64_Solaris": [+ 7,+ {}+ ]+ }+ ]+ ],+ [+ 9,+ "x",+ "platforms"+ ]+ ],+ [+ 11,+ {+ "Empty": [+ 7,+ {}+ ],+ "NonEmpty": "Text"+ }+ ]+ ],+ [+ 1,+ "element",+ [+ 11,+ {+ "AArch64_Linux": [+ 7,+ {}+ ],+ "ARMv5tel_Linux": [+ 7,+ {}+ ],+ "ARMv7l_Linux": [+ 7,+ {}+ ],+ "I686_Cygwin": [+ 7,+ {}+ ],+ "I686_Linux": [+ 7,+ {}+ ],+ "MIPS64el_Linux": [+ 7,+ {}+ ],+ "PowerPC_Linux": [+ 7,+ {}+ ],+ "X86_64_Cygwin": [+ 7,+ {}+ ],+ "X86_64_Darwin": [+ 7,+ {}+ ],+ "X86_64_FreeBSD": [+ 7,+ {}+ ],+ "X86_64_Linux": [+ 7,+ {}+ ],+ "X86_64_Solaris": [+ 7,+ {}+ ]+ }+ ],+ [+ 1,+ "status",+ [+ 11,+ {+ "Empty": [+ 7,+ {}+ ],+ "NonEmpty": "Text"+ }+ ],+ [+ 6,+ [+ 8,+ {+ "Empty": [+ 1,+ [+ 7,+ {}+ ],+ [+ 12,+ "NonEmpty",+ [+ 6,+ [+ 8,+ {+ "AArch64_Linux": [+ 1,+ [+ 7,+ {}+ ],+ [+ 18,+ "aarch64-linux"+ ]+ ],+ "ARMv5tel_Linux": [+ 1,+ [+ 7,+ {}+ ],+ [+ 18,+ "armv5tel-linux"+ ]+ ],+ "ARMv7l_Linux": [+ 1,+ [+ 7,+ {}+ ],+ [+ 18,+ "armv7l-linux"+ ]+ ],+ "I686_Cygwin": [+ 1,+ [+ 7,+ {}+ ],+ [+ 18,+ "i686-cygwin"+ ]+ ],+ "I686_Linux": [+ 1,+ [+ 7,+ {}+ ],+ [+ 18,+ "i686-linux"+ ]+ ],+ "MIPS64el_Linux": [+ 1,+ [+ 7,+ {}+ ],+ [+ 18,+ "mips64el-linux"+ ]+ ],+ "PowerPC_Linux": [+ 1,+ [+ 7,+ {}+ ],+ [+ 18,+ "powerpc-linux"+ ]+ ],+ "X86_64_Cygwin": [+ 1,+ [+ 7,+ {}+ ],+ [+ 18,+ "x86_64-cygwin"+ ]+ ],+ "X86_64_Darwin": [+ 1,+ [+ 7,+ {}+ ],+ [+ 18,+ "x86_64-darwin"+ ]+ ],+ "X86_64_FreeBSD": [+ 1,+ [+ 7,+ {}+ ],+ [+ 18,+ "x86_64-freebsd"+ ]+ ],+ "X86_64_Linux": [+ 1,+ [+ 7,+ {}+ ],+ [+ 18,+ "x86_64-linux"+ ]+ ],+ "X86_64_Solaris": [+ 1,+ [+ 7,+ {}+ ],+ [+ 18,+ "x86_64-solaris"+ ]+ ]+ }+ ],+ "element"+ ],+ {+ "Empty": [+ 7,+ {}+ ]+ }+ ]+ ],+ "NonEmpty": [+ 1,+ "result",+ "Text",+ [+ 12,+ "NonEmpty",+ [+ 3,+ 6,+ [+ 3,+ 6,+ [+ 6,+ [+ 8,+ {+ "AArch64_Linux": [+ 1,+ [+ 7,+ {}+ ],+ [+ 18,+ "aarch64-linux"+ ]+ ],+ "ARMv5tel_Linux": [+ 1,+ [+ 7,+ {}+ ],+ [+ 18,+ "armv5tel-linux"+ ]+ ],+ "ARMv7l_Linux": [+ 1,+ [+ 7,+ {}+ ],+ [+ 18,+ "armv7l-linux"+ ]+ ],+ "I686_Cygwin": [+ 1,+ [+ 7,+ {}+ ],+ [+ 18,+ "i686-cygwin"+ ]+ ],+ "I686_Linux": [+ 1,+ [+ 7,+ {}+ ],+ [+ 18,+ "i686-linux"+ ]+ ],+ "MIPS64el_Linux": [+ 1,+ [+ 7,+ {}+ ],+ [+ 18,+ "mips64el-linux"+ ]+ ],+ "PowerPC_Linux": [+ 1,+ [+ 7,+ {}+ ],+ [+ 18,+ "powerpc-linux"+ ]+ ],+ "X86_64_Cygwin": [+ 1,+ [+ 7,+ {}+ ],+ [+ 18,+ "x86_64-cygwin"+ ]+ ],+ "X86_64_Darwin": [+ 1,+ [+ 7,+ {}+ ],+ [+ 18,+ "x86_64-darwin"+ ]+ ],+ "X86_64_FreeBSD": [+ 1,+ [+ 7,+ {}+ ],+ [+ 18,+ "x86_64-freebsd"+ ]+ ],+ "X86_64_Linux": [+ 1,+ [+ 7,+ {}+ ],+ [+ 18,+ "x86_64-linux"+ ]+ ],+ "X86_64_Solaris": [+ 1,+ [+ 7,+ {}+ ],+ [+ 18,+ "x86_64-solaris"+ ]+ ]+ }+ ],+ "element"+ ],+ [+ 18,+ ","+ ]+ ],+ "result"+ ],+ {+ "Empty": [+ 7,+ {}+ ]+ }+ ]+ ]+ }+ ],+ "status",+ [+ 11,+ {+ "Empty": [+ 7,+ {}+ ],+ "NonEmpty": "Text"+ }+ ]+ ]+ ]+ ]+ ],+ [+ 12,+ "Empty",+ [+ 8,+ {}+ ],+ {+ "NonEmpty": "Text"+ }+ ]+ ],+ "Text"+ ]+ ],+ [+ 18,+ " "+ ]+ ],+ [+ 9,+ "x",+ "key"+ ]+ ],+ [+ 18,+ " "+ ]+ ],+ [+ 0,+ "Integer/show",+ [+ 0,+ "Natural/toInteger",+ [+ 9,+ "x",+ "cores"+ ]+ ]+ ]+ ],+ [+ 18,+ " "+ ]+ ],+ [+ 0,+ "Integer/show",+ [+ 0,+ "Natural/toInteger",+ [+ 9,+ "x",+ "speedFactor"+ ]+ ]+ ]+ ],+ [+ 18,+ " "+ ]+ ],+ [+ 6,+ [+ 8,+ {+ "Empty": [+ 1,+ [+ 7,+ {}+ ],+ [+ 18,+ ""+ ]+ ],+ "NonEmpty": [+ 1,+ "result",+ "Text",+ "result"+ ]+ }+ ],+ [+ 0,+ [+ 0,+ [+ 0,+ [+ 0,+ [+ 0,+ "List/fold",+ "Text"+ ],+ [+ 9,+ "x",+ "supportedFeatures"+ ]+ ],+ [+ 11,+ {+ "Empty": [+ 7,+ {}+ ],+ "NonEmpty": "Text"+ }+ ]+ ],+ [+ 1,+ "element",+ "Text",+ [+ 1,+ "status",+ [+ 11,+ {+ "Empty": [+ 7,+ {}+ ],+ "NonEmpty": "Text"+ }+ ],+ [+ 6,+ [+ 8,+ {+ "Empty": [+ 1,+ [+ 7,+ {}+ ],+ [+ 12,+ "NonEmpty",+ "element",+ {+ "Empty": [+ 7,+ {}+ ]+ }+ ]+ ],+ "NonEmpty": [+ 1,+ "result",+ "Text",+ [+ 12,+ "NonEmpty",+ [+ 3,+ 6,+ [+ 3,+ 6,+ "element",+ [+ 18,+ ","+ ]+ ],+ "result"+ ],+ {+ "Empty": [+ 7,+ {}+ ]+ }+ ]+ ]+ }+ ],+ "status",+ [+ 11,+ {+ "Empty": [+ 7,+ {}+ ],+ "NonEmpty": "Text"+ }+ ]+ ]+ ]+ ]+ ],+ [+ 12,+ "Empty",+ [+ 8,+ {}+ ],+ {+ "NonEmpty": "Text"+ }+ ]+ ],+ "Text"+ ]+ ],+ [+ 18,+ " "+ ]+ ],+ [+ 6,+ [+ 8,+ {+ "Empty": [+ 1,+ [+ 7,+ {}+ ],+ [+ 18,+ ""+ ]+ ],+ "NonEmpty": [+ 1,+ "result",+ "Text",+ "result"+ ]+ }+ ],+ [+ 0,+ [+ 0,+ [+ 0,+ [+ 0,+ [+ 0,+ "List/fold",+ "Text"+ ],+ [+ 9,+ "x",+ "mandatoryFeatures"+ ]+ ],+ [+ 11,+ {+ "Empty": [+ 7,+ {}+ ],+ "NonEmpty": "Text"+ }+ ]+ ],+ [+ 1,+ "element",+ "Text",+ [+ 1,+ "status",+ [+ 11,+ {+ "Empty": [+ 7,+ {}+ ],+ "NonEmpty": "Text"+ }+ ],+ [+ 6,+ [+ 8,+ {+ "Empty": [+ 1,+ [+ 7,+ {}+ ],+ [+ 12,+ "NonEmpty",+ "element",+ {+ "Empty": [+ 7,+ {}+ ]+ }+ ]+ ],+ "NonEmpty": [+ 1,+ "result",+ "Text",+ [+ 12,+ "NonEmpty",+ [+ 3,+ 6,+ [+ 3,+ 6,+ "element",+ [+ 18,+ ","+ ]+ ],+ "result"+ ],+ {+ "Empty": [+ 7,+ {}+ ]+ }+ ]+ ]+ }+ ],+ "status",+ [+ 11,+ {+ "Empty": [+ 7,+ {}+ ],+ "NonEmpty": "Text"+ }+ ]+ ]+ ]+ ]+ ],+ [+ 12,+ "Empty",+ [+ 8,+ {}+ ],+ {+ "NonEmpty": "Text"+ }+ ]+ ],+ "Text"+ ]+ ],+ [+ 18,+ "\n"+ ]+ ],+ "y"+ ]+ ]+ ]+ ],+ [+ 18,+ ""+ ]+ ]+]
+ tests/parser/success/letA.dhall view
@@ -0,0 +1,3 @@+ let x = 1+in let y : Integer = 2+in x
+ tests/parser/success/letB.dhall view
@@ -0,0 +1,19 @@+[+ 25,+ "x",+ null,+ [+ 15,+ 1+ ],+ [+ 25,+ "y",+ "Integer",+ [+ 15,+ 2+ ],+ "x"+ ]+]
+ tests/parser/success/lineCommentA.dhall view
@@ -0,0 +1,3 @@+-- foo++1
+ tests/parser/success/lineCommentB.dhall view
@@ -0,0 +1,4 @@+[+ 15,+ 1+]
+ tests/parser/success/listA.dhall view
@@ -0,0 +1,4 @@+[ [1, 2, 3]+, [1, 2, 3] : List Integer+, [] : List Integer+]
+ tests/parser/success/listB.dhall view
@@ -0,0 +1,40 @@+[+ 4,+ null,+ [+ 4,+ null,+ [+ 15,+ 1+ ],+ [+ 15,+ 2+ ],+ [+ 15,+ 3+ ]+ ],+ [+ 4,+ null,+ [+ 15,+ 1+ ],+ [+ 15,+ 2+ ],+ [+ 15,+ 3+ ]+ ],+ [+ 4,+ "Integer"+ ]+]
+ tests/parser/success/mergeA.dhall view
@@ -0,0 +1,7 @@+ λ(x : <>)+→ { bar = merge {=} x : Integer+ , foo =+ merge+ { Left = λ(b : Bool) → b, Right = Natural/even }+ < Left = True | Right : Natural >+ }
+ tests/parser/success/mergeB.dhall view
@@ -0,0 +1,45 @@+[+ 1,+ "x",+ [+ 11,+ {}+ ],+ [+ 8,+ {+ "bar": [+ 6,+ [+ 8,+ {}+ ],+ "x",+ "Integer"+ ],+ "foo": [+ 6,+ [+ 8,+ {+ "Left": [+ 1,+ "b",+ "Bool",+ "b"+ ],+ "Right": "Natural/even"+ }+ ],+ [+ 12,+ "Left",+ true,+ {+ "Right": "Natural"+ }+ ]+ ]+ }+ ]+]
+ tests/parser/success/multiletA.dhall view
@@ -0,0 +1,3 @@+let a = 1+let b = 2+in a + b
+ tests/parser/success/multiletB.dhall view
@@ -0,0 +1,21 @@+[+ 25,+ "a",+ null,+ [+ 15,+ 1+ ],+ "b",+ null,+ [+ 15,+ 2+ ],+ [+ 3,+ 4,+ "a",+ "b"+ ]+]
+ tests/parser/success/naturalA.dhall view
@@ -0,0 +1,1 @@+[ +0, +1, +01, +10 ]
+ tests/parser/success/naturalB.dhall view
@@ -0,0 +1,20 @@+[+ 4,+ null,+ [+ 16,+ 0+ ],+ [+ 16,+ 1+ ],+ [+ 16,+ 1+ ],+ [+ 16,+ 10+ ]+]
+ tests/parser/success/nestedBlockCommentA.dhall view
@@ -0,0 +1,3 @@+{- foo {- bar -} baz -}++1
+ tests/parser/success/nestedBlockCommentB.dhall view
@@ -0,0 +1,4 @@+[+ 15,+ 1+]
+ tests/parser/success/operatorsA.dhall view
@@ -0,0 +1,2 @@+ { foo = (False && Natural/even (+1 + +2 * +3)) || True == False != True }+∧ { bar = [ "ABC" ++ "DEF" ] # [ "GHI" ] } ⫽ { baz = True }
+ tests/parser/success/operatorsB.dhall view
@@ -0,0 +1,96 @@+[+ 3,+ 8,+ [+ 8,+ {+ "foo": [+ 3,+ 0,+ [+ 3,+ 1,+ false,+ [+ 0,+ "Natural/even",+ [+ 3,+ 4,+ [+ 16,+ 1+ ],+ [+ 3,+ 5,+ [+ 16,+ 2+ ],+ [+ 16,+ 3+ ]+ ]+ ]+ ]+ ],+ [+ 3,+ 3,+ [+ 3,+ 2,+ true,+ false+ ],+ true+ ]+ ]+ }+ ],+ [+ 3,+ 9,+ [+ 8,+ {+ "bar": [+ 3,+ 7,+ [+ 4,+ null,+ [+ 3,+ 6,+ [+ 18,+ "ABC"+ ],+ [+ 18,+ "DEF"+ ]+ ]+ ],+ [+ 4,+ null,+ [+ 18,+ "GHI"+ ]+ ]+ ]+ }+ ],+ [+ 8,+ {+ "baz": true+ }+ ]+ ]+]
+ tests/parser/success/parenthesizeUsingA.dhall view
@@ -0,0 +1,1 @@+https://raw.githubusercontent.com/dhall-lang/Prelude/c79c2bc3c46f129cc5b6d594ce298a381bcae92c/List/replicate using (./a.dhall sha256:16173e984d35ee3ffd8b6b79167df89480e67d1cd03ea5d0fc93689e4d928e61) sha256:b0e3ec1797b32c80c0bcb7e8254b08c7e9e35e75e6b410c7ac21477ab90167ad
+ tests/parser/success/parenthesizeUsingB.dhall view
@@ -0,0 +1,12 @@+[+ 24,+ 1,+ "raw.githubusercontent.com",+ "dhall-lang",+ "Prelude",+ "c79c2bc3c46f129cc5b6d594ce298a381bcae92c",+ "List",+ "replicate",+ null,+ null+]
+ tests/parser/success/pathTerminationA.dhall view
@@ -0,0 +1,3 @@+-- Verify that certain punctuation marks terminate paths correctly+ λ(x : ./example)+→ ./example[./example, ./example{bar = ./example<baz = ./example>, qux = ./example}, ./example]
+ tests/parser/success/pathTerminationB.dhall view
@@ -0,0 +1,67 @@+[+ 1,+ "x",+ [+ 24,+ 3,+ "example"+ ],+ [+ 0,+ [+ 24,+ 3,+ "example"+ ],+ [+ 4,+ null,+ [+ 24,+ 3,+ "example"+ ],+ [+ 0,+ [+ 24,+ 3,+ "example"+ ],+ [+ 8,+ {+ "bar": [+ 0,+ [+ 24,+ 3,+ "example"+ ],+ [+ 12,+ "baz",+ [+ 24,+ 3,+ "example"+ ],+ {}+ ]+ ],+ "qux": [+ 24,+ 3,+ "example"+ ]+ }+ ]+ ],+ [+ 24,+ 3,+ "example"+ ]+ ]+ ]+]
+ tests/parser/success/pathsA.dhall view
@@ -0,0 +1,5 @@+[ /absolute/path+, ./relative/path+, ~/home/anchored/path+, /ipfs/QmQ8w5PLcsNz56dMvRtq54vbuPe9cNnCCUXAQp6xLc6Ccx/Prelude+]
+ tests/parser/success/pathsB.dhall view
@@ -0,0 +1,30 @@+[+ 4,+ null,+ [+ 24,+ 2,+ "absolute",+ "path"+ ],+ [+ 24,+ 3,+ "relative",+ "path"+ ],+ [+ 24,+ 5,+ "home",+ "anchored",+ "path"+ ],+ [+ 24,+ 2,+ "ipfs",+ "QmQ8w5PLcsNz56dMvRtq54vbuPe9cNnCCUXAQp6xLc6Ccx",+ "Prelude"+ ]+]
+ tests/parser/success/quotedLabelA.dhall view
@@ -0,0 +1,4 @@+{ example1 = let `let` = 1 in `let`+, example2 = let `:.` = 1 in `:.`+, example3 = let `$ref` = 1 in `$ref`+}
+ tests/parser/success/quotedLabelB.dhall view
@@ -0,0 +1,35 @@+[+ 8,+ {+ "example1": [+ 25,+ "let",+ null,+ [+ 15,+ 1+ ],+ "let"+ ],+ "example2": [+ 25,+ ":.",+ null,+ [+ 15,+ 1+ ],+ ":."+ ],+ "example3": [+ 25,+ "$ref",+ null,+ [+ 15,+ 1+ ],+ "$ref"+ ]+ }+]
+ tests/parser/success/quotedPathsA.dhall view
@@ -0,0 +1,3 @@+{ example0 = /"foo"/bar/"baz qux"+, example1 = https://example.com/foo/"bar?baz"?qux+}
+ tests/parser/success/quotedPathsB.dhall view
@@ -0,0 +1,21 @@+[+ 8,+ {+ "example0": [+ 24,+ 2,+ "foo",+ "bar",+ "baz qux"+ ],+ "example1": [+ 24,+ 1,+ "example.com",+ "foo",+ "bar?baz",+ "qux",+ null+ ]+ }+]
+ tests/parser/success/recordA.dhall view
@@ -0,0 +1,4 @@+{ foo = 1+, bar = +2+, baz = True+} : { foo : Integer, bar : Natural, baz : Bool }
+ tests/parser/success/recordB.dhall view
@@ -0,0 +1,25 @@+[+ 26,+ [+ 8,+ {+ "foo": [+ 15,+ 1+ ],+ "bar": [+ 16,+ 2+ ],+ "baz": true+ }+ ],+ [+ 7,+ {+ "foo": "Integer",+ "bar": "Natural",+ "baz": "Bool"+ }+ ]+]
+ tests/parser/success/reservedPrefixA.dhall view
@@ -0,0 +1,1 @@+let TypeSynonym = Integer in 1 : TypeSynonym
+ tests/parser/success/reservedPrefixB.dhall view
@@ -0,0 +1,14 @@+[+ 25,+ "TypeSynonym",+ null,+ "Integer",+ [+ 26,+ [+ 15,+ 1+ ],+ "TypeSynonym"+ ]+]
+ tests/parser/success/singleQuotedStringA.dhall view
@@ -0,0 +1,4 @@+''+ABC+DEF+''
+ tests/parser/success/singleQuotedStringB.dhall view
@@ -0,0 +1,4 @@+[+ 18,+ "ABC\nDEF\n"+]
+ tests/parser/success/sortA.dhall view
@@ -0,0 +1,1 @@+Sort
+ tests/parser/success/sortB.dhall view
@@ -0,0 +1,1 @@+"Sort"
+ tests/parser/success/templateA.dhall view
@@ -0,0 +1,13 @@+ \(record : { name : Text+ , value : Double+ , taxed_value : Double+ , in_ca : Bool+ }+ ) -> ''+Hello ${record.name}+You have just won ${Double/show record.value} dollars!+${ if record.in_ca+ then "Well, ${Double/show record.taxed_value} dollars, after taxes"+ else ""+ }+''
+ tests/parser/success/templateB.dhall view
@@ -0,0 +1,60 @@+[+ 1,+ "record",+ [+ 7,+ {+ "name": "Text",+ "value": "Double",+ "taxed_value": "Double",+ "in_ca": "Bool"+ }+ ],+ [+ 18,+ "Hello ",+ [+ 9,+ "record",+ "name"+ ],+ "\nYou have just won ",+ [+ 0,+ "Double/show",+ [+ 9,+ "record",+ "value"+ ]+ ],+ " dollars!\n",+ [+ 14,+ [+ 9,+ "record",+ "in_ca"+ ],+ [+ 18,+ "Well, ",+ [+ 0,+ "Double/show",+ [+ 9,+ "record",+ "taxed_value"+ ]+ ],+ " dollars, after taxes"+ ],+ [+ 18,+ ""+ ]+ ],+ "\n"+ ]+]
+ tests/parser/success/unicodeCommentA.dhall view
@@ -0,0 +1,3 @@+{- ∀(a : Type) → a -}++1
+ tests/parser/success/unicodeCommentB.dhall view
@@ -0,0 +1,4 @@+[+ 15,+ 1+]
+ tests/parser/success/unicodeDoubleQuotedStringA.dhall view
@@ -0,0 +1,1 @@+"∀(a : Type) → a"
+ tests/parser/success/unicodeDoubleQuotedStringB.dhall view
@@ -0,0 +1,4 @@+[+ 18,+ "∀(a : Type) → a"+]
+ tests/parser/success/unionA.dhall view
@@ -0,0 +1,4 @@+< A : { }+| B = { = }+| C : {}+> : < A : {} | B : {} | C : {} >
+ tests/parser/success/unionB.dhall view
@@ -0,0 +1,38 @@+[+ 26,+ [+ 12,+ "B",+ [+ 8,+ {}+ ],+ {+ "A": [+ 7,+ {}+ ],+ "C": [+ 7,+ {}+ ]+ }+ ],+ [+ 11,+ {+ "A": [+ 7,+ {}+ ],+ "B": [+ 7,+ {}+ ],+ "C": [+ 7,+ {}+ ]+ }+ ]+]
+ tests/parser/success/urlsA.dhall view
@@ -0,0 +1,12 @@+[ http://example.com/someFile.dhall+, https://john:doe@example.com:8080/foo/bar?qux=0#xyzzy+, http://prelude.dhall-lang.org/package.dhall+, https://ipfs.io/ipfs/QmQ8w5PLcsNz56dMvRtq54vbuPe9cNnCCUXAQp6xLc6Ccx/Prelude+, https://raw.githubusercontent.com/dhall-lang/dhall-haskell/18e4e9a18dc53271146df3ccf5b4177c3552236b/examples/True+, https://127.0.0.1/index.dhall+, https://[::]/index.dhall+, https://[2001:0db8:85a3:0000:0000:8a2e:0370:7334]/tutorial.dhall++ -- Yes, this is legal+, https://-._~%2C!$&'()*+,;=:@-._~%2C!$&'()*+,;=:/foo?/-._~%2C!$&'()*+,;=:@/?#/-._~%2C!$&'()*+,;=:@/?+]
+ tests/parser/success/urlsB.dhall view
@@ -0,0 +1,83 @@+[+ 4,+ null,+ [+ 24,+ 0,+ "example.com",+ "someFile.dhall",+ null,+ null+ ],+ [+ 24,+ 1,+ "john:doe@example.com:8080",+ "foo",+ "bar",+ "qux=0",+ "xyzzy"+ ],+ [+ 24,+ 0,+ "prelude.dhall-lang.org",+ "package.dhall",+ null,+ null+ ],+ [+ 24,+ 1,+ "ipfs.io",+ "ipfs",+ "QmQ8w5PLcsNz56dMvRtq54vbuPe9cNnCCUXAQp6xLc6Ccx",+ "Prelude",+ null,+ null+ ],+ [+ 24,+ 1,+ "raw.githubusercontent.com",+ "dhall-lang",+ "dhall-haskell",+ "18e4e9a18dc53271146df3ccf5b4177c3552236b",+ "examples",+ "True",+ null,+ null+ ],+ [+ 24,+ 1,+ "127.0.0.1",+ "index.dhall",+ null,+ null+ ],+ [+ 24,+ 1,+ "[::]",+ "index.dhall",+ null,+ null+ ],+ [+ 24,+ 1,+ "[2001:0db8:85a3:0000:0000:8a2e:0370:7334]",+ "tutorial.dhall",+ null,+ null+ ],+ [+ 24,+ 1,+ "-._~%2C!$&'()*+,;=:@-._~%2C!$&'()*+,;=:",+ "foo",+ "/-._~%2C!$&'()*+,;=:@/?",+ "/-._~%2C!$&'()*+,;=:@/?"+ ]+]
+ tests/parser/success/whitespaceA.dhall view
@@ -0,0 +1,3 @@++1+
+ tests/parser/success/whitespaceB.dhall view
@@ -0,0 +1,4 @@+[+ 15,+ 1+]
+ tests/parser/success/whitespaceBuffetA.dhall view
@@ -0,0 +1,9 @@+ -- This+ + Natural/even {-+ +{- file+-} + has+ + -} +2 -- mixed {- line endings -}
+ tests/parser/success/whitespaceBuffetB.dhall view
@@ -0,0 +1,8 @@+[+ 0,+ "Natural/even",+ [+ 16,+ 2+ ]+]
− tests/parser/template.dhall
@@ -1,13 +0,0 @@- \(record : { name : Text- , value : Double- , taxed_value : Double- , in_ca : Bool- }- ) -> ''-Hello ${record.name}-You have just won ${Double/show record.value} dollars!-${ if record.in_ca- then "Well, ${Double/show record.taxed_value} dollars, after taxes"- else ""- }-''
− tests/parser/unicodeComment.dhall
@@ -1,3 +0,0 @@-{- ∀(a : Type) → a -}--1
− tests/parser/unicodeDoubleQuotedString.dhall
@@ -1,1 +0,0 @@-"∀(a : Type) → a"
− tests/parser/union.dhall
@@ -1,4 +0,0 @@-< A : { }-| B = { = }-| C : {}-> : < A : {} | B : {} | C : {} >
− tests/parser/urls.dhall
@@ -1,12 +0,0 @@-[ http://example.com/someFile.dhall-, https://john:doe@example.com:8080/foo/bar?qux=0#xyzzy-, http://prelude.dhall-lang.org/package.dhall-, https://ipfs.io/ipfs/QmQ8w5PLcsNz56dMvRtq54vbuPe9cNnCCUXAQp6xLc6Ccx/Prelude-, https://raw.githubusercontent.com/dhall-lang/dhall-haskell/18e4e9a18dc53271146df3ccf5b4177c3552236b/examples/True-, https://127.0.0.1/index.dhall-, https://[::]/index.dhall-, https://[2001:0db8:85a3:0000:0000:8a2e:0370:7334]/tutorial.dhall-- -- Yes, this is legal-, https://-._~%2C!$&'()*+,;=:@-._~%2C!$&'()*+,;=:/foo?/-._~%2C!$&'()*+,;=:@/?#/-._~%2C!$&'()*+,;=:@/?-]
− tests/parser/whitespace.dhall
@@ -1,3 +0,0 @@--1-
− tests/parser/whitespaceBuffet.dhall
@@ -1,9 +0,0 @@- -- This- - Natural/even {-- -{- file--} - has- - -} +2 -- mixed {- line endings -}
− tests/typecheck/alternativesAreTypesA.dhall
@@ -1,1 +0,0 @@-< Left = List | Right : Type >
− tests/typecheck/alternativesAreTypesB.dhall
@@ -1,1 +0,0 @@-< Left : Type → Type | Right : Type >
− tests/typecheck/anonymousFunctionsInTypesA.dhall
@@ -1,5 +0,0 @@- let anonymousFunction = λ(a : Type) → List a--in λ(HigherOrderType : (Type → Type) → Type)- → λ(x : HigherOrderType anonymousFunction)- → (x : HigherOrderType anonymousFunction)
− tests/typecheck/anonymousFunctionsInTypesB.dhall
@@ -1,4 +0,0 @@- ∀(HigherOrderType : (Type → Type) → Type)-→ ∀(x : HigherOrderType (λ(a : Type) → List a))-→ HigherOrderType (λ(a : Type) → List a)-
− tests/typecheck/examples/Monoid/00A.dhall
@@ -1,1 +0,0 @@-(../../../../Prelude/package.dhall).`Bool`.and
− tests/typecheck/examples/Monoid/00B.dhall
@@ -1,1 +0,0 @@-../../../../Prelude/Monoid Bool
− tests/typecheck/examples/Monoid/01A.dhall
@@ -1,1 +0,0 @@-(../../../../Prelude/package.dhall).`Bool`.or
− tests/typecheck/examples/Monoid/01B.dhall
@@ -1,1 +0,0 @@-../../../../Prelude/Monoid Bool
− tests/typecheck/examples/Monoid/02A.dhall
@@ -1,1 +0,0 @@-(../../../../Prelude/package.dhall).`Bool`.even
− tests/typecheck/examples/Monoid/02B.dhall
@@ -1,1 +0,0 @@-../../../../Prelude/Monoid Bool
− tests/typecheck/examples/Monoid/03A.dhall
@@ -1,1 +0,0 @@-(../../../../Prelude/package.dhall).`Bool`.odd
− tests/typecheck/examples/Monoid/03B.dhall
@@ -1,1 +0,0 @@-../../../../Prelude/Monoid Bool
− tests/typecheck/examples/Monoid/04A.dhall
@@ -1,1 +0,0 @@-(../../../../Prelude/package.dhall).`List`.concat
− tests/typecheck/examples/Monoid/04B.dhall
@@ -1,1 +0,0 @@-∀(a : Type) → ../../../../Prelude/Monoid (List a)
− tests/typecheck/examples/Monoid/05A.dhall
@@ -1,1 +0,0 @@-(../../../../Prelude/package.dhall).`List`.shifted
− tests/typecheck/examples/Monoid/05B.dhall
@@ -1,1 +0,0 @@-∀(a : Type) → ../../../../Prelude/Monoid (List { index : Natural, value : a })
− tests/typecheck/examples/Monoid/06A.dhall
@@ -1,1 +0,0 @@-(../../../../Prelude/package.dhall).`Natural`.sum
− tests/typecheck/examples/Monoid/06B.dhall
@@ -1,1 +0,0 @@-../../../../Prelude/Monoid Natural
− tests/typecheck/examples/Monoid/07A.dhall
@@ -1,1 +0,0 @@-(../../../../Prelude/package.dhall).`Natural`.product
− tests/typecheck/examples/Monoid/07B.dhall
@@ -1,1 +0,0 @@-../../../../Prelude/Monoid Natural
− tests/typecheck/examples/Monoid/08A.dhall
@@ -1,1 +0,0 @@-(../../../../Prelude/package.dhall).`Optional`.head
− tests/typecheck/examples/Monoid/08B.dhall
@@ -1,1 +0,0 @@-∀(a : Type) → ../../../../Prelude/Monoid (Optional a)
− tests/typecheck/examples/Monoid/09A.dhall
@@ -1,1 +0,0 @@-(../../../../Prelude/package.dhall).`Optional`.last
− tests/typecheck/examples/Monoid/09B.dhall
@@ -1,1 +0,0 @@-∀(a : Type) → ../../../../Prelude/Monoid (Optional a)
− tests/typecheck/examples/Monoid/10A.dhall
@@ -1,1 +0,0 @@-(../../../../Prelude/package.dhall).`Text`.concat
− tests/typecheck/examples/Monoid/10B.dhall
@@ -1,1 +0,0 @@-../../../../Prelude/Monoid Text
+ tests/typecheck/failure/hurkensParadox.dhall view
@@ -0,0 +1,49 @@+ let bottom : Type = ∀(any : Type) → any++in let not : Type → Type = λ(p : Type) → p → bottom++in let pow = λ(X : Kind) → X → Type++in let U = ∀(X : Kind) → (pow (pow X) → X) → pow (pow X)++in let tau+ : pow (pow U) → U+ = λ(t : pow (pow U))+ → λ(X : Kind)+ → λ(f : pow (pow X) → X)+ → λ(p : pow X)+ → t (λ(x : U) → p (f (x X f)))++in let sigma : U → pow (pow U) = λ(s : U) → s U (λ(t : pow (pow U)) → tau t)++in let Delta+ : pow U+ = λ(y : U) → not (∀(p : pow U) → sigma y p → p (tau (sigma y)))++in let Omega : U = tau (λ(p : pow U) → ∀(x : U) → sigma x p → p x)++in let Theta : Type = ∀(p : pow U) → (∀(x : U) → sigma x p → p x) → p Omega++in let D : Type = ∀(p : pow U) → sigma Omega p → p (tau (sigma Omega))++in let lem1+ : ∀(p : pow U) → (∀(x : U) → sigma x p → p x) → p Omega+ = λ(p : pow U)+ → λ(t1 : ∀(x : U) → sigma x p → p x)+ → t1 Omega (λ(x : U) → t1 (tau (sigma x)))++in let lem3 : D = λ(p : pow U) → lem1 (λ(y : U) → p (tau (sigma y)))++in let lem2+ : not D+ = lem1+ Delta+ ( λ(x : U)+ → λ(H2 : sigma x Delta)+ → λ(H3 : ∀(p : pow U) → sigma x p → p (tau (sigma x)))+ → H3 Delta H2 (λ(pp : pow U) → H3 (λ(y : U) → pp (tau (sigma y))))+ )++in let evidence : bottom = lem2 lem3++in evidence
− tests/typecheck/fieldsAreTypesA.dhall
@@ -1,1 +0,0 @@-{ x = Bool, y = Text, z = List }
− tests/typecheck/fieldsAreTypesB.dhall
@@ -1,1 +0,0 @@-{ x : Type, y : Type, z : Type → Type }
− tests/typecheck/kindParameterA.dhall
@@ -1,1 +0,0 @@-λ(k : Kind) → λ(a : k → k → Type) → λ(x : k) → a x
− tests/typecheck/kindParameterB.dhall
@@ -1,1 +0,0 @@-∀(k : Kind) → (k → k → Type) → k → k → Type
− tests/typecheck/mergeEquivalenceA.dhall
@@ -1,6 +0,0 @@- let Foo = < Bar : {} | Baz : {} >--in λ(a : Type)- → λ(f : {} → a)- → λ(ts : Foo)- → merge { Bar = λ(a : {}) → f a, Baz = f } ts
− tests/typecheck/mergeEquivalenceB.dhall
@@ -1,1 +0,0 @@-∀(a : Type) → ∀(f : {} → a) → ∀(ts : < Bar : {} | Baz : {} >) → a
+ tests/typecheck/success/accessEncodedTypeA.dhall view
@@ -0,0 +1,4 @@+ λ ( record+ : ∀(k : Kind) → ∀(makeRecord : ∀(x : Type) → ∀(y : Type → Type) → k) → k+ )+→ record Type (λ(x : Type) → λ(y : Type → Type) → x)
+ tests/typecheck/success/accessEncodedTypeB.dhall view
@@ -0,0 +1,4 @@+ ∀ ( record+ : ∀(k : Kind) → ∀(makeRecord : ∀(x : Type) → ∀(y : Type → Type) → k) → k+ )+→ Type
+ tests/typecheck/success/accessTypeA.dhall view
@@ -0,0 +1,1 @@+λ(record : { x : Type, y : Type → Type }) → record.x
+ tests/typecheck/success/accessTypeB.dhall view
@@ -0,0 +1,1 @@+∀(record : { x : Type, y : Type → Type }) → Type
+ tests/typecheck/success/encodedRecordOfTypesA.dhall view
@@ -0,0 +1,3 @@+ λ(k : Kind)+→ λ(makeRecord : ∀(x : Type) → ∀(y : Type → Type) → k)+→ makeRecord Text List
+ tests/typecheck/success/encodedRecordOfTypesB.dhall view
@@ -0,0 +1,1 @@+∀(k : Kind) → ∀(makeRecord : ∀(x : Type) → ∀(y : Type → Type) → k) → k
+ tests/typecheck/success/prelude/Bool/and/0A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Bool/and [ True, False, True ]
+ tests/typecheck/success/prelude/Bool/and/0B.dhall view
@@ -0,0 +1,1 @@+Bool
+ tests/typecheck/success/prelude/Bool/and/1A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Bool/and ([] : List Bool)
+ tests/typecheck/success/prelude/Bool/and/1B.dhall view
@@ -0,0 +1,1 @@+Bool
+ tests/typecheck/success/prelude/Bool/build/0A.dhall view
@@ -0,0 +1,2 @@+../../../../../../Prelude/Bool/build +(λ(bool : Type) → λ(true : bool) → λ(false : bool) → true)
+ tests/typecheck/success/prelude/Bool/build/0B.dhall view
@@ -0,0 +1,1 @@+Bool
+ tests/typecheck/success/prelude/Bool/build/1A.dhall view
@@ -0,0 +1,2 @@+../../../../../../Prelude/Bool/build +(λ(bool : Type) → λ(true : bool) → λ(false : bool) → false)
+ tests/typecheck/success/prelude/Bool/build/1B.dhall view
@@ -0,0 +1,1 @@+Bool
+ tests/typecheck/success/prelude/Bool/even/0A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Bool/even [ False, True, False ]
+ tests/typecheck/success/prelude/Bool/even/0B.dhall view
@@ -0,0 +1,1 @@+Bool
+ tests/typecheck/success/prelude/Bool/even/1A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Bool/even [ False, True ]
+ tests/typecheck/success/prelude/Bool/even/1B.dhall view
@@ -0,0 +1,1 @@+Bool
+ tests/typecheck/success/prelude/Bool/even/2A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Bool/even [ False ]
+ tests/typecheck/success/prelude/Bool/even/2B.dhall view
@@ -0,0 +1,1 @@+Bool
+ tests/typecheck/success/prelude/Bool/even/3A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Bool/even ([] : List Bool)
+ tests/typecheck/success/prelude/Bool/even/3B.dhall view
@@ -0,0 +1,1 @@+Bool
+ tests/typecheck/success/prelude/Bool/fold/0A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Bool/fold True Natural 0 1
+ tests/typecheck/success/prelude/Bool/fold/0B.dhall view
@@ -0,0 +1,1 @@+Natural
+ tests/typecheck/success/prelude/Bool/fold/1A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Bool/fold False Natural 0 1
+ tests/typecheck/success/prelude/Bool/fold/1B.dhall view
@@ -0,0 +1,1 @@+Natural
+ tests/typecheck/success/prelude/Bool/not/0A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Bool/not True
+ tests/typecheck/success/prelude/Bool/not/0B.dhall view
@@ -0,0 +1,1 @@+Bool
+ tests/typecheck/success/prelude/Bool/not/1A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Bool/not False
+ tests/typecheck/success/prelude/Bool/not/1B.dhall view
@@ -0,0 +1,1 @@+Bool
+ tests/typecheck/success/prelude/Bool/odd/0A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Bool/odd [ True, False, True ]
+ tests/typecheck/success/prelude/Bool/odd/0B.dhall view
@@ -0,0 +1,1 @@+Bool
+ tests/typecheck/success/prelude/Bool/odd/1A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Bool/odd [ True, False ]
+ tests/typecheck/success/prelude/Bool/odd/1B.dhall view
@@ -0,0 +1,1 @@+Bool
+ tests/typecheck/success/prelude/Bool/odd/2A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Bool/odd [ True ]
+ tests/typecheck/success/prelude/Bool/odd/2B.dhall view
@@ -0,0 +1,1 @@+Bool
+ tests/typecheck/success/prelude/Bool/odd/3A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Bool/odd ([] : List Bool)
+ tests/typecheck/success/prelude/Bool/odd/3B.dhall view
@@ -0,0 +1,1 @@+Bool
+ tests/typecheck/success/prelude/Bool/or/0A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Bool/or [ True, False, True ]
+ tests/typecheck/success/prelude/Bool/or/0B.dhall view
@@ -0,0 +1,1 @@+Bool
+ tests/typecheck/success/prelude/Bool/or/1A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Bool/or ([] : List Bool)
+ tests/typecheck/success/prelude/Bool/or/1B.dhall view
@@ -0,0 +1,1 @@+Bool
+ tests/typecheck/success/prelude/Bool/show/0A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Bool/show True
+ tests/typecheck/success/prelude/Bool/show/0B.dhall view
@@ -0,0 +1,1 @@+Text
+ tests/typecheck/success/prelude/Bool/show/1A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Bool/show False
+ tests/typecheck/success/prelude/Bool/show/1B.dhall view
@@ -0,0 +1,1 @@+Text
+ tests/typecheck/success/prelude/Double/show/0A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Double/show -3.1
+ tests/typecheck/success/prelude/Double/show/0B.dhall view
@@ -0,0 +1,1 @@+Text
+ tests/typecheck/success/prelude/Double/show/1A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Double/show 0.4
+ tests/typecheck/success/prelude/Double/show/1B.dhall view
@@ -0,0 +1,1 @@+Text
+ tests/typecheck/success/prelude/Integer/show/0A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Integer/show -3
+ tests/typecheck/success/prelude/Integer/show/0B.dhall view
@@ -0,0 +1,1 @@+Text
+ tests/typecheck/success/prelude/Integer/show/1A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Integer/show +0
+ tests/typecheck/success/prelude/Integer/show/1B.dhall view
@@ -0,0 +1,1 @@+Text
+ tests/typecheck/success/prelude/Integer/toDouble/0A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Integer/toDouble -3
+ tests/typecheck/success/prelude/Integer/toDouble/0B.dhall view
@@ -0,0 +1,1 @@+Double
+ tests/typecheck/success/prelude/Integer/toDouble/1A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Integer/toDouble +2
+ tests/typecheck/success/prelude/Integer/toDouble/1B.dhall view
@@ -0,0 +1,1 @@+Double
+ tests/typecheck/success/prelude/List/all/0A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/List/all Natural Natural/even [ 2, 3, 5 ]
+ tests/typecheck/success/prelude/List/all/0B.dhall view
@@ -0,0 +1,1 @@+Bool
+ tests/typecheck/success/prelude/List/all/1A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/List/all Natural Natural/even ([] : List Natural)
+ tests/typecheck/success/prelude/List/all/1B.dhall view
@@ -0,0 +1,1 @@+Bool
+ tests/typecheck/success/prelude/List/any/0A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/List/any Natural Natural/even [ 2, 3, 5 ]
+ tests/typecheck/success/prelude/List/any/0B.dhall view
@@ -0,0 +1,1 @@+Bool
+ tests/typecheck/success/prelude/List/any/1A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/List/any Natural Natural/even ([] : List Natural)
+ tests/typecheck/success/prelude/List/any/1B.dhall view
@@ -0,0 +1,1 @@+Bool
+ tests/typecheck/success/prelude/List/build/0A.dhall view
@@ -0,0 +1,7 @@+../../../../../../Prelude/List/build+Text+( λ(list : Type)+→ λ(cons : Text → list → list)+→ λ(nil : list)+→ cons "ABC" (cons "DEF" nil)+)
+ tests/typecheck/success/prelude/List/build/0B.dhall view
@@ -0,0 +1,1 @@+List Text
+ tests/typecheck/success/prelude/List/build/1A.dhall view
@@ -0,0 +1,7 @@+../../../../../../Prelude/List/build+Text+( λ(list : Type)+→ λ(cons : Text → list → list)+→ λ(nil : list)+→ nil+)
+ tests/typecheck/success/prelude/List/build/1B.dhall view
@@ -0,0 +1,1 @@+List Text
+ tests/typecheck/success/prelude/List/concat/0A.dhall view
@@ -0,0 +1,5 @@+../../../../../../Prelude/List/concat Natural+[ [ 0, 1, 2 ]+, [ 3, 4 ]+, [ 5, 6, 7, 8 ]+]
+ tests/typecheck/success/prelude/List/concat/0B.dhall view
@@ -0,0 +1,1 @@+List Natural
+ tests/typecheck/success/prelude/List/concat/1A.dhall view
@@ -0,0 +1,5 @@+../../../../../../Prelude/List/concat Natural+[ [] : List Natural+, [] : List Natural+, [] : List Natural+]
+ tests/typecheck/success/prelude/List/concat/1B.dhall view
@@ -0,0 +1,1 @@+List Natural
+ tests/typecheck/success/prelude/List/concatMap/0A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/List/concatMap Natural Natural (λ(n : Natural) → [ n, n ]) [ 2, 3, 5 ]
+ tests/typecheck/success/prelude/List/concatMap/0B.dhall view
@@ -0,0 +1,1 @@+List Natural
+ tests/typecheck/success/prelude/List/concatMap/1A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/List/concatMap Natural Natural (λ(n : Natural) → [ n, n ]) ([] : List Natural)
+ tests/typecheck/success/prelude/List/concatMap/1B.dhall view
@@ -0,0 +1,1 @@+List Natural
+ tests/typecheck/success/prelude/List/filter/0A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/List/filter Natural Natural/even [ 2, 3, 5 ]
+ tests/typecheck/success/prelude/List/filter/0B.dhall view
@@ -0,0 +1,1 @@+List Natural
+ tests/typecheck/success/prelude/List/filter/1A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/List/filter Natural Natural/odd [ 2, 3, 5 ]
+ tests/typecheck/success/prelude/List/filter/1B.dhall view
@@ -0,0 +1,1 @@+List Natural
+ tests/typecheck/success/prelude/List/fold/0A.dhall view
@@ -0,0 +1,6 @@+../../../../../../Prelude/List/fold+Natural+[ 2, 3, 5 ]+Natural+(λ(x : Natural) → λ(y : Natural) → x + y)+0
+ tests/typecheck/success/prelude/List/fold/0B.dhall view
@@ -0,0 +1,1 @@+Natural
+ tests/typecheck/success/prelude/List/fold/1A.dhall view
@@ -0,0 +1,7 @@+ λ(nil : Natural)+→ ../../../../../../Prelude/List/fold+ Natural+ [ 2, 3, 5 ]+ Natural+ (λ(x : Natural) → λ(y : Natural) → x + y)+ nil
+ tests/typecheck/success/prelude/List/fold/1B.dhall view
@@ -0,0 +1,1 @@+∀(nil : Natural) → Natural
+ tests/typecheck/success/prelude/List/fold/2A.dhall view
@@ -0,0 +1,4 @@+ λ(list : Type)+→ λ(cons : Natural → list → list)+→ λ(nil : list)+→ ../../../../../../Prelude/List/fold Natural [ 2, 3, 5 ] list cons nil
+ tests/typecheck/success/prelude/List/fold/2B.dhall view
@@ -0,0 +1,1 @@+∀(list : Type) → ∀(cons : Natural → list → list) → ∀(nil : list) → list
+ tests/typecheck/success/prelude/List/generate/0A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/List/generate 5 Bool Natural/even
+ tests/typecheck/success/prelude/List/generate/0B.dhall view
@@ -0,0 +1,1 @@+List Bool
+ tests/typecheck/success/prelude/List/generate/1A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/List/generate 0 Bool Natural/even
+ tests/typecheck/success/prelude/List/generate/1B.dhall view
@@ -0,0 +1,1 @@+List Bool
+ tests/typecheck/success/prelude/List/head/0A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/List/head Natural [ 0, 1, 2 ]
+ tests/typecheck/success/prelude/List/head/0B.dhall view
@@ -0,0 +1,1 @@+Optional Natural
+ tests/typecheck/success/prelude/List/head/1A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/List/head Natural ([] : List Natural)
+ tests/typecheck/success/prelude/List/head/1B.dhall view
@@ -0,0 +1,1 @@+Optional Natural
+ tests/typecheck/success/prelude/List/indexed/0A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/List/indexed Bool [ True, False, True ]
+ tests/typecheck/success/prelude/List/indexed/0B.dhall view
@@ -0,0 +1,1 @@+List { index : Natural, value : Bool }
+ tests/typecheck/success/prelude/List/indexed/1A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/List/indexed Bool ([] : List Bool)
+ tests/typecheck/success/prelude/List/indexed/1B.dhall view
@@ -0,0 +1,1 @@+List { index : Natural, value : Bool }
+ tests/typecheck/success/prelude/List/iterate/0A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/List/iterate 10 Natural (λ(x : Natural) → x * 2) 1
+ tests/typecheck/success/prelude/List/iterate/0B.dhall view
@@ -0,0 +1,1 @@+List Natural
+ tests/typecheck/success/prelude/List/iterate/1A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/List/iterate 0 Natural (λ(x : Natural) → x * 2) 1
+ tests/typecheck/success/prelude/List/iterate/1B.dhall view
@@ -0,0 +1,1 @@+List Natural
+ tests/typecheck/success/prelude/List/last/0A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/List/last Natural [ 0, 1, 2 ]
+ tests/typecheck/success/prelude/List/last/0B.dhall view
@@ -0,0 +1,1 @@+Optional Natural
+ tests/typecheck/success/prelude/List/last/1A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/List/last Natural ([] : List Natural)
+ tests/typecheck/success/prelude/List/last/1B.dhall view
@@ -0,0 +1,1 @@+Optional Natural
+ tests/typecheck/success/prelude/List/length/0A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/List/length Natural [ 0, 1, 2 ]
+ tests/typecheck/success/prelude/List/length/0B.dhall view
@@ -0,0 +1,1 @@+Natural
+ tests/typecheck/success/prelude/List/length/1A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/List/length Natural ([] : List Natural)
+ tests/typecheck/success/prelude/List/length/1B.dhall view
@@ -0,0 +1,1 @@+Natural
+ tests/typecheck/success/prelude/List/map/0A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/List/map Natural Bool Natural/even [ 2, 3, 5 ]
+ tests/typecheck/success/prelude/List/map/0B.dhall view
@@ -0,0 +1,1 @@+List Bool
+ tests/typecheck/success/prelude/List/map/1A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/List/map Natural Bool Natural/even ([] : List Natural)
+ tests/typecheck/success/prelude/List/map/1B.dhall view
@@ -0,0 +1,1 @@+List Bool
+ tests/typecheck/success/prelude/List/null/0A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/List/null Natural [ 0, 1, 2 ]
+ tests/typecheck/success/prelude/List/null/0B.dhall view
@@ -0,0 +1,1 @@+Bool
+ tests/typecheck/success/prelude/List/null/1A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/List/null Natural ([] : List Natural)
+ tests/typecheck/success/prelude/List/null/1B.dhall view
@@ -0,0 +1,1 @@+Bool
+ tests/typecheck/success/prelude/List/replicate/0A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/List/replicate 9 Natural 1
+ tests/typecheck/success/prelude/List/replicate/0B.dhall view
@@ -0,0 +1,1 @@+List Natural
+ tests/typecheck/success/prelude/List/replicate/1A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/List/replicate 0 Natural 1
+ tests/typecheck/success/prelude/List/replicate/1B.dhall view
@@ -0,0 +1,1 @@+List Natural
+ tests/typecheck/success/prelude/List/reverse/0A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/List/reverse Natural [ 0, 1, 2 ]
+ tests/typecheck/success/prelude/List/reverse/0B.dhall view
@@ -0,0 +1,1 @@+List Natural
+ tests/typecheck/success/prelude/List/reverse/1A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/List/reverse Natural ([] : List Natural)
+ tests/typecheck/success/prelude/List/reverse/1B.dhall view
@@ -0,0 +1,1 @@+List Natural
+ tests/typecheck/success/prelude/List/shifted/0A.dhall view
@@ -0,0 +1,15 @@+../../../../../../Prelude/List/shifted+Bool+[ [ { index = 0, value = True }+ , { index = 1, value = True }+ , { index = 2, value = False }+ ]+, [ { index = 0, value = False }+ , { index = 1, value = False }+ ]+, [ { index = 0, value = True }+ , { index = 1, value = True }+ , { index = 2, value = True }+ , { index = 3, value = True }+ ]+]
+ tests/typecheck/success/prelude/List/shifted/0B.dhall view
@@ -0,0 +1,1 @@+List { index : Natural, value : Bool }
+ tests/typecheck/success/prelude/List/shifted/1A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/List/shifted Bool ([] : List (List { index : Natural, value : Bool }))
+ tests/typecheck/success/prelude/List/shifted/1B.dhall view
@@ -0,0 +1,1 @@+List { index : Natural, value : Bool }
+ tests/typecheck/success/prelude/List/unzip/0A.dhall view
@@ -0,0 +1,7 @@+../../../../../../Prelude/List/unzip+Text+Bool+[ { _1 = "ABC", _2 = True }+, { _1 = "DEF", _2 = False }+, { _1 = "GHI", _2 = True }+]
+ tests/typecheck/success/prelude/List/unzip/0B.dhall view
@@ -0,0 +1,1 @@+{ _1 : List Text, _2 : List Bool }
+ tests/typecheck/success/prelude/List/unzip/1A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/List/unzip Text Bool ([] : List { _1 : Text, _2 : Bool })
+ tests/typecheck/success/prelude/List/unzip/1B.dhall view
@@ -0,0 +1,1 @@+{ _1 : List Text, _2 : List Bool }
+ tests/typecheck/success/prelude/Monoid/00A.dhall view
@@ -0,0 +1,1 @@+(../../../../../Prelude/package.dhall).`Bool`.and
+ tests/typecheck/success/prelude/Monoid/00B.dhall view
@@ -0,0 +1,1 @@+../../../../../Prelude/Monoid Bool
+ tests/typecheck/success/prelude/Monoid/01A.dhall view
@@ -0,0 +1,1 @@+(../../../../../Prelude/package.dhall).`Bool`.or
+ tests/typecheck/success/prelude/Monoid/01B.dhall view
@@ -0,0 +1,1 @@+../../../../../Prelude/Monoid Bool
+ tests/typecheck/success/prelude/Monoid/02A.dhall view
@@ -0,0 +1,1 @@+(../../../../../Prelude/package.dhall).`Bool`.even
+ tests/typecheck/success/prelude/Monoid/02B.dhall view
@@ -0,0 +1,1 @@+../../../../../Prelude/Monoid Bool
+ tests/typecheck/success/prelude/Monoid/03A.dhall view
@@ -0,0 +1,1 @@+(../../../../../Prelude/package.dhall).`Bool`.odd
+ tests/typecheck/success/prelude/Monoid/03B.dhall view
@@ -0,0 +1,1 @@+../../../../../Prelude/Monoid Bool
+ tests/typecheck/success/prelude/Monoid/04A.dhall view
@@ -0,0 +1,1 @@+(../../../../../Prelude/package.dhall).`List`.concat
+ tests/typecheck/success/prelude/Monoid/04B.dhall view
@@ -0,0 +1,1 @@+∀(a : Type) → ../../../../../Prelude/Monoid (List a)
+ tests/typecheck/success/prelude/Monoid/05A.dhall view
@@ -0,0 +1,1 @@+(../../../../../Prelude/package.dhall).`List`.shifted
+ tests/typecheck/success/prelude/Monoid/05B.dhall view
@@ -0,0 +1,1 @@+∀(a : Type) → ../../../../../Prelude/Monoid (List { index : Natural, value : a })
+ tests/typecheck/success/prelude/Monoid/06A.dhall view
@@ -0,0 +1,1 @@+(../../../../../Prelude/package.dhall).`Natural`.sum
+ tests/typecheck/success/prelude/Monoid/06B.dhall view
@@ -0,0 +1,1 @@+../../../../../Prelude/Monoid Natural
+ tests/typecheck/success/prelude/Monoid/07A.dhall view
@@ -0,0 +1,1 @@+(../../../../../Prelude/package.dhall).`Natural`.product
+ tests/typecheck/success/prelude/Monoid/07B.dhall view
@@ -0,0 +1,1 @@+../../../../../Prelude/Monoid Natural
+ tests/typecheck/success/prelude/Monoid/08A.dhall view
@@ -0,0 +1,1 @@+(../../../../../Prelude/package.dhall).`Optional`.head
+ tests/typecheck/success/prelude/Monoid/08B.dhall view
@@ -0,0 +1,1 @@+∀(a : Type) → ../../../../../Prelude/Monoid (Optional a)
+ tests/typecheck/success/prelude/Monoid/09A.dhall view
@@ -0,0 +1,1 @@+(../../../../../Prelude/package.dhall).`Optional`.last
+ tests/typecheck/success/prelude/Monoid/09B.dhall view
@@ -0,0 +1,1 @@+∀(a : Type) → ../../../../../Prelude/Monoid (Optional a)
+ tests/typecheck/success/prelude/Monoid/10A.dhall view
@@ -0,0 +1,1 @@+(../../../../../Prelude/package.dhall).`Text`.concat
+ tests/typecheck/success/prelude/Monoid/10B.dhall view
@@ -0,0 +1,1 @@+../../../../../Prelude/Monoid Text
+ tests/typecheck/success/prelude/Natural/build/0A.dhall view
@@ -0,0 +1,6 @@+../../../../../../Prelude/Natural/build+( λ(natural : Type)+→ λ(succ : natural → natural)+→ λ(zero : natural)+→ succ (succ (succ zero))+)
+ tests/typecheck/success/prelude/Natural/build/0B.dhall view
@@ -0,0 +1,1 @@+Natural
+ tests/typecheck/success/prelude/Natural/build/1A.dhall view
@@ -0,0 +1,6 @@+../../../../../../Prelude/Natural/build+( λ(natural : Type)+→ λ(succ : natural → natural)+→ λ(zero : natural)+→ zero+)
+ tests/typecheck/success/prelude/Natural/build/1B.dhall view
@@ -0,0 +1,1 @@+Natural
+ tests/typecheck/success/prelude/Natural/enumerate/0A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Natural/enumerate 10
+ tests/typecheck/success/prelude/Natural/enumerate/0B.dhall view
@@ -0,0 +1,1 @@+List Natural
+ tests/typecheck/success/prelude/Natural/enumerate/1A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Natural/enumerate 0
+ tests/typecheck/success/prelude/Natural/enumerate/1B.dhall view
@@ -0,0 +1,1 @@+List Natural
+ tests/typecheck/success/prelude/Natural/even/0A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Natural/even 3
+ tests/typecheck/success/prelude/Natural/even/0B.dhall view
@@ -0,0 +1,1 @@+Bool
+ tests/typecheck/success/prelude/Natural/even/1A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Natural/even 0
+ tests/typecheck/success/prelude/Natural/even/1B.dhall view
@@ -0,0 +1,1 @@+Bool
+ tests/typecheck/success/prelude/Natural/fold/0A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Natural/fold 3 Natural (λ(x : Natural) → 5 * x) 1
+ tests/typecheck/success/prelude/Natural/fold/0B.dhall view
@@ -0,0 +1,1 @@+Natural
+ tests/typecheck/success/prelude/Natural/fold/1A.dhall view
@@ -0,0 +1,1 @@+λ(zero : Natural) → ../../../../../../Prelude/Natural/fold 3 Natural (λ(x : Natural) → 5 * x) zero
+ tests/typecheck/success/prelude/Natural/fold/1B.dhall view
@@ -0,0 +1,1 @@+∀(zero : Natural) → Natural
+ tests/typecheck/success/prelude/Natural/fold/2A.dhall view
@@ -0,0 +1,4 @@+ λ(natural : Type)+→ λ(succ : natural → natural)+→ λ(zero : natural)+→ ../../../../../../Prelude/Natural/fold 3 natural succ zero
+ tests/typecheck/success/prelude/Natural/fold/2B.dhall view
@@ -0,0 +1,1 @@+∀(natural : Type) → ∀(succ : natural → natural) → ∀(zero : natural) → natural
+ tests/typecheck/success/prelude/Natural/isZero/0A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Natural/isZero 2
+ tests/typecheck/success/prelude/Natural/isZero/0B.dhall view
@@ -0,0 +1,1 @@+Bool
+ tests/typecheck/success/prelude/Natural/isZero/1A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Natural/isZero 0
+ tests/typecheck/success/prelude/Natural/isZero/1B.dhall view
@@ -0,0 +1,1 @@+Bool
+ tests/typecheck/success/prelude/Natural/odd/0A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Natural/odd 3
+ tests/typecheck/success/prelude/Natural/odd/0B.dhall view
@@ -0,0 +1,1 @@+Bool
+ tests/typecheck/success/prelude/Natural/odd/1A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Natural/odd 0
+ tests/typecheck/success/prelude/Natural/odd/1B.dhall view
@@ -0,0 +1,1 @@+Bool
+ tests/typecheck/success/prelude/Natural/product/0A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Natural/product [ 2, 3, 5 ]
+ tests/typecheck/success/prelude/Natural/product/0B.dhall view
@@ -0,0 +1,1 @@+Natural
+ tests/typecheck/success/prelude/Natural/product/1A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Natural/product ([] : List Natural)
+ tests/typecheck/success/prelude/Natural/product/1B.dhall view
@@ -0,0 +1,1 @@+Natural
+ tests/typecheck/success/prelude/Natural/show/0A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Natural/show 3
+ tests/typecheck/success/prelude/Natural/show/0B.dhall view
@@ -0,0 +1,1 @@+Text
+ tests/typecheck/success/prelude/Natural/show/1A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Natural/show 0
+ tests/typecheck/success/prelude/Natural/show/1B.dhall view
@@ -0,0 +1,1 @@+Text
+ tests/typecheck/success/prelude/Natural/sum/0A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Natural/sum [ 2, 3, 5 ]
+ tests/typecheck/success/prelude/Natural/sum/0B.dhall view
@@ -0,0 +1,1 @@+Natural
+ tests/typecheck/success/prelude/Natural/sum/1A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Natural/sum ([] : List Natural)
+ tests/typecheck/success/prelude/Natural/sum/1B.dhall view
@@ -0,0 +1,1 @@+Natural
+ tests/typecheck/success/prelude/Natural/toDouble/0A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Natural/toDouble 3
+ tests/typecheck/success/prelude/Natural/toDouble/0B.dhall view
@@ -0,0 +1,1 @@+Double
+ tests/typecheck/success/prelude/Natural/toDouble/1A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Natural/toDouble 0
+ tests/typecheck/success/prelude/Natural/toDouble/1B.dhall view
@@ -0,0 +1,1 @@+Double
+ tests/typecheck/success/prelude/Natural/toInteger/0A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Natural/toInteger 3
+ tests/typecheck/success/prelude/Natural/toInteger/0B.dhall view
@@ -0,0 +1,1 @@+Integer
+ tests/typecheck/success/prelude/Natural/toInteger/1A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Natural/toInteger 0
+ tests/typecheck/success/prelude/Natural/toInteger/1B.dhall view
@@ -0,0 +1,1 @@+Integer
+ tests/typecheck/success/prelude/Optional/all/0A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Optional/all Natural Natural/even (Some 3)
+ tests/typecheck/success/prelude/Optional/all/0B.dhall view
@@ -0,0 +1,1 @@+Bool
+ tests/typecheck/success/prelude/Optional/all/1A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Optional/all Natural Natural/even (None Natural)
+ tests/typecheck/success/prelude/Optional/all/1B.dhall view
@@ -0,0 +1,1 @@+Bool
+ tests/typecheck/success/prelude/Optional/any/0A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Optional/any Natural Natural/even (Some 2)
+ tests/typecheck/success/prelude/Optional/any/0B.dhall view
@@ -0,0 +1,1 @@+Bool
+ tests/typecheck/success/prelude/Optional/any/1A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Optional/any Natural Natural/even (None Natural)
+ tests/typecheck/success/prelude/Optional/any/1B.dhall view
@@ -0,0 +1,1 @@+Bool
+ tests/typecheck/success/prelude/Optional/build/0A.dhall view
@@ -0,0 +1,7 @@+../../../../../../Prelude/Optional/build+Natural+( λ(optional : Type)+→ λ(some : Natural → optional)+→ λ(none : optional)+→ some 1+)
+ tests/typecheck/success/prelude/Optional/build/0B.dhall view
@@ -0,0 +1,1 @@+Optional Natural
+ tests/typecheck/success/prelude/Optional/build/1A.dhall view
@@ -0,0 +1,7 @@+../../../../../../Prelude/Optional/build+Natural+( λ(optional : Type)+→ λ(some : Natural → optional)+→ λ(none : optional)+→ none+)
+ tests/typecheck/success/prelude/Optional/build/1B.dhall view
@@ -0,0 +1,1 @@+Optional Natural
+ tests/typecheck/success/prelude/Optional/concat/0A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Optional/concat Natural (Some (Some 1))
+ tests/typecheck/success/prelude/Optional/concat/0B.dhall view
@@ -0,0 +1,1 @@+Optional Natural
+ tests/typecheck/success/prelude/Optional/concat/1A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Optional/concat Natural (Some (None Natural))
+ tests/typecheck/success/prelude/Optional/concat/1B.dhall view
@@ -0,0 +1,1 @@+Optional Natural
+ tests/typecheck/success/prelude/Optional/concat/2A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Optional/concat Natural (None (Optional Natural))
+ tests/typecheck/success/prelude/Optional/concat/2B.dhall view
@@ -0,0 +1,1 @@+Optional Natural
+ tests/typecheck/success/prelude/Optional/filter/0A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Optional/filter Natural Natural/even (Some 2)
+ tests/typecheck/success/prelude/Optional/filter/0B.dhall view
@@ -0,0 +1,1 @@+Optional Natural
+ tests/typecheck/success/prelude/Optional/filter/1A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Optional/filter Natural Natural/odd (Some 2)
+ tests/typecheck/success/prelude/Optional/filter/1B.dhall view
@@ -0,0 +1,1 @@+Optional Natural
+ tests/typecheck/success/prelude/Optional/fold/0A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Optional/fold Natural (Some 2) Natural (λ(x : Natural) → x) 0
+ tests/typecheck/success/prelude/Optional/fold/0B.dhall view
@@ -0,0 +1,1 @@+Natural
+ tests/typecheck/success/prelude/Optional/fold/1A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Optional/fold Natural (None Natural) Natural (λ(x : Natural) → x) 0
+ tests/typecheck/success/prelude/Optional/fold/1B.dhall view
@@ -0,0 +1,1 @@+Natural
+ tests/typecheck/success/prelude/Optional/head/0A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Optional/head Natural [ None Natural, Some 1, Some 2 ]
+ tests/typecheck/success/prelude/Optional/head/0B.dhall view
@@ -0,0 +1,1 @@+Optional Natural
+ tests/typecheck/success/prelude/Optional/head/1A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Optional/head Natural [ None Natural, None Natural ]
+ tests/typecheck/success/prelude/Optional/head/1B.dhall view
@@ -0,0 +1,1 @@+Optional Natural
+ tests/typecheck/success/prelude/Optional/head/2A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Optional/head Natural ([] : List (Optional Natural))
+ tests/typecheck/success/prelude/Optional/head/2B.dhall view
@@ -0,0 +1,1 @@+Optional Natural
+ tests/typecheck/success/prelude/Optional/last/0A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Optional/last Natural [ None Natural, Some 1, Some 2 ]
+ tests/typecheck/success/prelude/Optional/last/0B.dhall view
@@ -0,0 +1,1 @@+Optional Natural
+ tests/typecheck/success/prelude/Optional/last/1A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Optional/last Natural [ None Natural, None Natural ]
+ tests/typecheck/success/prelude/Optional/last/1B.dhall view
@@ -0,0 +1,1 @@+Optional Natural
+ tests/typecheck/success/prelude/Optional/last/2A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Optional/last Natural ([] : List (Optional Natural))
+ tests/typecheck/success/prelude/Optional/last/2B.dhall view
@@ -0,0 +1,1 @@+Optional Natural
+ tests/typecheck/success/prelude/Optional/length/0A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Optional/length Natural (Some 2)
+ tests/typecheck/success/prelude/Optional/length/0B.dhall view
@@ -0,0 +1,1 @@+Natural
+ tests/typecheck/success/prelude/Optional/length/1A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Optional/length Natural (None Natural)
+ tests/typecheck/success/prelude/Optional/length/1B.dhall view
@@ -0,0 +1,1 @@+Natural
+ tests/typecheck/success/prelude/Optional/map/0A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Optional/map Natural Bool Natural/even (Some 3)
+ tests/typecheck/success/prelude/Optional/map/0B.dhall view
@@ -0,0 +1,1 @@+Optional Bool
+ tests/typecheck/success/prelude/Optional/map/1A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Optional/map Natural Bool Natural/even (None Natural)
+ tests/typecheck/success/prelude/Optional/map/1B.dhall view
@@ -0,0 +1,1 @@+Optional Bool
+ tests/typecheck/success/prelude/Optional/null/0A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Optional/null Natural (Some 2)
+ tests/typecheck/success/prelude/Optional/null/0B.dhall view
@@ -0,0 +1,1 @@+Bool
+ tests/typecheck/success/prelude/Optional/null/1A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Optional/null Natural (None Natural)
+ tests/typecheck/success/prelude/Optional/null/1B.dhall view
@@ -0,0 +1,1 @@+Bool
+ tests/typecheck/success/prelude/Optional/toList/0A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Optional/toList Natural (Some 1)
+ tests/typecheck/success/prelude/Optional/toList/0B.dhall view
@@ -0,0 +1,1 @@+List Natural
+ tests/typecheck/success/prelude/Optional/toList/1A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Optional/toList Natural (None Natural)
+ tests/typecheck/success/prelude/Optional/toList/1B.dhall view
@@ -0,0 +1,1 @@+List Natural
+ tests/typecheck/success/prelude/Optional/unzip/0A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Optional/unzip Text Bool (Some { _1 = "ABC", _2 = True })
+ tests/typecheck/success/prelude/Optional/unzip/0B.dhall view
@@ -0,0 +1,1 @@+{ _1 : Optional Text, _2 : Optional Bool }
+ tests/typecheck/success/prelude/Optional/unzip/1A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Optional/unzip Text Bool (None { _1 : Text, _2 : Bool })
+ tests/typecheck/success/prelude/Optional/unzip/1B.dhall view
@@ -0,0 +1,1 @@+{ _1 : Optional Text, _2 : Optional Bool }
+ tests/typecheck/success/prelude/Text/concat/0A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Text/concat [ "ABC", "DEF", "GHI" ]
+ tests/typecheck/success/prelude/Text/concat/0B.dhall view
@@ -0,0 +1,1 @@+Text
+ tests/typecheck/success/prelude/Text/concat/1A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Text/concat ([] : List Text)
+ tests/typecheck/success/prelude/Text/concat/1B.dhall view
@@ -0,0 +1,1 @@+Text
+ tests/typecheck/success/prelude/Text/concatMap/0A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Text/concatMap Natural (λ(n : Natural) → "${Natural/show n} ") [ 0, 1, 2 ]
+ tests/typecheck/success/prelude/Text/concatMap/0B.dhall view
@@ -0,0 +1,1 @@+Text
+ tests/typecheck/success/prelude/Text/concatMap/1A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Text/concatMap Natural (λ(n : Natural) → "${Natural/show n} ") ([] : List Natural)
+ tests/typecheck/success/prelude/Text/concatMap/1B.dhall view
@@ -0,0 +1,1 @@+Text
+ tests/typecheck/success/prelude/Text/concatMapSep/0A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Text/concatMapSep ", " Natural Natural/show [ 0, 1, 2 ]
+ tests/typecheck/success/prelude/Text/concatMapSep/0B.dhall view
@@ -0,0 +1,1 @@+Text
+ tests/typecheck/success/prelude/Text/concatMapSep/1A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Text/concatMapSep ", " Natural Natural/show ([] : List Natural)
+ tests/typecheck/success/prelude/Text/concatMapSep/1B.dhall view
@@ -0,0 +1,1 @@+Text
+ tests/typecheck/success/prelude/Text/concatSep/0A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Text/concatSep ", " [ "ABC", "DEF", "GHI" ]
+ tests/typecheck/success/prelude/Text/concatSep/0B.dhall view
@@ -0,0 +1,1 @@+Text
+ tests/typecheck/success/prelude/Text/concatSep/1A.dhall view
@@ -0,0 +1,1 @@+../../../../../../Prelude/Text/concatSep ", " ([] : List Text)
+ tests/typecheck/success/prelude/Text/concatSep/1B.dhall view
@@ -0,0 +1,1 @@+Text
+ tests/typecheck/success/recordOfTypesA.dhall view
@@ -0,0 +1,1 @@+{ x = Text, y = List }
+ tests/typecheck/success/recordOfTypesB.dhall view
@@ -0,0 +1,1 @@+{ x : Type, y : Type → Type }
+ tests/typecheck/success/simple/access/0A.dhall view
@@ -0,0 +1,1 @@+{ x = Text }.x
+ tests/typecheck/success/simple/access/0B.dhall view
@@ -0,0 +1,1 @@+Type
+ tests/typecheck/success/simple/access/1A.dhall view
@@ -0,0 +1,1 @@+< Foo : Text | Bar : Natural >.Foo
+ tests/typecheck/success/simple/access/1B.dhall view
@@ -0,0 +1,1 @@+∀(Foo : Text) → < Bar : Natural | Foo : Text >
+ tests/typecheck/success/simple/alternativesAreTypesA.dhall view
@@ -0,0 +1,1 @@+< Left = List | Right : Type >
+ tests/typecheck/success/simple/alternativesAreTypesB.dhall view
@@ -0,0 +1,1 @@+< Left : Type → Type | Right : Type >
+ tests/typecheck/success/simple/anonymousFunctionsInTypesA.dhall view
@@ -0,0 +1,5 @@+ let anonymousFunction = λ(a : Type) → List a++in λ(HigherOrderType : (Type → Type) → Type)+ → λ(x : HigherOrderType anonymousFunction)+ → (x : HigherOrderType anonymousFunction)
+ tests/typecheck/success/simple/anonymousFunctionsInTypesB.dhall view
@@ -0,0 +1,4 @@+ ∀(HigherOrderType : (Type → Type) → Type)+→ ∀(x : HigherOrderType (λ(a : Type) → List a))+→ HigherOrderType (λ(a : Type) → List a)+
+ tests/typecheck/success/simple/fieldsAreTypesA.dhall view
@@ -0,0 +1,1 @@+{ x = Bool, y = Text, z = List }
+ tests/typecheck/success/simple/fieldsAreTypesB.dhall view
@@ -0,0 +1,1 @@+{ x : Type, y : Type, z : Type → Type }
+ tests/typecheck/success/simple/kindParameterA.dhall view
@@ -0,0 +1,1 @@+λ(k : Kind) → λ(a : k → k → Type) → λ(x : k) → a x
+ tests/typecheck/success/simple/kindParameterB.dhall view
@@ -0,0 +1,1 @@+∀(k : Kind) → (k → k → Type) → k → k → Type
+ tests/typecheck/success/simple/mergeEquivalenceA.dhall view
@@ -0,0 +1,6 @@+ let Foo = < Bar : {} | Baz : {} >++in λ(a : Type)+ → λ(f : {} → a)+ → λ(ts : Foo)+ → merge { Bar = λ(a : {}) → f a, Baz = f } ts
+ tests/typecheck/success/simple/mergeEquivalenceB.dhall view
@@ -0,0 +1,1 @@+∀(a : Type) → ∀(f : {} → a) → ∀(ts : < Bar : {} | Baz : {} >) → a
+ tests/typecheck/success/simple/mixedFieldAccessA.dhall view
@@ -0,0 +1,7 @@+-- Verify that users can use `.` to both access a record field and a union+-- constructor within the same expression. This is a common idiom if a user+-- provides a types package.++let Scope = < Public : {} | Private : {} >+let types = { Scope = Scope }+in types.Scope.Public {=}
+ tests/typecheck/success/simple/mixedFieldAccessB.dhall view
@@ -0,0 +1,1 @@+< Private : {} | Public : {} >