{-# LANGUAGE BlockArguments #-}
{-# LANGUAGE ImportQualifiedPost #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE ViewPatterns #-}
module Dovetail.Core
(
CoreBuild(..)
, buildModules
, allPackages
, minimal
, arrays
, assert
, bifunctors
, catenableLists
, console
, _const
, contravariant
, control
, distributive
, effect
, _either
, enums
, exceptions
, exists
, foldableTraversable
, orders
, free
, functions
, functors
, gen
, graphs
, identity
, integers
, invariant
, lazy
, lcg
, lists
, math
, _maybe
, _newtype
, nonempty
, numbers
, orderedCollections
, typelevelPrelude
, parallel
, partial
, prelude
, profunctor
, psciSupport
, quickcheck
, random
, record
, refs
, safeCoerce
, semirings
, st
, strings
, tailrec
, transformers
, tuples
, typeEquality
, unfoldable
, unsafeCoerce
, validation
) where
import Codec.Serialise qualified as Codec
import Data.Aeson (decodeStrict)
import Data.Aeson.Types (parseEither)
import Data.ByteString qualified as BS
import Data.ByteString.Lazy qualified as BL
import Data.FileEmbed
import Data.Foldable (fold, traverse_)
import Data.Maybe (fromJust, maybeToList)
import Data.HashMap.Strict (HashMap)
import Data.HashMap.Strict qualified as HashMap
import Data.Text (Text)
import Data.Text qualified as Text
import Data.Traversable (for)
import Data.Typeable (Typeable)
import Dovetail
import Dovetail.Core.Modules (modules)
import Language.Haskell.TH.Syntax qualified as TH
import Language.PureScript.CoreFn.FromJSON qualified as FromJSON
import System.FilePath ((</>))
import Dovetail.Core.Control.Apply qualified as Control.Apply
import Dovetail.Core.Control.Bind qualified as Control.Bind
import Dovetail.Core.Control.Extend qualified as Control.Extend
import Dovetail.Core.Control.Monad.ST.Internal qualified as Control.Monad.ST.Internal
import Dovetail.Core.Data.Array qualified as Data.Array
import Dovetail.Core.Data.Array.NonEmpty.Internal qualified as Data.Array.NonEmpty.Internal
import Dovetail.Core.Data.Array.ST qualified as Data.Array.ST
import Dovetail.Core.Data.Array.ST.Partial qualified as Data.Array.ST.Partial
import Dovetail.Core.Data.Bounded qualified as Data.Bounded
import Dovetail.Core.Data.Enum qualified as Data.Enum
import Dovetail.Core.Data.Eq qualified as Data.Eq
import Dovetail.Core.Data.EuclideanRing qualified as Data.EuclideanRing
import Dovetail.Core.Data.Foldable qualified as Data.Foldable
import Dovetail.Core.Data.Function.Uncurried qualified as Data.Function.Uncurried
import Dovetail.Core.Data.Functor qualified as Data.Functor
import Dovetail.Core.Data.FunctorWithIndex qualified as Data.FunctorWithIndex
import Dovetail.Core.Data.HeytingAlgebra qualified as Data.HeytingAlgebra
import Dovetail.Core.Data.Int qualified as Data.Int
import Dovetail.Core.Data.Int.Bits qualified as Data.Int.Bits
import Dovetail.Core.Data.Lazy qualified as Data.Lazy
import Dovetail.Core.Data.Number qualified as Data.Number
import Dovetail.Core.Data.Number.Format qualified as Data.Number.Format
import Dovetail.Core.Data.Ord qualified as Data.Ord
import Dovetail.Core.Data.Ring qualified as Data.Ring
import Dovetail.Core.Data.Semigroup qualified as Data.Semigroup
import Dovetail.Core.Data.Semiring qualified as Data.Semiring
import Dovetail.Core.Data.Show qualified as Data.Show
import Dovetail.Core.Data.Show.Generic qualified as Data.Show.Generic
import Dovetail.Core.Data.String.CodePoints qualified as Data.String.CodePoints
import Dovetail.Core.Data.String.CodeUnits qualified as Data.String.CodeUnits
import Dovetail.Core.Data.String.Common qualified as Data.String.Common
import Dovetail.Core.Data.String.Regex qualified as Data.String.Regex
import Dovetail.Core.Data.String.Unsafe qualified as Data.String.Unsafe
import Dovetail.Core.Data.Symbol qualified as Data.Symbol
import Dovetail.Core.Data.Traversable qualified as Data.Traversable
import Dovetail.Core.Data.Unfoldable qualified as Data.Unfoldable
import Dovetail.Core.Data.Unfoldable1 qualified as Data.Unfoldable1
import Dovetail.Core.Data.Unit qualified as Data.Unit
import Dovetail.Core.Effect qualified as Effect
import Dovetail.Core.Effect.Console qualified as Effect.Console
import Dovetail.Core.Effect.Exception qualified as Effect.Exception
import Dovetail.Core.Effect.Random qualified as Effect.Random
import Dovetail.Core.Effect.Ref qualified as Effect.Ref
import Dovetail.Core.Effect.Uncurried qualified as Effect.Uncurried
import Dovetail.Core.Effect.Unsafe qualified as Effect.Unsafe
import Dovetail.Core.Math qualified as Math
import Dovetail.Core.Partial qualified as Partial
import Dovetail.Core.Partial.Unsafe qualified as Partial.Unsafe
import Dovetail.Core.Record.Builder qualified as Record.Builder
import Dovetail.Core.Record.Unsafe qualified as Record.Unsafe
import Dovetail.Core.Record.Unsafe.Union qualified as Record.Unsafe.Union
import Dovetail.Core.Test.Assert qualified as Test.Assert
import Dovetail.Core.Unsafe.Coerce qualified as Unsafe.Coerce
$(