packages feed

purescript 0.15.12 → 0.15.13

raw patch · 44 files changed

+774/−162 lines, 44 files

Files

purescript.cabal view
@@ -1,6 +1,6 @@ cabal-version:      2.4 name:               purescript-version:            0.15.12+version:            0.15.13 license:            BSD-3-Clause license-file:       LICENSE copyright:
src/Language/PureScript/AST/Declarations.hs view
@@ -104,6 +104,17 @@   deriving (Show, Eq)  -- |+-- In constraint solving, indicates whether there were `TypeUnknown`s that prevented+-- an instance from being found, and whether VTAs are required +-- due to type class members not referencing all the type class+-- head's type variables.+data UnknownsHint+  = NoUnknowns+  | Unknowns+  | UnknownsWithVtaRequiringArgs (NEL.NonEmpty (Qualified Ident, [[Text]]))+  deriving (Show)++-- | -- A module declaration, consisting of comments about the module, a module name, -- a list of declarations, and a list of the declarations that are -- explicitly exported. If the export list is Nothing, everything is exported.
src/Language/PureScript/Docs/Convert/ReExports.hs view
@@ -441,7 +441,7 @@           ++ T.unpack cdeclTitle)    addConstraint constraint =-    P.quantify . P.moveQuantifiersToFront . P.ConstrainedType () constraint+    P.quantify . P.moveQuantifiersToFront () . P.ConstrainedType () constraint  splitMap :: Map k (v1, v2) -> (Map k v1, Map k v2) splitMap = fmap fst &&& fmap snd
src/Language/PureScript/Environment.hs view
@@ -14,7 +14,7 @@ import Data.IntSet qualified as IS import Data.Map qualified as M import Data.Set qualified as S-import Data.Maybe (fromMaybe)+import Data.Maybe (fromMaybe, mapMaybe) import Data.Semigroup (First(..)) import Data.Text (Text) import Data.Text qualified as T@@ -25,7 +25,7 @@ import Language.PureScript.Names (Ident, ProperName(..), ProperNameType(..), Qualified, QualifiedBy, coerceProperName) import Language.PureScript.Roles (Role(..)) import Language.PureScript.TypeClassDictionaries (NamedDict)-import Language.PureScript.Types (SourceConstraint, SourceType, Type(..), TypeVarVisibility(..), eqType, srcTypeConstructor)+import Language.PureScript.Types (SourceConstraint, SourceType, Type(..), TypeVarVisibility(..), eqType, srcTypeConstructor, freeTypeVariables) import Language.PureScript.Constants.Prim qualified as C  -- | The @Environment@ defines all values and types which are currently in scope:@@ -54,9 +54,10 @@   { typeClassArguments :: [(Text, Maybe SourceType)]   -- ^ A list of type argument names, and their kinds, where kind annotations   -- were provided.-  , typeClassMembers :: [(Ident, SourceType)]-  -- ^ A list of type class members and their types. Type arguments listed above-  -- are considered bound in these types.+  , typeClassMembers :: [(Ident, SourceType, Maybe (S.Set (NEL.NonEmpty Int)))]+  -- ^ A list of type class members and their types and whether or not+  -- they have type variables that must be defined using Visible Type Applications.+  -- Type arguments listed above are considered bound in these types.   , typeClassSuperclasses :: [SourceConstraint]   -- ^ A list of superclasses of this type class. Type arguments listed above   -- are considered bound in the types appearing in these constraints.@@ -129,9 +130,22 @@   -> [FunctionalDependency]   -> Bool   -> TypeClassData-makeTypeClassData args m s deps = TypeClassData args m s deps determinedArgs coveringSets+makeTypeClassData args m s deps = TypeClassData args m' s deps determinedArgs coveringSets   where     ( determinedArgs, coveringSets ) = computeCoveringSets (length args) deps++    coveringSets' = S.toList coveringSets++    m' = map (\(a, b) -> (a, b, addVtaInfo b)) m+    +    addVtaInfo :: SourceType -> Maybe (S.Set (NEL.NonEmpty Int))+    addVtaInfo memberTy = do+      let mentionedArgIndexes = S.fromList (mapMaybe argToIndex $ freeTypeVariables memberTy)+      let leftovers = map (`S.difference` mentionedArgIndexes) coveringSets'+      S.fromList <$> traverse (NEL.nonEmpty . S.toList) leftovers++    argToIndex :: Text -> Maybe Int+    argToIndex = flip M.lookup $ M.fromList (zipWith ((,) . fst) args [0..])  -- A moving frontier of sets to consider, along with the fundeps that can be -- applied in each case. At each stage, all sets in the frontier will be the
src/Language/PureScript/Errors.hs view
@@ -111,7 +111,7 @@   | NoInstanceFound       SourceConstraint -- ^ constraint that could not be solved       [Qualified (Either SourceType Ident)] -- ^ a list of instances that stopped further progress in instance chains due to ambiguity-      Bool -- ^ whether eliminating unknowns with annotations might help+      UnknownsHint -- ^ whether eliminating unknowns with annotations might help or if visible type applications are required   | AmbiguousTypeVariables SourceType [(Text, Int)]   | UnknownClass (Qualified (ProperName 'ClassName))   | PossiblyInfiniteInstance (Qualified (ProperName 'ClassName)) [SourceType]@@ -177,8 +177,6 @@   | ClassInstanceArityMismatch Ident (Qualified (ProperName 'ClassName)) Int Int   -- | a user-defined warning raised by using the Warn type class   | UserDefinedWarning SourceType-  -- | a declaration couldn't be used because it contained free variables-  | UnusableDeclaration Ident [[Text]]   | CannotDefinePrimModules ModuleName   | MixedAssociativityError (NEL.NonEmpty (Qualified (OpName 'AnyOpName), Associativity))   | NonAssociativeError (NEL.NonEmpty (Qualified (OpName 'AnyOpName)))@@ -352,7 +350,6 @@   CannotUseBindWithDo{} -> "CannotUseBindWithDo"   ClassInstanceArityMismatch{} -> "ClassInstanceArityMismatch"   UserDefinedWarning{} -> "UserDefinedWarning"-  UnusableDeclaration{} -> "UnusableDeclaration"   CannotDefinePrimModules{} -> "CannotDefinePrimModules"   MixedAssociativityError{} -> "MixedAssociativityError"   NonAssociativeError{} -> "NonAssociativeError"@@ -917,7 +914,8 @@             , line ("You can use " <> markCode "_ <- ..." <> " to explicitly discard the result.")             ]     renderSimpleErrorMessage (NoInstanceFound (Constraint _ nm _ ts _) ambiguous unks) =-      paras [ line "No type class instance was found for"+      paras $+            [ line "No type class instance was found for"             , markCodeBox $ indent $ Box.hsep 1 Box.left                 [ line (showQualified runProperName nm)                 , Box.vcat Box.left (map prettyTypeAtom ts)@@ -930,10 +928,32 @@                         [] -> []                         [_] -> useMessage "The following instance partially overlaps the above constraint, which means the rest of its instance chain will not be considered:"                         _ -> useMessage "The following instances partially overlap the above constraint, which means the rest of their instance chains will not be considered:"-            , paras [ line "The instance head contains unknown type variables. Consider adding a type annotation."-                    | unks-                    ]-            ]+            ] <> case unks of+                  NoUnknowns ->+                    []+                  Unknowns ->+                    [ line "The instance head contains unknown type variables. Consider adding a type annotation." ]+                  UnknownsWithVtaRequiringArgs tyClassMembersRequiringVtas ->+                    let+                      renderSingleTyClassMember (tyClassMember, argsRequiringVtas) =+                        Box.moveRight 2 $ paras $+                          [ line $ markCode (showQualified showIdent tyClassMember) ]+                          <> case argsRequiringVtas of+                              [required] ->+                                [ Box.moveRight 2 $ line $ T.intercalate ", " required ]+                              options -> +                                [ Box.moveRight 2 $ line "One of the following sets of type variables:"+                                , Box.moveRight 2 $ paras $+                                    map (\set -> Box.moveRight 2 $ line $ T.intercalate ", " set) options+                                ]+                    in+                      [ paras+                        [ line "The instance head contains unknown type variables."+                        , Box.moveDown 1 $ paras $+                            [ line $ "Note: The following type class members found in the expression require visible type applications to be unambiguous (e.g. " <> markCode "tyClassMember @Int" <> ")."]+                            <> map renderSingleTyClassMember (NEL.toList tyClassMembersRequiringVtas)+                        ]+                      ]     renderSimpleErrorMessage (AmbiguousTypeVariables t uis) =       paras [ line "The inferred type"             , markCodeBox $ indent $ prettyType t@@ -1275,22 +1295,6 @@       let msg = fromMaybe (prettyType msgTy) (toTypelevelString msgTy) in       paras [ line "A custom warning occurred while solving type class constraints:"             , indent msg-            ]--    renderSimpleErrorMessage (UnusableDeclaration ident unexplained) =-      paras $-        [ line $ "The declaration " <> markCode (showIdent ident) <> " contains arguments that couldn't be determined."-        ] <>--        case unexplained of-          [required] ->-            [ line $ "These arguments are: { " <> T.intercalate ", " required <> " }"-            ]--          options  ->-            [ line "To fix this, one of the following sets of variables must be determined:"-            , Box.moveRight 2 . Box.vsep 0 Box.top $-                map (\set -> line $ "{ " <> T.intercalate ", " set <> " }") options             ]      renderSimpleErrorMessage (CannotDefinePrimModules mn) =
src/Language/PureScript/Externs.hs view
@@ -254,7 +254,7 @@     = [ EDType (coerceProperName className) kind tk       , EDType dictName dictKind dictData       , EDDataConstructor dctor dty dictName ty args-      , EDClass className typeClassArguments typeClassMembers typeClassSuperclasses typeClassDependencies typeClassIsEmpty+      , EDClass className typeClassArguments ((\(a, b, _) -> (a, b)) <$> typeClassMembers) typeClassSuperclasses typeClassDependencies typeClassIsEmpty       ]   toExternsDeclaration (TypeInstanceRef ss' ident ns)     = [ EDInstance tcdClassName (lookupRenamedIdent ident) tcdForAll tcdInstanceKinds tcdInstanceTypes tcdDependencies tcdChain tcdIndex ns ss'
src/Language/PureScript/Interactive/Printer.hs view
@@ -69,7 +69,7 @@                     textT (P.runProperName name)                     Box.<> textT (foldMap ((" " <>) . fst) typeClassArguments)                 classBody =-                    Box.vcat Box.top (map (\(i, t) -> textT (P.showIdent i <> " ::") Box.<+> P.typeAsBox maxBound t) typeClassMembers)+                    Box.vcat Box.top (map (\(i, t, _) -> textT (P.showIdent i <> " ::") Box.<+> P.typeAsBox maxBound t) typeClassMembers)              in               Just $
src/Language/PureScript/Sugar/TypeClasses.hs view
@@ -305,7 +305,7 @@   in ValueDecl sa ident Private []     [MkUnguarded (      TypedValue False (Abs (VarBinder ss dictIdent) (Case [Var ss $ Qualified ByNullSourcePos dictIdent] [CaseAlternative [ctor] [MkUnguarded acsr]])) $-       addVisibility visibility (moveQuantifiersToFront (quantify (srcConstrainedType (srcConstraint className [] (map (srcTypeVar . fst) args) Nothing) ty)))+       addVisibility visibility (moveQuantifiersToFront NullSourceAnn (quantify (srcConstrainedType (srcConstraint className [] (map (srcTypeVar . fst) args) Nothing) ty)))     )] typeClassMemberToDictionaryAccessor _ _ _ _ = internalError "Invalid declaration in type class definition" @@ -333,7 +333,7 @@       M.lookup (qualify mn className) m    -- Replace the type arguments with the appropriate types in the member types-  let memberTypes = map (second (replaceAllTypeVars (zip (map fst typeClassArguments) tys))) typeClassMembers+  let memberTypes = map (second (replaceAllTypeVars (zip (map fst typeClassArguments) tys)) . tuple3To2) typeClassMembers    let declaredMembers = S.fromList $ mapMaybe declIdent decls @@ -386,3 +386,6 @@   [ superclassName pn index   | (index, Constraint _ pn _ _ _) <- zip [0..] supers   ]++tuple3To2 :: (a, b, c) -> (a, b)+tuple3To2 (a, b, _) = (a, b)
src/Language/PureScript/TypeChecker.hs view
@@ -18,7 +18,7 @@ import Control.Monad.Writer.Class (MonadWriter, tell)  import Data.Foldable (for_, traverse_, toList)-import Data.List (nub, nubBy, (\\), sort, group)+import Data.List (nubBy, (\\), sort, group) import Data.Maybe (fromMaybe, listToMaybe, mapMaybe) import Data.Either (partitionEithers) import Data.Text (Text)@@ -45,7 +45,7 @@ import Language.PureScript.TypeChecker.Types as T import Language.PureScript.TypeChecker.Unify (varIfUnknown) import Language.PureScript.TypeClassDictionaries (NamedDict, TypeClassDictionaryInScope(..))-import Language.PureScript.Types (Constraint(..), SourceConstraint, SourceType, Type(..), containsForAll, eqType, everythingOnTypes, freeTypeVariables, overConstraintArgs, srcInstanceType, unapplyTypes)+import Language.PureScript.Types (Constraint(..), SourceConstraint, SourceType, Type(..), containsForAll, eqType, everythingOnTypes, overConstraintArgs, srcInstanceType, unapplyTypes)  addDataType   :: (MonadState CheckState m, MonadError MultipleErrors m, MonadWriter MultipleErrors m)@@ -161,7 +161,6 @@       hasSig = qualName `M.member` types env   unless (hasSig || not (containsForAll kind)) $ do     tell . errorMessage $ MissingKindDeclaration ClassSig (disqualify qualName) kind-  traverse_ (checkMemberIsUsable newClass (typeSynonyms env) (types env)) classMembers   putEnv $ env { types = M.insert qualName (kind, ExternData (nominalRolesForKind kind)) (types env)                , typeClasses = M.insert qualifiedClassName newClass (typeClasses env) }   where@@ -179,29 +178,8 @@         Just tcd -> tcd         Nothing -> internalError "Unknown super class in TypeClassDeclaration" -    coveringSets :: TypeClassData -> [S.Set Int]-    coveringSets = S.toList . typeClassCoveringSets--    argToIndex :: Text -> Maybe Int-    argToIndex = flip M.lookup $ M.fromList (zipWith ((,) . fst) args [0..])-     toPair (TypeDeclaration (TypeDeclarationData _ ident ty)) = (ident, ty)     toPair _ = internalError "Invalid declaration in TypeClassDeclaration"--    -- Currently we are only checking usability based on the type class currently-    -- being defined.  If the mentioned arguments don't include a covering set,-    -- then we won't be able to find a instance.-    checkMemberIsUsable :: TypeClassData -> T.SynonymMap -> T.KindMap -> (Ident, SourceType) -> m ()-    checkMemberIsUsable newClass syns kinds (ident, memberTy) = do-      memberTy' <- T.replaceAllTypeSynonymsM syns kinds memberTy-      let mentionedArgIndexes = S.fromList (mapMaybe argToIndex (freeTypeVariables memberTy'))-      let leftovers = map (`S.difference` mentionedArgIndexes) (coveringSets newClass)--      unless (any null leftovers) . throwError . errorMessage $-        let-          solutions = map (map (fst . (args !!)) . S.toList) leftovers-        in-          UnusableDeclaration ident (nub solutions)  addTypeClassDictionaries   :: (MonadState CheckState m)
src/Language/PureScript/TypeChecker/Entailment.hs view
@@ -11,7 +11,7 @@   ) where  import Prelude-import Protolude (ordNub)+import Protolude (ordNub, headMay)  import Control.Arrow (second, (&&&)) import Control.Monad.Error.Class (MonadError(..))@@ -22,7 +22,7 @@ import Data.Either (lefts, partitionEithers) import Data.Foldable (for_, fold, toList) import Data.Function (on)-import Data.Functor (($>))+import Data.Functor (($>), (<&>)) import Data.List (delete, findIndices, minimumBy, nubBy, sortOn, tails) import Data.Maybe (catMaybes, fromMaybe, listToMaybe, mapMaybe) import Data.Map qualified as M@@ -33,7 +33,8 @@ import Data.List.NonEmpty (NonEmpty(..)) import Data.List.NonEmpty qualified as NEL -import Language.PureScript.AST (Binder(..), ErrorMessageHint(..), Expr(..), Literal(..), pattern NullSourceSpan, everywhereOnValuesTopDownM, nullSourceSpan)+import Language.PureScript.AST (Binder(..), ErrorMessageHint(..), Expr(..), Literal(..), pattern NullSourceSpan, everywhereOnValuesTopDownM, nullSourceSpan, everythingOnValues)+import Language.PureScript.AST.Declarations (UnknownsHint(..)) import Language.PureScript.Crash (internalError) import Language.PureScript.Environment (Environment(..), FunctionalDependency(..), TypeClassData(..), dictTypeName, kindRow, tyBoolean, tyInt, tyString) import Language.PureScript.Errors (MultipleErrors, SimpleErrorMessage(..), addHint, addHints, errorMessage, rethrow)@@ -250,9 +251,11 @@             env <- lift . lift $ gets checkEnv             let classesInScope = typeClasses env             TypeClassData-              { typeClassDependencies+              { typeClassArguments+              , typeClassDependencies               , typeClassIsEmpty               , typeClassCoveringSets+              , typeClassMembers                } <- case M.lookup className' classesInScope of                 Nothing -> throwError . errorMessage $ UnknownClass className'                 Just tcd -> pure tcd@@ -276,7 +279,9 @@                                     else Left (Left (tcdToInstanceDescription tcd)) -- can't continue with this chain yet, need proof of apartness                    lefts [found]-            solution <- lift . lift $ unique kinds'' tys'' ambiguous instances (unknownsInAllCoveringSets tys'' typeClassCoveringSets)+            solution <- lift . lift +              $ unique kinds'' tys'' ambiguous instances +              $ unknownsInAllCoveringSets (fst . (typeClassArguments !!)) typeClassMembers tys'' typeClassCoveringSets             case solution of               Solved substs tcd -> do                 -- Note that we solved something.@@ -354,7 +359,7 @@                       (substituteType currentSubst . replaceAllTypeVars (M.toList subst) $ instKind)                       (substituteType currentSubst tyKind) -            unique :: [SourceType] -> [SourceType] -> [Qualified (Either SourceType Ident)] -> [(a, TypeClassDict)] -> Bool -> m (EntailsResult a)+            unique :: [SourceType] -> [SourceType] -> [Qualified (Either SourceType Ident)] -> [(a, TypeClassDict)] -> UnknownsHint -> m (EntailsResult a)             unique kindArgs tyArgs ambiguous [] unks               | solverDeferErrors = return Deferred               -- We need a special case for nullary type classes, since we want@@ -421,9 +426,42 @@               let fields = [ ("reflectType", Abs (VarBinder nullSourceSpan UnusedIdent) (asExpression ref)) ] in               pure $ App (Constructor nullSourceSpan (coerceProperName . dictTypeName <$> C.Reflectable)) (Literal nullSourceSpan (ObjectLiteral fields)) -            unknownsInAllCoveringSets :: [SourceType] -> S.Set (S.Set Int) -> Bool-            unknownsInAllCoveringSets tyArgs = all (\s -> any (`S.member` s) unkIndices)-              where unkIndices = findIndices containsUnknowns tyArgs+            unknownsInAllCoveringSets :: (Int -> Text) -> [(Ident, SourceType, Maybe (S.Set (NEL.NonEmpty Int)))] -> [SourceType] -> S.Set (S.Set Int) -> UnknownsHint+            unknownsInAllCoveringSets indexToArgText tyClassMembers tyArgs coveringSets = do+              let unkIndices = findIndices containsUnknowns tyArgs+              if all (\s -> any (`S.member` s) unkIndices) coveringSets then +                fromMaybe Unknowns unknownsRequiringVtas+              else +                NoUnknowns+              where+                unknownsRequiringVtas = do+                  tyClassModuleName <- getQual className'+                  let+                    tyClassMemberVta :: M.Map (Qualified Ident) [[Text]]+                    tyClassMemberVta = M.fromList $ mapMaybe qualifyAndFilter tyClassMembers+                      where+                        -- Only keep type class members that need VTAs to resolve their type class instances+                        qualifyAndFilter (ident, _, mbVtaRequiredArgs) = mbVtaRequiredArgs <&> \vtaRequiredArgs ->+                          (Qualified (ByModuleName tyClassModuleName) ident, map (map indexToArgText . NEL.toList) $ S.toList vtaRequiredArgs)++                    tyClassMembersInExpr :: Expr -> [(Qualified Ident, [[Text]])]+                    tyClassMembersInExpr = getVars+                      where+                        (_, getVars, _, _, _) = everythingOnValues (++) ignore getVarIdents ignore ignore ignore+                        ignore = const []+                        getVarIdents = \case+                          Var _ ident | Just vtas <- M.lookup ident tyClassMemberVta -> +                            [(ident, vtas)]+                          _ -> +                            []++                    getECTExpr = \case+                      ErrorCheckingType expr _ -> Just expr+                      _ -> Nothing+                      +                  tyClassMembers' <- headMay $ mapMaybe (fmap tyClassMembersInExpr . getECTExpr) hints+                  membersWithVtas <- NEL.nonEmpty tyClassMembers'+                  pure $ UnknownsWithVtaRequiringArgs membersWithVtas          -- Turn a DictionaryValue into a Expr         subclassDictionaryValue :: Expr -> Qualified (ProperName 'ClassName) -> Integer -> Expr
src/Language/PureScript/TypeChecker/Entailment/Coercible.hs view
@@ -37,7 +37,7 @@  import Language.PureScript.Crash (internalError) import Language.PureScript.Environment (DataDeclType(..), Environment(..), TypeKind(..), unapplyKinds)-import Language.PureScript.Errors (DeclarationRef(..), ErrorMessageHint(..), ExportSource, ImportDeclarationType(..), MultipleErrors, SimpleErrorMessage(..), SourceAnn, errorMessage)+import Language.PureScript.Errors (DeclarationRef(..), ErrorMessageHint(..), ExportSource, ImportDeclarationType(..), MultipleErrors, SimpleErrorMessage(..), SourceAnn, errorMessage, UnknownsHint(..)) import Language.PureScript.Names (ModuleName, ProperName, ProperNameType(..), Qualified(..), byMaybeModuleName, toMaybeModuleName) import Language.PureScript.TypeChecker.Kinds (elaborateKind, freshKindWithKind, unifyKinds') import Language.PureScript.TypeChecker.Monad (CheckState(..))@@ -531,7 +531,8 @@   -- "Consider adding a type annotation" hint, because annotating kinds to   -- instantiate unknowns in Coercible constraints should never resolve   -- NoInstanceFound errors.-  errorMessage $ NoInstanceFound (srcConstraint Prim.Coercible [k] [a, b] Nothing) [] (any containsUnknowns [a, b])+  errorMessage $ NoInstanceFound (srcConstraint Prim.Coercible [k] [a, b] Nothing) [] +    $ if any containsUnknowns [a, b] then Unknowns else NoUnknowns  -- | Constraints of the form @Coercible a b@ can be solved if the two arguments -- are the same. Since we currently don't support higher-rank arguments in
src/Language/PureScript/TypeChecker/Synonyms.hs view
@@ -7,7 +7,6 @@   ( SynonymMap   , KindMap   , replaceAllTypeSynonyms-  , replaceAllTypeSynonymsM   ) where  import Prelude@@ -61,12 +60,3 @@ replaceAllTypeSynonyms d = do   env <- getEnv   either throwError return $ replaceAllTypeSynonyms' (typeSynonyms env) (types env) d---- | Replace fully applied type synonyms by explicitly providing a 'SynonymMap'.-replaceAllTypeSynonymsM-  :: MonadError MultipleErrors m-  => SynonymMap-  -> KindMap-  -> SourceType-  -> m SourceType-replaceAllTypeSynonymsM syns kinds = either throwError pure . replaceAllTypeSynonyms' syns kinds
src/Language/PureScript/Types.hs view
@@ -4,7 +4,7 @@ module Language.PureScript.Types where  import Prelude-import Protolude (ordNub)+import Protolude (ordNub, fromMaybe)  import Codec.Serialise (Serialise) import Control.Applicative ((<|>))@@ -18,7 +18,7 @@ import Data.Foldable (fold, foldl') import Data.IntSet qualified as IS import Data.List (sortOn)-import Data.Maybe (fromMaybe, isJust)+import Data.Maybe (isJust) import Data.Text (Text) import Data.Text qualified as T import GHC.Generics (Generic)@@ -530,7 +530,7 @@   go bs m (ForAll ann vis v mbK t sco)     | v `elem` keys = go bs (filter ((/= v) . fst) m) $ ForAll ann vis v mbK' t sco     | v `elem` usedVars =-      let v' = genName v (keys ++ bs ++ usedVars)+      let v' = genPureName v (keys ++ bs ++ usedVars)           t' = go bs [(v, TypeVar ann v')] t       in ForAll ann vis v' mbK' (go (v' : bs) m t') sco     | otherwise = ForAll ann vis v mbK' (go (v : bs) m t) sco@@ -545,10 +545,12 @@   go bs m (ParensInType ann t) = ParensInType ann (go bs m t)   go _  _ ty = ty -  genName orig inUse = try' 0 where-    try' :: Integer -> Text-    try' n | (orig <> T.pack (show n)) `elem` inUse = try' (n + 1)-           | otherwise = orig <> T.pack (show n)+genPureName :: Text -> [Text] -> Text+genPureName orig inUse = try' 0+  where+  try' :: Integer -> Text+  try' n | (orig <> T.pack (show n)) `elem` inUse = try' (n + 1)+         | otherwise = orig <> T.pack (show n)  -- | Add visible type abstractions to top-level foralls. addVisibility :: [(Text, TypeVarVisibility)] -> Type a -> Type a@@ -597,11 +599,24 @@ quantify ty = foldr (\arg t -> ForAll (getAnnForType ty) TypeVarInvisible arg Nothing t Nothing) ty $ freeTypeVariables ty  -- | Move all universal quantifiers to the front of a type-moveQuantifiersToFront :: Type a -> Type a-moveQuantifiersToFront = go [] [] where-  go qs cs (ForAll ann vis q mbK ty sco) = go ((ann, q, sco, mbK, vis) : qs) cs ty-  go qs cs (ConstrainedType ann c ty) = go qs ((ann, c) : cs) ty-  go qs cs ty = foldl (\ty' (ann, q, sco, mbK, vis) -> ForAll ann vis q mbK ty' sco) (foldl (\ty' (ann, c) -> ConstrainedType ann c ty') ty cs) qs+moveQuantifiersToFront :: a -> Type a -> Type a+moveQuantifiersToFront syntheticAnn = go [] [] +  where+  go qs cs = \case+    ForAll ann vis q mbK ty sco -> do+      let +        cArgs :: [Text] = cs >>= constraintArgs . snd >>= freeTypeVariables+        (q'', ty')+          | q `elem` cArgs = do+              let q' = genPureName q $ cArgs <> freeTypeVariables ty+              (q', replaceTypeVars q (TypeVar syntheticAnn q') ty)+          | otherwise =+              (q, ty)+      go ((ann, q'', sco, mbK, vis) : qs) cs ty'+    ConstrainedType ann c ty ->+      go qs ((ann, c) : cs) ty+    ty -> +      foldl (\ty' (ann, q, sco, mbK, vis) -> ForAll ann vis q mbK ty' sco) (foldl (\ty' (ann, c) -> ConstrainedType ann c ty') ty cs) qs  -- | Check if a type contains `forall` containsForAll :: Type a -> Bool
+ tests/purs/failing/ClassHeadNoVTA1.out view
@@ -0,0 +1,25 @@+Error found:+in module [33mMain[0m+at tests/purs/failing/ClassHeadNoVTA1.purs:8:10 - 8:19 (line 8, column 10 - line 8, column 19)++  No type class instance was found for+  [33m                [0m+  [33m  Main.Single t0[0m+  [33m                [0m+  The instance head contains unknown type variables.++  Note: The following type class members found in the expression require visible type applications to be unambiguous (e.g. [33mtyClassMember @Int[0m).+    [33mMain.useSingle[0m+      tyNotAppearInBody++while checking that type [33mforall (t12 :: Type) (@tyNotAppearInBody :: t12). Single @t12 tyNotAppearInBody => Int[0m+  is at least as general as type [33mInt[0m+while checking that expression [33museSingle[0m+  has type [33mInt[0m+in value declaration [33msingle[0m++where [33mt0[0m is an unknown type++See https://github.com/purescript/documentation/blob/master/errors/NoInstanceFound.md for more information,+or to contribute content related to this error.+
+ tests/purs/failing/ClassHeadNoVTA1.purs view
@@ -0,0 +1,8 @@+-- @shouldFailWith NoInstanceFound+module Main where++class Single tyNotAppearInBody where+  useSingle :: Int++single :: Int+single = useSingle
+ tests/purs/failing/ClassHeadNoVTA2.out view
@@ -0,0 +1,27 @@+Error found:+in module [33mMain[0m+at tests/purs/failing/ClassHeadNoVTA2.purs:10:9 - 10:17 (line 10, column 9 - line 10, column 17)++  No type class instance was found for+  [33m               [0m+  [33m  Main.Multi t0[0m+  [33m             t1[0m+  [33m               [0m+  The instance head contains unknown type variables.++  Note: The following type class members found in the expression require visible type applications to be unambiguous (e.g. [33mtyClassMember @Int[0m).+    [33mMain.useMulti[0m+      tyNotAppearInBody, norThisOne++while checking that type [33mforall (t20 :: Type) (t21 :: Type) (@tyNotAppearInBody :: t20) (@norThisOne :: t21). Multi @t20 @t21 tyNotAppearInBody norThisOne => Int[0m+  is at least as general as type [33mInt[0m+while checking that expression [33museMulti[0m+  has type [33mInt[0m+in value declaration [33mmulti[0m++where [33mt0[0m is an unknown type+      [33mt1[0m is an unknown type++See https://github.com/purescript/documentation/blob/master/errors/NoInstanceFound.md for more information,+or to contribute content related to this error.+
+ tests/purs/failing/ClassHeadNoVTA2.purs view
@@ -0,0 +1,11 @@+-- @shouldFailWith NoInstanceFound+module Main where++import Prelude++class Multi tyNotAppearInBody norThisOne where+  useMulti :: Int++multi :: Int+multi = useMulti+
+ tests/purs/failing/ClassHeadNoVTA3.out view
@@ -0,0 +1,28 @@+Error found:+in module [33mMain[0m+at tests/purs/failing/ClassHeadNoVTA3.purs:8:16 - 8:36 (line 8, column 16 - line 8, column 36)++  No type class instance was found for+  [33m                       [0m+  [33m  Main.MultiMissing Int[0m+  [33m                    t2 [0m+  [33m                       [0m+  The instance head contains unknown type variables.++  Note: The following type class members found in the expression require visible type applications to be unambiguous (e.g. [33mtyClassMember @Int[0m).+    [33mMain.useMultiMissing[0m+      tyNotAppearInBody, norThisOne++while checking that type [33mforall (@norThisOne :: t0). MultiMissing @t1 @t0 Int norThisOne => Int[0m+  is at least as general as type [33mInt[0m+while checking that expression [33museMultiMissing[0m+  has type [33mInt[0m+in value declaration [33mmultiMissing[0m++where [33mt1[0m is an unknown type+      [33mt0[0m is an unknown type+      [33mt2[0m is an unknown type++See https://github.com/purescript/documentation/blob/master/errors/NoInstanceFound.md for more information,+or to contribute content related to this error.+
+ tests/purs/failing/ClassHeadNoVTA3.purs view
@@ -0,0 +1,9 @@+-- @shouldFailWith NoInstanceFound+module Main where++class MultiMissing tyNotAppearInBody norThisOne where+  useMultiMissing :: Int++multiMissing :: Int+multiMissing = useMultiMissing @Int+
+ tests/purs/failing/ClassHeadNoVTA4.out view
@@ -0,0 +1,27 @@+Error found:+in module [33mMain[0m+at tests/purs/failing/ClassHeadNoVTA4.purs:8:11 - 8:21 (line 8, column 11 - line 8, column 21)++  No type class instance was found for+  [33m                 [0m+  [33m  Main.MultiFd t0[0m+  [33m               t1[0m+  [33m                 [0m+  The instance head contains unknown type variables.++  Note: The following type class members found in the expression require visible type applications to be unambiguous (e.g. [33mtyClassMember @Int[0m).+    [33mMain.useMultiFd[0m+      tyNotAppearInBody++while checking that type [33mforall (t20 :: Type) (t21 :: Type) (@tyNotAppearInBody :: t20) (@norThisOne :: t21). MultiFd @t20 @t21 tyNotAppearInBody norThisOne => Int[0m+  is at least as general as type [33mInt[0m+while checking that expression [33museMultiFd[0m+  has type [33mInt[0m+in value declaration [33mmultiFd[0m++where [33mt0[0m is an unknown type+      [33mt1[0m is an unknown type++See https://github.com/purescript/documentation/blob/master/errors/NoInstanceFound.md for more information,+or to contribute content related to this error.+
+ tests/purs/failing/ClassHeadNoVTA4.purs view
@@ -0,0 +1,8 @@+-- @shouldFailWith NoInstanceFound+module Main where++class MultiFd tyNotAppearInBody norThisOne | tyNotAppearInBody -> norThisOne where+  useMultiFd :: Int++multiFd :: Int+multiFd = useMultiFd
+ tests/purs/failing/ClassHeadNoVTA5.out view
@@ -0,0 +1,29 @@+Error found:+in module [33mMain[0m+at tests/purs/failing/ClassHeadNoVTA5.purs:10:15 - 10:29 (line 10, column 15 - line 10, column 29)++  No type class instance was found for+  [33m                     [0m+  [33m  Main.MultiFdBidi t0[0m+  [33m                   t1[0m+  [33m                     [0m+  The instance head contains unknown type variables.++  Note: The following type class members found in the expression require visible type applications to be unambiguous (e.g. [33mtyClassMember @Int[0m).+    [33mMain.useMultiFdBidi[0m+      One of the following sets of type variables:+        tyNotAppearInBody+        norThisOne++while checking that type [33mforall (t20 :: Type) (t21 :: Type) (@tyNotAppearInBody :: t20) (@norThisOne :: t21). MultiFdBidi @t20 @t21 tyNotAppearInBody norThisOne => Int[0m+  is at least as general as type [33mInt[0m+while checking that expression [33museMultiFdBidi[0m+  has type [33mInt[0m+in value declaration [33mmultiFdBidi[0m++where [33mt0[0m is an unknown type+      [33mt1[0m is an unknown type++See https://github.com/purescript/documentation/blob/master/errors/NoInstanceFound.md for more information,+or to contribute content related to this error.+
+ tests/purs/failing/ClassHeadNoVTA5.purs view
@@ -0,0 +1,10 @@+-- @shouldFailWith NoInstanceFound+module Main where++-- Verify that args in output match order defined here:+-- `tyNotAppearInBody` appears before `norThisOne`+class MultiFdBidi tyNotAppearInBody norThisOne | tyNotAppearInBody -> norThisOne, norThisOne -> tyNotAppearInBody where+  useMultiFdBidi :: Int++multiFdBidi :: Int+multiFdBidi = useMultiFdBidi
+ tests/purs/failing/ClassHeadNoVTA6a.out view
@@ -0,0 +1,37 @@+Error found:+in module [33mMain[0m+at tests/purs/failing/ClassHeadNoVTA6a.purs:12:15 - 12:25 (line 12, column 15 - line 12, column 25)++  No type class instance was found for+  [33m                           [0m+  [33m  Main.MultiCoveringSets t0[0m+  [33m                         t1[0m+  [33m                         t2[0m+  [33m                         t3[0m+  [33m                         t4[0m+  [33m                         t5[0m+  [33m                           [0m+  The instance head contains unknown type variables.++  Note: The following type class members found in the expression require visible type applications to be unambiguous (e.g. [33mtyClassMember @Int[0m).+    [33mMain.noneOfSets[0m+      One of the following sets of type variables:+        a, b+        e, f++while checking that type [33mforall (t82 :: Type) (t83 :: Type) (@a :: Type) (@b :: t82) (@c :: Type) (@d :: Type) (@e :: t83) (@f :: Type). MultiCoveringSets @t82 @t83 a b c d e f => Int[0m+  is at least as general as type [33mInt[0m+while checking that expression [33mnoneOfSets[0m+  has type [33mInt[0m+in value declaration [33mnoneOfSets'[0m++where [33mt0[0m is an unknown type+      [33mt1[0m is an unknown type+      [33mt2[0m is an unknown type+      [33mt3[0m is an unknown type+      [33mt4[0m is an unknown type+      [33mt5[0m is an unknown type++See https://github.com/purescript/documentation/blob/master/errors/NoInstanceFound.md for more information,+or to contribute content related to this error.+
+ tests/purs/failing/ClassHeadNoVTA6a.purs view
@@ -0,0 +1,12 @@+-- @shouldFailWith NoInstanceFound+module Main where++class MultiCoveringSets a b c d e f | a b -> c d e f, f e -> a b c d where+  noneOfSets :: Int++  partialOfABSet :: a -> { c :: c, d :: d }++  partialOfFESet :: f -> { c :: c, d :: d }++noneOfSets' :: Int+noneOfSets' = noneOfSets
+ tests/purs/failing/ClassHeadNoVTA6b.out view
@@ -0,0 +1,50 @@+Error found:+in module [33mMain[0m+at tests/purs/failing/ClassHeadNoVTA6b.purs:16:19 - 16:33 (line 16, column 19 - line 16, column 33)++  No type class instance was found for+  [33m                           [0m+  [33m  Main.MultiCoveringSets a0[0m+  [33m                         t3[0m+  [33m                         c1[0m+  [33m                         d2[0m+  [33m                         t4[0m+  [33m                         t5[0m+  [33m                           [0m+  The instance head contains unknown type variables.++  Note: The following type class members found in the expression require visible type applications to be unambiguous (e.g. [33mtyClassMember @Int[0m).+    [33mMain.partialOfABSet[0m+      One of the following sets of type variables:+        b+        e, f++while checking that type [33mforall (t70 :: Type) (t71 :: Type) (@a :: Type) (@b :: t70) (@c :: Type) (@d :: Type) (@e :: t71) (@f :: Type).[0m+                         [33m  MultiCoveringSets @t70 @t71 a b c d e f => a                                                                 [0m+                         [33m                                             -> { c :: c                                                       [0m+                         [33m                                                , d :: d                                                       [0m+                         [33m                                                }                                                              [0m+  is at least as general as type [33ma0          [0m+                                 [33m-> { c :: c1[0m+                                 [33m   , d :: d2[0m+                                 [33m   }        [0m+while checking that expression [33mpartialOfABSet[0m+  has type [33ma0          [0m+           [33m-> { c :: c1[0m+           [33m   , d :: d2[0m+           [33m   }        [0m+in value declaration [33mpartialOfABSet'[0m++where [33ma0[0m is a rigid type variable+        bound at (line 16, column 19 - line 16, column 33)+      [33mc1[0m is a rigid type variable+        bound at (line 16, column 19 - line 16, column 33)+      [33md2[0m is a rigid type variable+        bound at (line 16, column 19 - line 16, column 33)+      [33mt3[0m is an unknown type+      [33mt4[0m is an unknown type+      [33mt5[0m is an unknown type++See https://github.com/purescript/documentation/blob/master/errors/NoInstanceFound.md for more information,+or to contribute content related to this error.+
+ tests/purs/failing/ClassHeadNoVTA6b.purs view
@@ -0,0 +1,16 @@+-- @shouldFailWith NoInstanceFound+module Main where++class MultiCoveringSets a b c d e f | a b -> c d e f, f e -> a b c d where+  noneOfSets :: Int++  partialOfABSet :: a -> { c :: c, d :: d }++  partialOfFESet :: f -> { c :: c, d :: d }++partialOfABSet' +  :: forall a b c d e f+   . MultiCoveringSets a b c d e f+  => a+  -> { c :: c, d :: d }+partialOfABSet' = partialOfABSet
+ tests/purs/failing/ClassHeadNoVTA6c.out view
@@ -0,0 +1,50 @@+Error found:+in module [33mMain[0m+at tests/purs/failing/ClassHeadNoVTA6c.purs:16:19 - 16:33 (line 16, column 19 - line 16, column 33)++  No type class instance was found for+  [33m                           [0m+  [33m  Main.MultiCoveringSets t3[0m+  [33m                         t4[0m+  [33m                         c1[0m+  [33m                         d2[0m+  [33m                         t5[0m+  [33m                         f0[0m+  [33m                           [0m+  The instance head contains unknown type variables.++  Note: The following type class members found in the expression require visible type applications to be unambiguous (e.g. [33mtyClassMember @Int[0m).+    [33mMain.partialOfFESet[0m+      One of the following sets of type variables:+        a, b+        e++while checking that type [33mforall (t58 :: Type) (t59 :: Type) (@a :: Type) (@b :: t58) (@c :: Type) (@d :: Type) (@e :: t59) (@f :: Type).[0m+                         [33m  MultiCoveringSets @t58 @t59 a b c d e f => f                                                                 [0m+                         [33m                                             -> { c :: c                                                       [0m+                         [33m                                                , d :: d                                                       [0m+                         [33m                                                }                                                              [0m+  is at least as general as type [33mf0          [0m+                                 [33m-> { c :: c1[0m+                                 [33m   , d :: d2[0m+                                 [33m   }        [0m+while checking that expression [33mpartialOfFESet[0m+  has type [33mf0          [0m+           [33m-> { c :: c1[0m+           [33m   , d :: d2[0m+           [33m   }        [0m+in value declaration [33mpartialOfFESet'[0m++where [33mc1[0m is a rigid type variable+        bound at (line 16, column 19 - line 16, column 33)+      [33md2[0m is a rigid type variable+        bound at (line 16, column 19 - line 16, column 33)+      [33mf0[0m is a rigid type variable+        bound at (line 16, column 19 - line 16, column 33)+      [33mt3[0m is an unknown type+      [33mt4[0m is an unknown type+      [33mt5[0m is an unknown type++See https://github.com/purescript/documentation/blob/master/errors/NoInstanceFound.md for more information,+or to contribute content related to this error.+
+ tests/purs/failing/ClassHeadNoVTA6c.purs view
@@ -0,0 +1,16 @@+-- @shouldFailWith NoInstanceFound+module Main where++class MultiCoveringSets a b c d e f | a b -> c d e f, f e -> a b c d where+  noneOfSets :: Int++  partialOfABSet :: a -> { c :: c, d :: d }++  partialOfFESet :: f -> { c :: c, d :: d }++partialOfFESet'+  :: forall a b c d e f+   . MultiCoveringSets a b c d e f+  => f+  -> { c :: c, d :: d }+partialOfFESet' = partialOfFESet
+ tests/purs/failing/ClassHeadNoVTA7.out view
@@ -0,0 +1,25 @@+Error found:+in module [33mClassHeadNoVTA7[0m+at tests/purs/failing/ClassHeadNoVTA7.purs:12:8 - 12:26 (line 12, column 8 - line 12, column 26)++  No type class instance was found for+  [33m                              [0m+  [33m  ClassHeadNoVTA7.TestClass t1[0m+  [33m                            t2[0m+  [33m                              [0m+  The instance head contains unknown type variables. Consider adding a type annotation.++while applying a function [33mtestMethod[0m+  of type [33mTestClass @t0 t1 t2 => Maybe t1 -> Int[0m+  to argument [33mNothing[0m+while checking that expression [33mtestMethod Nothing[0m+  has type [33mInt[0m+in value declaration [33mtest[0m++where [33mt0[0m is an unknown type+      [33mt1[0m is an unknown type+      [33mt2[0m is an unknown type++See https://github.com/purescript/documentation/blob/master/errors/NoInstanceFound.md for more information,+or to contribute content related to this error.+
+ tests/purs/failing/ClassHeadNoVTA7.purs view
@@ -0,0 +1,12 @@+-- @shouldFailWith NoInstanceFound+module ClassHeadNoVTA7 where++import Prelude++import Data.Maybe (Maybe(..))++class TestClass a b | a -> b, b -> a where+  testMethod :: Maybe a -> Int++test :: Int+test = testMethod Nothing
tests/purs/failing/TypedHole.out view
@@ -7,12 +7,14 @@   [33m  Effect Unit[0m   [33m             [0m   You could substitute the hole with one of these values:-  [33m                                                                  [0m-  [33m  Data.Monoid.mempty          :: forall @m. Monoid m => m         [0m-  [33m  Effect.Class.Console.clear  :: forall m. MonadEffect m => m Unit[0m-  [33m  Effect.Console.clear        :: Effect Unit                      [0m-  [33m  Main.main                   :: Effect Unit                      [0m-  [33m                                                                  [0m+  [33m                                                                     [0m+  [33m  Data.Monoid.mempty             :: forall @m. Monoid m => m         [0m+  [33m  Effect.Class.Console.clear     :: forall m. MonadEffect m => m Unit[0m+  [33m  Effect.Class.Console.groupEnd  :: forall m. MonadEffect m => m Unit[0m+  [33m  Effect.Console.clear           :: Effect Unit                      [0m+  [33m  Effect.Console.groupEnd        :: Effect Unit                      [0m+  [33m  Main.main                      :: Effect Unit                      [0m+  [33m                                                                     [0m  in value declaration [33mmain[0m 
− tests/purs/failing/UnusableTypeClassMethod.out
@@ -1,12 +0,0 @@-Error found:-in module [33mMain[0m-at tests/purs/failing/UnusableTypeClassMethod.purs:4:1 - 6:9 (line 4, column 1 - line 6, column 9)--  The declaration [33mc[0m contains arguments that couldn't be determined.-  These arguments are: { a }--in type class declaration for [33mC[0m--See https://github.com/purescript/documentation/blob/master/errors/UnusableDeclaration.md for more information,-or to contribute content related to this error.-
− tests/purs/failing/UnusableTypeClassMethod.purs
@@ -1,7 +0,0 @@--- @shouldFailWith UnusableDeclaration-module Main where--class C a b where-  -- type doesn't contain `a`, which is also required to determine an instance-  c :: b-
− tests/purs/failing/UnusableTypeClassMethodConflictingIdent.out
@@ -1,12 +0,0 @@-Error found:-in module [33mMain[0m-at tests/purs/failing/UnusableTypeClassMethodConflictingIdent.purs:4:1 - 6:19 (line 4, column 1 - line 6, column 19)--  The declaration [33mc[0m contains arguments that couldn't be determined.-  These arguments are: { a }--in type class declaration for [33mC[0m--See https://github.com/purescript/documentation/blob/master/errors/UnusableDeclaration.md for more information,-or to contribute content related to this error.-
− tests/purs/failing/UnusableTypeClassMethodConflictingIdent.purs
@@ -1,7 +0,0 @@--- @shouldFailWith UnusableDeclaration-module Main where--class C a where-  -- type doesn't contain the type class var `a`-  c :: forall a. a-
− tests/purs/failing/UnusableTypeClassMethodSynonym.out
@@ -1,12 +0,0 @@-Error found:-in module [33mMain[0m-at tests/purs/failing/UnusableTypeClassMethodSynonym.purs:6:1 - 8:11 (line 6, column 1 - line 8, column 11)--  The declaration [33mc[0m contains arguments that couldn't be determined.-  These arguments are: { a }--in type class declaration for [33mC[0m--See https://github.com/purescript/documentation/blob/master/errors/UnusableDeclaration.md for more information,-or to contribute content related to this error.-
− tests/purs/failing/UnusableTypeClassMethodSynonym.purs
@@ -1,9 +0,0 @@--- @shouldFailWith UnusableDeclaration-module Main where--type M x = forall a. a--class C a where-  -- after synonym expansion, the type doesn't actually contain an `a`-  c :: M a-
+ tests/purs/passing/VTAsClassHeads.purs view
@@ -0,0 +1,196 @@+module Main where++import Prelude+import Data.Array as Array+import Data.Array.NonEmpty as NEA+import Data.Maybe (Maybe(..))+import Data.Either (Either(..), either)+import Data.Foldable (traverse_)+import Data.Traversable (sequence)+import Effect (Effect)+import Effect.Console (log)++class Singleton x where+  singleton :: String++instance Singleton Int where+  singleton = "int"++instance Singleton String where+  singleton = "string"++singletonWorks :: Effect (Maybe String)+singletonWorks = do+  let+    left = singleton @Int+    right = singleton @String+  pure if left /= right then Nothing else Just "Singleton failed"++class ConflictingIdent :: Type -> Constraint+class ConflictingIdent a where+  -- The `a` in the type below should refer to the `a`+  -- introduced by the `forall`, not the class head.+  conflictingIdent :: forall a. a -> Int++instance ConflictingIdent String where+  conflictingIdent _ = 1++instance ConflictingIdent Int where+  conflictingIdent _ = 2++conflictingIdentWorks :: Effect (Maybe String)+conflictingIdentWorks = do+  pure if (1 == conflictingIdent @String 4) then Nothing else Just "ConflictingIdent failed"++type M :: Type -> Type+type M x = forall a. a -> Int++class ConflictingIdentSynonym :: Type -> Constraint+class ConflictingIdentSynonym a where+  -- The `a` in the type below should refer to the `a`+  -- introduced by the `forall`, not the class head.+  conflictingIdentSynonym :: M a++instance ConflictingIdentSynonym String where+  conflictingIdentSynonym _ = 1++instance ConflictingIdentSynonym Int where+  conflictingIdentSynonym _ = 2++conflictingIdentSynonymWorks :: Effect (Maybe String)+conflictingIdentSynonymWorks = do+  pure if (1 == conflictingIdentSynonym @String 4) then Nothing else Just "ConflictingIdentSynonym failed"++class MultiNoFDs a b where+  multiNoFds :: Int++instance MultiNoFDs Int Int where+  multiNoFds = 0++instance MultiNoFDs String Int where+  multiNoFds = 1++multiNoFdsWorks :: Effect (Maybe String)+multiNoFdsWorks = do+  let+    left = multiNoFds @Int @Int+    right = multiNoFds @String @Int+  pure if left /= right then Nothing else Just "MultiNoFDs failed"++class MultiWithFDs a b | a -> b where+  multiWithFDs :: Int++instance MultiWithFDs Int Int where+  multiWithFDs = 0++instance MultiWithFDs String Int where+  multiWithFDs = 1++multiWithFdsWorks :: Effect (Maybe String)+multiWithFdsWorks = do+  let+    left = multiWithFDs @Int+    right = multiWithFDs @String+  pure if left /= right then Nothing else Just "MultiWithFds failed"++class MultiWithBidiFDs a b | a -> b, b -> a where+  multiWithBidiFDs :: Int++instance MultiWithBidiFDs Int Int where+  multiWithBidiFDs = 0++instance MultiWithBidiFDs String String where+  multiWithBidiFDs = 1++multiWithBidiFDsLeftWorks :: Effect (Maybe String)+multiWithBidiFDsLeftWorks = do+  let+    left = multiWithBidiFDs @Int+    right = multiWithBidiFDs @String+  pure if left /= right then Nothing else Just "MultiWithFds failed"++multiWithBidiFDsRightWorks :: Effect (Maybe String)+multiWithBidiFDsRightWorks = do+  let+    left = multiWithBidiFDs @_ @Int+    right = multiWithBidiFDs @_ @String+  pure if left /= right then Nothing else Just "MultiWithFds failed"++class Superclass a where+  superClassValue :: a++class Superclass a <= MainClass a where+  mainClassInt :: Int++data A2 = A2++derive instance Eq A2++instance Superclass A2 where+  superClassValue = A2++instance MainClass A2 where+  mainClassInt = 0++data B2 = B2++derive instance Eq B2++instance Superclass B2 where+  superClassValue = B2++instance MainClass B2 where+  mainClassInt = 3++mainClassWorks :: Effect (Maybe String)+mainClassWorks = do+  let+    test1 = 0 == mainClassInt @A2+    test2 = A2 == superClassValue @A2+  pure if test1 && test2 then Nothing else Just "MainClass failed"++class MultiCoveringSets a b c d e f | a b -> c d e f, f e -> a b c d where+  noneOfSets :: Int++  partialOfABSet :: a -> { c :: c, d :: d }++  partialOfFESet :: f -> { c :: c, d :: d }++instance MultiCoveringSets Boolean Boolean String String Int Int where+  noneOfSets = 1+  partialOfABSet a = { c: if a then "101" else "100", d: "1" }+  partialOfFESet f = { c: show f, d: "1" }++instance MultiCoveringSets Int Int String String Boolean Boolean where+  noneOfSets = 2+  partialOfABSet a = { c: show a, d: "2" }+  partialOfFESet f = { c: show f, d: "2" }++multiCoveringSetsWorks :: Effect (Maybe String)+multiCoveringSetsWorks = do+  let+    test1a = 1 == noneOfSets @Boolean @Boolean+    test1b = "101" == (partialOfABSet @Boolean @Boolean true).c+    test1c = show 3 == (partialOfFESet @_ @_ @_ @_ @Int @Int 3).c+    test2a = 2 == noneOfSets @_ @_ @_ @_ @Boolean @Boolean+    test2b = show 20 == (partialOfABSet @_ @_ @_ @_ @Boolean @Boolean 20).c+    test2c = show false == (partialOfFESet @_ @_ @_ @_ @Boolean @Boolean false).c+    passes = test1a && test1b && test1c && test2a && test2b && test2c+  pure if passes then Nothing else Just "MultiCoveringSets failed"++main = do+  arr' <- sequence+    [ singletonWorks+    , conflictingIdentWorks+    , conflictingIdentSynonymWorks+    , multiNoFdsWorks+    , multiWithFdsWorks+    , multiWithBidiFDsLeftWorks+    , multiWithBidiFDsRightWorks+    , mainClassWorks+    ]+  case NEA.fromArray $ Array.catMaybes arr' of+    Just errs ->+      log $ "Errors..." <> (Array.intercalate "\n" $ NEA.toArray errs)+    Nothing ->+      log "Done"
tests/purs/publish/basic-example/output/Effect.Class.Console/docs.json view
@@ -1,1 +1,1 @@-{"comments":null,"declarations":[{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"m","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"m","tag":"TypeVar"}],"constraintClass":[["Effect","Class"],"MonadEffect"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[9,51],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","start":[9,1]},"title":"log"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"m","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"m","tag":"TypeVar"}],"constraintClass":[["Effect","Class"],"MonadEffect"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Show"],"Show"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[12,62],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","start":[12,1]},"title":"logShow"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"m","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"m","tag":"TypeVar"}],"constraintClass":[["Effect","Class"],"MonadEffect"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[15,52],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","start":[15,1]},"title":"warn"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"m","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"m","tag":"TypeVar"}],"constraintClass":[["Effect","Class"],"MonadEffect"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Show"],"Show"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[18,63],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","start":[18,1]},"title":"warnShow"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"m","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"m","tag":"TypeVar"}],"constraintClass":[["Effect","Class"],"MonadEffect"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[21,53],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","start":[21,1]},"title":"error"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"m","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"m","tag":"TypeVar"}],"constraintClass":[["Effect","Class"],"MonadEffect"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Show"],"Show"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[24,64],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","start":[24,1]},"title":"errorShow"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"m","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"m","tag":"TypeVar"}],"constraintClass":[["Effect","Class"],"MonadEffect"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[27,52],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","start":[27,1]},"title":"info"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"m","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"m","tag":"TypeVar"}],"constraintClass":[["Effect","Class"],"MonadEffect"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Show"],"Show"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[30,63],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","start":[30,1]},"title":"infoShow"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"m","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"m","tag":"TypeVar"}],"constraintClass":[["Effect","Class"],"MonadEffect"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[33,53],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","start":[33,1]},"title":"debug"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"m","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"m","tag":"TypeVar"}],"constraintClass":[["Effect","Class"],"MonadEffect"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Show"],"Show"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[36,64],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","start":[36,1]},"title":"debugShow"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"m","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"m","tag":"TypeVar"}],"constraintClass":[["Effect","Class"],"MonadEffect"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[39,52],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","start":[39,1]},"title":"time"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"m","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"m","tag":"TypeVar"}],"constraintClass":[["Effect","Class"],"MonadEffect"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[42,55],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","start":[42,1]},"title":"timeLog"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"m","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"m","tag":"TypeVar"}],"constraintClass":[["Effect","Class"],"MonadEffect"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[45,55],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","start":[45,1]},"title":"timeEnd"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"m","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"m","tag":"TypeVar"}],"constraintClass":[["Effect","Class"],"MonadEffect"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[48,43],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","start":[48,1]},"title":"clear"}],"name":"Effect.Class.Console","reExports":[]}+{"comments":null,"declarations":[{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"m","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"m","tag":"TypeVar"}],"constraintClass":[["Effect","Class"],"MonadEffect"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[10,51],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","start":[10,1]},"title":"log"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"m","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"m","tag":"TypeVar"}],"constraintClass":[["Effect","Class"],"MonadEffect"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Show"],"Show"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[13,62],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","start":[13,1]},"title":"logShow"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"m","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"m","tag":"TypeVar"}],"constraintClass":[["Effect","Class"],"MonadEffect"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[16,52],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","start":[16,1]},"title":"warn"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"m","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"m","tag":"TypeVar"}],"constraintClass":[["Effect","Class"],"MonadEffect"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Show"],"Show"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[19,63],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","start":[19,1]},"title":"warnShow"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"m","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"m","tag":"TypeVar"}],"constraintClass":[["Effect","Class"],"MonadEffect"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[22,53],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","start":[22,1]},"title":"error"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"m","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"m","tag":"TypeVar"}],"constraintClass":[["Effect","Class"],"MonadEffect"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Show"],"Show"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[25,64],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","start":[25,1]},"title":"errorShow"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"m","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"m","tag":"TypeVar"}],"constraintClass":[["Effect","Class"],"MonadEffect"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[28,52],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","start":[28,1]},"title":"info"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"m","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"m","tag":"TypeVar"}],"constraintClass":[["Effect","Class"],"MonadEffect"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Show"],"Show"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[31,63],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","start":[31,1]},"title":"infoShow"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"m","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"m","tag":"TypeVar"}],"constraintClass":[["Effect","Class"],"MonadEffect"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[34,53],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","start":[34,1]},"title":"debug"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"m","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"m","tag":"TypeVar"}],"constraintClass":[["Effect","Class"],"MonadEffect"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Show"],"Show"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[37,64],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","start":[37,1]},"title":"debugShow"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"m","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"m","tag":"TypeVar"}],"constraintClass":[["Effect","Class"],"MonadEffect"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[40,52],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","start":[40,1]},"title":"time"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"m","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"m","tag":"TypeVar"}],"constraintClass":[["Effect","Class"],"MonadEffect"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[43,55],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","start":[43,1]},"title":"timeLog"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"m","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"m","tag":"TypeVar"}],"constraintClass":[["Effect","Class"],"MonadEffect"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[46,55],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","start":[46,1]},"title":"timeEnd"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"m","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"m","tag":"TypeVar"}],"constraintClass":[["Effect","Class"],"MonadEffect"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[49,43],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","start":[49,1]},"title":"clear"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"m","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"m","tag":"TypeVar"}],"constraintClass":[["Effect","Class"],"MonadEffect"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[52,53],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","start":[52,1]},"title":"group"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"m","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"m","tag":"TypeVar"}],"constraintClass":[["Effect","Class"],"MonadEffect"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[55,62],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","start":[55,1]},"title":"groupCollapsed"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"m","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"m","tag":"TypeVar"}],"constraintClass":[["Effect","Class"],"MonadEffect"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[58,46],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","start":[58,1]},"title":"groupEnd"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"m","kind":null,"skolem":null,"type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"m","tag":"TypeVar"}],"constraintClass":[["Effect","Class"],"MonadEffect"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":"m","tag":"TypeVar"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[61,61],"name":"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs","start":[61,1]},"title":"grouped"}],"name":"Effect.Class.Console","reExports":[]}
tests/purs/publish/basic-example/output/Effect.Console/docs.json view
@@ -1,1 +1,1 @@-{"comments":null,"declarations":[{"children":[],"comments":"Write a message to the console.\n","info":{"declType":"value","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"kind":null,"sourceSpan":{"end":[11,17],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","start":[9,1]},"title":"log"},{"children":[],"comments":"Write a value to the console, using its `Show` instance to produce a\n`String`.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Show"],"Show"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[15,48],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","start":[15,1]},"title":"logShow"},{"children":[],"comments":"Write an warning to the console.\n","info":{"declType":"value","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"kind":null,"sourceSpan":{"end":[21,17],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","start":[19,1]},"title":"warn"},{"children":[],"comments":"Write an warning value to the console, using its `Show` instance to produce\na `String`.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Show"],"Show"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[25,49],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","start":[25,1]},"title":"warnShow"},{"children":[],"comments":"Write an error to the console.\n","info":{"declType":"value","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"kind":null,"sourceSpan":{"end":[31,17],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","start":[29,1]},"title":"error"},{"children":[],"comments":"Write an error value to the console, using its `Show` instance to produce a\n`String`.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Show"],"Show"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[35,50],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","start":[35,1]},"title":"errorShow"},{"children":[],"comments":"Write an info message to the console.\n","info":{"declType":"value","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"kind":null,"sourceSpan":{"end":[41,17],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","start":[39,1]},"title":"info"},{"children":[],"comments":"Write an info value to the console, using its `Show` instance to produce a\n`String`.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Show"],"Show"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[45,49],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","start":[45,1]},"title":"infoShow"},{"children":[],"comments":"Write an debug message to the console.\n","info":{"declType":"value","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"kind":null,"sourceSpan":{"end":[51,17],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","start":[49,1]},"title":"debug"},{"children":[],"comments":"Write an debug value to the console, using its `Show` instance to produce a\n`String`.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Show"],"Show"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[55,50],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","start":[55,1]},"title":"debugShow"},{"children":[],"comments":"Start a named timer.\n","info":{"declType":"value","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"kind":null,"sourceSpan":{"end":[59,45],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","start":[59,1]},"title":"time"},{"children":[],"comments":"Print the time since a named timer started in milliseconds.\n","info":{"declType":"value","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"kind":null,"sourceSpan":{"end":[62,48],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","start":[62,1]},"title":"timeLog"},{"children":[],"comments":"Stop a named timer and print time since it started in milliseconds.\n","info":{"declType":"value","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"kind":null,"sourceSpan":{"end":[65,48],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","start":[65,1]},"title":"timeEnd"},{"children":[],"comments":"Clears the console\n","info":{"declType":"value","type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"kind":null,"sourceSpan":{"end":[68,36],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","start":[68,1]},"title":"clear"}],"name":"Effect.Console","reExports":[]}+{"comments":null,"declarations":[{"children":[],"comments":"Write a message to the console.\n","info":{"declType":"value","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"kind":null,"sourceSpan":{"end":[12,17],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","start":[10,1]},"title":"log"},{"children":[],"comments":"Write a value to the console, using its `Show` instance to produce a\n`String`.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Show"],"Show"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[16,48],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","start":[16,1]},"title":"logShow"},{"children":[],"comments":"Write an warning to the console.\n","info":{"declType":"value","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"kind":null,"sourceSpan":{"end":[22,17],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","start":[20,1]},"title":"warn"},{"children":[],"comments":"Write an warning value to the console, using its `Show` instance to produce\na `String`.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Show"],"Show"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[26,49],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","start":[26,1]},"title":"warnShow"},{"children":[],"comments":"Write an error to the console.\n","info":{"declType":"value","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"kind":null,"sourceSpan":{"end":[32,17],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","start":[30,1]},"title":"error"},{"children":[],"comments":"Write an error value to the console, using its `Show` instance to produce a\n`String`.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Show"],"Show"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[36,50],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","start":[36,1]},"title":"errorShow"},{"children":[],"comments":"Write an info message to the console.\n","info":{"declType":"value","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"kind":null,"sourceSpan":{"end":[42,17],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","start":[40,1]},"title":"info"},{"children":[],"comments":"Write an info value to the console, using its `Show` instance to produce a\n`String`.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Show"],"Show"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[46,49],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","start":[46,1]},"title":"infoShow"},{"children":[],"comments":"Write an debug message to the console.\n","info":{"declType":"value","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"kind":null,"sourceSpan":{"end":[52,17],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","start":[50,1]},"title":"debug"},{"children":[],"comments":"Write an debug value to the console, using its `Show` instance to produce a\n`String`.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"a","tag":"TypeVar"}],"constraintClass":[["Data","Show"],"Show"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[56,50],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","start":[56,1]},"title":"debugShow"},{"children":[],"comments":"Start a named timer.\n","info":{"declType":"value","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"kind":null,"sourceSpan":{"end":[60,45],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","start":[60,1]},"title":"time"},{"children":[],"comments":"Print the time since a named timer started in milliseconds.\n","info":{"declType":"value","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"kind":null,"sourceSpan":{"end":[63,48],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","start":[63,1]},"title":"timeLog"},{"children":[],"comments":"Stop a named timer and print time since it started in milliseconds.\n","info":{"declType":"value","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"kind":null,"sourceSpan":{"end":[66,48],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","start":[66,1]},"title":"timeEnd"},{"children":[],"comments":"Clears the console\n","info":{"declType":"value","type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"kind":null,"sourceSpan":{"end":[69,36],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","start":[69,1]},"title":"clear"},{"children":[],"comments":"Creates a new inline group in the console. This indents following console\nmessages by an additional level, until `groupEnd` is called.\n","info":{"declType":"value","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"kind":null,"sourceSpan":{"end":[73,46],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","start":[73,1]},"title":"group"},{"children":[],"comments":"Same as `group`, but groups are collapsed by default.\n","info":{"declType":"value","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"kind":null,"sourceSpan":{"end":[76,55],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","start":[76,1]},"title":"groupCollapsed"},{"children":[],"comments":"Exits the current inline group in the console.\n","info":{"declType":"value","type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"kind":null,"sourceSpan":{"end":[79,39],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","start":[79,1]},"title":"groupEnd"},{"children":[],"comments":"Perform an effect within the context of an inline group in the console.\nCalls `group` and `groupEnd` before and after the effect, respectively.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"a","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Effect"],"Effect"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[83,52],"name":"../../../support/bower_components/purescript-console/src/Effect/Console.purs","start":[83,1]},"title":"grouped"}],"name":"Effect.Console","reExports":[]}
tests/purs/publish/basic-example/output/cache-db.json view
@@ -1,1 +1,1 @@-{"Control.Applicative":{"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs":["2022-08-18T20:04:00Z","5889c8a23c34d2d9c7d1fe41df1512314055fafda79900099b37a76451fb6394dac06633caf5c206c432817a9c07b892b18c3b99d1013a298acc85a579aee2f1"]},"Control.Apply":{"../../../support/bower_components/purescript-prelude/src/Control/Apply.js":["2022-08-18T20:04:00Z","73ee829e5dfad80f1d5f957d0e52b1d069ea798919d608b4733cedda4736681ec26d7e33501428966bf213b8a344c1272f7658867780c7237baf90da4c9d5ad3"],"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs":["2022-08-18T20:04:00Z","524e797c42f16dbc375aa2403a4867a5744116d9302bda790333251ccf88d773e079fb8c3af1f87eccdc0c0bbf682b932a48506ca5f51ef441832177fafd4eb0"]},"Control.Bind":{"../../../support/bower_components/purescript-prelude/src/Control/Bind.js":["2022-08-18T20:04:00Z","abbbecd9697ae2109a9b74f70bfce37c0589e0d99b10e090660e1c76a491744c84fd459c53172256c70cdaffde3f0dc1abe0464fa32b977cf71e789425ca8bfe"],"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs":["2022-08-18T20:04:00Z","27f217ea2d5e4ab2745ad05b6d0aa36ee8809dc9d5c22162f722b2f003cf140bb18747f158daeca469a1083b7b054f9a6a9681d092598b3ea25cada7fe510d75"]},"Control.Category":{"../../../support/bower_components/purescript-prelude/src/Control/Category.purs":["2022-08-18T20:04:00Z","6431719d022f6d4230f338935381a7e116a18cdf80c67bdf76d87a7624518bc9fd1e4adfe45c8a59d77f07caf7c8e9faae741e99fada42455143c4fb924e7988"]},"Control.Monad":{"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs":["2022-08-18T20:04:00Z","5d13918b1f360fb201125c334399566fdef398f1b44af0754cb261b6e514481b26a0d4ad892944d4a52d513c41a20702d9973be000d9e2436c4fb48940cc07ca"]},"Control.Semigroupoid":{"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs":["2022-08-18T20:04:00Z","f5b1e9fdd81471d37f763b7fff8bd94f2111fd9ad6092bc925e409d5c69261860045230cde5c95ebbb3141acce54372bcf4d01c9b044fd59959822c9576135e8"]},"Data.Boolean":{"../../../support/bower_components/purescript-prelude/src/Data/Boolean.purs":["2022-08-18T20:04:00Z","aa81cf83948d1c45051dcfb835b0caef7a8ed8a39c58d8126f4efde1973880dbcd169d36bbe8c82a62586c386810bf0824f018674a93c606e43bc451fb6c3819"]},"Data.BooleanAlgebra":{"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs":["2022-08-18T20:04:00Z","464f2df7f5bc3fc5e64cb0462c841f93fa2a609545e10f0adce637185e345aa45eed2a7e164ba648bb947168279c999ef8cd9f5dab9fce9af3b9329a8829b971"]},"Data.Bounded":{"../../../support/bower_components/purescript-prelude/src/Data/Bounded.js":["2022-08-18T20:04:00Z","8bfa62b2e886ce6d58793d840513c68cefc1fa0c4a15a5e6a0c0ee5d607fea425f8080365c0f3f421116c4362eba447617cd65a221ee1e4cc0a75610752d3b75"],"../../../support/bower_components/purescript-prelude/src/Data/Bounded.purs":["2022-08-18T20:04:00Z","36762aa05b71843e1d2f23cc64b1a17ea3acf91745de39e8723a04f3cc12f50c83e6a9b8a58c0463eaed0e93dfe3112e1f896130bab0660a5a009391f00ed468"]},"Data.Bounded.Generic":{"../../../support/bower_components/purescript-prelude/src/Data/Bounded/Generic.purs":["2022-08-18T20:04:00Z","15f4f3499dd9c2a1f37345357db2f131cc57e37a4ddfaa8497dabd3d123abd8b9670bdd3910b84b6c44c8b63bf1873af783adb1edc8455985f244b6ecbef733b"]},"Data.CommutativeRing":{"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs":["2022-08-18T20:04:00Z","c8bf53bf06454a74ba3a605d100b59bb5ba9111dd20e073713422c080075555b653bcaddde078d55130e737de30ba336920a099a6016fd4158af88b1f430b631"]},"Data.DivisionRing":{"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs":["2022-08-18T20:04:00Z","1f3c74ecd87798ace30371f036ef1590f7e4dbc5be05f51162f9b3700d61c0befd6a5b53ace34626103e500043de3b67225de2c442841106f6d8960658355aae"]},"Data.Eq":{"../../../support/bower_components/purescript-prelude/src/Data/Eq.js":["2022-08-18T20:04:00Z","6718a356e77f3fe29c3f353f02fd94583b4edf5a0a0d7bdfdbcb046e7ef3440781aaa466ee88f12be6a72f274eb9c51d4d051673f4893fc408e9053bb8d84368"],"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs":["2022-08-18T20:04:00Z","65598d7093548c9848e1c661bb778ebd402f09b4584570c09082d765997056b335bf0f05397cd788c44bb2f00b3bd2115cba2ed45033ade9ac40d91efd64301d"]},"Data.Eq.Generic":{"../../../support/bower_components/purescript-prelude/src/Data/Eq/Generic.purs":["2022-08-18T20:04:00Z","88d9841c3e55b1063721bc8ff168aa8b53cd3581a8c3ffee6ed71a96ba4d2d20b7b454cb0e7f13b2fa7a6bcaf4ca0dfc609ce624f5ad74eece1e13a93b0a121d"]},"Data.EuclideanRing":{"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.js":["2022-08-18T20:04:00Z","9bf37abbb8d5c826e2152f62c99251e9cfeac8226ead81262527a2c544765336b6a0a8df731664d1b7d7804ad821ddfb0bd2c58d91d61fea6232d6adaeb6fc69"],"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs":["2022-08-18T20:04:00Z","252c8162d273ea69e96619d760b48f7302ad048ed2bdd542695fbf0489948d24369b2bd40addd7fa505e810cf411727fe9fd57546a3011ebe1fa3c534beac414"]},"Data.Field":{"../../../support/bower_components/purescript-prelude/src/Data/Field.purs":["2022-08-18T20:04:00Z","21c8a682ad74b9389e1c538ca1dbc5cc4da34b13945a1bd11812631f8f56e723e65f9452eba5b43ea8209f88c57e8566529667673b6b78ade1a08350a28b04cc"]},"Data.Function":{"../../../support/bower_components/purescript-prelude/src/Data/Function.purs":["2022-08-18T20:04:00Z","42320940aa4cdbab54308acc9ad8eac48cb3facf1f695eeb32c8473bdf31e6d51e9d689bd256c833cedd3cf40882c484153f56e8582bfc1353cc0f3b7867aa0f"]},"Data.Functor":{"../../../support/bower_components/purescript-prelude/src/Data/Functor.js":["2022-08-18T20:04:00Z","889e7781cb01bcb3007c8400d844b250905a7cc893d0391a09c2f907c8993271b0daf081548206d4c5a3948fdc7a51df5a99c6fe38c61a90ccdcb38f22886ae7"],"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs":["2022-08-18T20:04:00Z","077d9d6d3e754807e5200b970988daf12894942995bb7f8698c0e0a2d08b64842dc5257efe088c045d7d0a6de2a10cb6c58b976b26243f66f69d0fa9791f60e7"]},"Data.Generic.Rep":{"../../../support/bower_components/purescript-prelude/src/Data/Generic/Rep.purs":["2022-08-18T20:04:00Z","69c6cac0ae8035b7a0bad28c1fb8c0c0d99bc93087392f5dbebac6a30bca3b5fa352741f93f432b7aa4c617e1f23d59939a69c716775e84375e112b4bb9175d1"]},"Data.HeytingAlgebra":{"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.js":["2022-08-18T20:04:00Z","3603479b96cd22a9b312ef922b95d5b342ecd8d4b1b8984a15fcfa64b92ec66128f14fdc795c2c525c9b6e6912934f2ea542df9f30b3caac3bbb085ba3326265"],"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs":["2022-08-18T20:04:00Z","d8942636d4f1804c94eb7527b48f48f500843d34e2ec0b45515f4d5c836ce4437806feb4a603735f1a799243f244a72c6fda218ffe5d58f7f0cbbcbfadb01bbd"]},"Data.HeytingAlgebra.Generic":{"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra/Generic.purs":["2022-08-18T20:04:00Z","ea49a37bf16af73cb930d0eb573bca8cc8e63de0a796c504f531f05d503976a59f464fa5a039a2ae9b486c9ba70857008bfb06acaaeaad6ee0f9f429355043e2"]},"Data.Monoid":{"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs":["2022-08-18T20:04:00Z","172ecdf1da579ac35b44cb9d87424b7bb45f27b2f49a0e51be34cc1d2863a15929436321b8ed46059601b3ba171053b4129067066be0596da42607d697d8d484"]},"Data.Monoid.Additive":{"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs":["2022-08-18T20:04:00Z","514e26851127fb9b52c618a36f17758513d9a7ea6724866b208e2c2447c3c3b3a9a18218b715b765e5e1e00908e2ebc0d9f2e67171ab3e46543a01508b54de67"]},"Data.Monoid.Conj":{"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs":["2022-08-18T20:04:00Z","441eb08d322aa39654f68fe39676ba5fe470252adc4da087c590245ff7b0b624885c57ade6e66f24485862873767198678a219afbd7c2fc68f2ca59978d7d9c2"]},"Data.Monoid.Disj":{"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs":["2022-08-18T20:04:00Z","f38cea70c5a7216b6b17c796dfbc8b08d9f05bed22d81d3784322f9f06f127435b4c9009a2027c24efc998c781796b9007bc70bc3bd1eee935b1a9695077bc7a"]},"Data.Monoid.Dual":{"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs":["2022-08-18T20:04:00Z","54058218c4c5323d42e95d54a1c64b9e2ded8afdaeef2f846ef123bd4fd6772551e2158a6a9802ca327bbc4fb995f4fd5d416fd59c7a6efc8f8fe9bc5e7dc709"]},"Data.Monoid.Endo":{"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs":["2022-08-18T20:04:00Z","543f16c8df42353334deddd7e25a58340aaa3f4a902a997d6b08e3128ca0afb82b3ac720e8ca8d4475cfc063906df1439afd3f2e22f7684aeb9ee0bc2992e774"]},"Data.Monoid.Generic":{"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Generic.purs":["2022-08-18T20:04:00Z","9e2ef0cf0469c1e798f8767cb472ee1b0103dfd6b08ed0a777c89d5043358b70cf14c2784ea59f05795f648daf80e11b2150fa89a05bc8c0afa6dafeb2fc09ac"]},"Data.Monoid.Multiplicative":{"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs":["2022-08-18T20:04:00Z","f0c40f939ed3a3f00712fc7485926733668101c201e5d57e19d72ce6be84455b7b2d7360d747154a9d071df9b72e4e5ad2ac2a36db093a1b702fed4e6f4de9e3"]},"Data.NaturalTransformation":{"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs":["2022-08-18T20:04:00Z","6b9fc42ec524a517d464dea99867c64345cdbcbada4260a772373a956961ad1c9a4a3a4f8ed4a0c7c7f3e36120068954141841c5d6bdc4e5898ea06435104bb7"]},"Data.Newtype":{"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs":["2022-04-27T15:04:33Z","4289a67b60c9760f41b6fb86b71bb0bb2c576b279ae447be7fe4c3ff408ea4705ca17522647bcd8da582ef646a4abfd53fc3310d4d9d6c68816a8ccd480140be"]},"Data.Ord":{"../../../support/bower_components/purescript-prelude/src/Data/Ord.js":["2022-08-18T20:04:00Z","d3f620d4e07a9ce41745d2df0c43701dc41726e4be601b790bb054089ca52d97380299b90fe88f166e2195d76c4cbe195d941e8619fd2d14242a6a347881b1a9"],"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs":["2022-08-18T20:04:00Z","f0ca6f6131e2699584e55846fb9f4300b778c12f39f0c5a19286081c39c537c1a511c69d01ca6d7216776c73daeeced9ae0b6e1281d4b2e39abb4cc5432e6b75"]},"Data.Ord.Generic":{"../../../support/bower_components/purescript-prelude/src/Data/Ord/Generic.purs":["2022-08-18T20:04:00Z","d566cfa79ec03e335f632d3edc3b913081583188d8496897c1b0904c1895525caeb5b0464b76d40ae5ef79e5c7b516ad061c1d98aa6e1c649f555be4c839087e"]},"Data.Ordering":{"../../../support/bower_components/purescript-prelude/src/Data/Ordering.purs":["2022-08-18T20:04:00Z","321b8de9b25c2616a3dbc6bff2e2def1cf7592ad54e575bd2b62d440d5dd88d7b5332f6c68fc010424e36ac13d61b5bcaadcf619ff940c667360b2c102f6e2af"]},"Data.Reflectable":{"../../../support/bower_components/purescript-prelude/src/Data/Reflectable.js":["2022-08-18T20:04:00Z","1bbaef3b7bb472cbc13eb30d9a75f2d580d5950fe692a3e137322558a651d0352f8a7499538028404a611afecde17f551b7cbc4030bdaf0b50e6828362cf29bd"],"../../../support/bower_components/purescript-prelude/src/Data/Reflectable.purs":["2022-08-18T20:04:00Z","02beca227031091fd31673ff64153c2f84ba22c61f362acc88411643233fe91d8cabf6206319785f7b910d8dff7c81528ca7e05048e284bfc720e71f804f7a6c"]},"Data.Ring":{"../../../support/bower_components/purescript-prelude/src/Data/Ring.js":["2022-08-18T20:04:00Z","bce8767b39bf1d9af8182f80f91e376db07ae8912b991fcea6eaf37900f91c6b6ede6fb874c40ff5b3d40fc6a893468d0f0cb31106f6188ca52514ae0a081da6"],"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs":["2022-08-18T20:04:00Z","4e727f1f786ced8ce8202805713a9a2810c6ef9522694535c219ce22f66e032ca374163c82db137dd7d2ded6ae4dc2786ee8b6efd1df810d5cbda9c7e2c0832e"]},"Data.Ring.Generic":{"../../../support/bower_components/purescript-prelude/src/Data/Ring/Generic.purs":["2022-08-18T20:04:00Z","8c94b1a5765b99950600e690e01e3da65cd7e43fe78f651f8531c45d41775572af47e62f21705857c82ae52251626c34f0f41180ee0563115f749c7bc0459324"]},"Data.Semigroup":{"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.js":["2022-08-18T20:04:00Z","fb416511575b93baf1081317aba42e97da52fdb724c07110a05c360e5254528f54715a47fa22ed4298bbdfb62c8641c8ea5ef92af9a259d51164cf541026fabc"],"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs":["2022-08-18T20:04:00Z","43c3fbd4ab0a7a5346bdc69ce26ad3e6143f1f0e92bf8e7601af43d2ad68cfe4080411029ba3a9f29592f75e139a8fb923e67237b8e1cee3024c54b32ccf0b5d"]},"Data.Semigroup.First":{"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/First.purs":["2022-08-18T20:04:00Z","8ff357056284af9050954e7695babcc76f5f632019b66f635a49502170508a37b2cb20a2e863f022bf077726480d2cc32951fb910c80559806e50830f25e884e"]},"Data.Semigroup.Generic":{"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Generic.purs":["2022-08-18T20:04:00Z","8c07803971e03a3c3d4a617198eae5a3e825c411fd17af68eee57571717a2301eaf5ec5bd34bfddf14da1f1c40d780ab9538d02f22d1d19117135388c848ca89"]},"Data.Semigroup.Last":{"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Last.purs":["2022-08-18T20:04:00Z","75b3660341f9c0570031d2304c83eb8592098e2d96577c030ae969b3b958d00b21234c2c836377e7b338e4323fa4aa0c97a4a8abb7ed49e2741907a411eb0b08"]},"Data.Semiring":{"../../../support/bower_components/purescript-prelude/src/Data/Semiring.js":["2022-08-18T20:04:00Z","71c1f69848adaf5667acc7668bb53b42a14dd64f559e72d88ae879f123aa9d5892debb1758067b8c48bfcdbbd7392e2e9ea0e5d18603ab62dbdde5032662cf33"],"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs":["2022-08-18T20:04:00Z","70fe8b0c9eb461a6058b6c89ad182fb99d4e930f158b015a386ee67ece2445b5e7aba5e539dd7377822de1b045b80d1e439f191a2274c6e95c7fb3dba535d8c0"]},"Data.Semiring.Generic":{"../../../support/bower_components/purescript-prelude/src/Data/Semiring/Generic.purs":["2022-08-18T20:04:00Z","e1aeb61208e3b96999f07cc41307d50fa8025c2f688e9dc24d7286933a11cc1ec253375e10e25fb578801bcda7b18b7342bb13275f4ca72478a2aff9ea872799"]},"Data.Show":{"../../../support/bower_components/purescript-prelude/src/Data/Show.js":["2022-08-18T20:04:00Z","588e533a8d2dce9eb3815e58e38fe06ac7758adb50295d4325c47db26031d0ea48cb341d5e3d7caaeae40f4d95a9c3c5381feba3a50653d1a76e3835b0628f0d"],"../../../support/bower_components/purescript-prelude/src/Data/Show.purs":["2022-08-18T20:04:00Z","b52834da5151dffab06693e15efb93608a43ab7866901f86ee47191f085fade2d7ebbad800aff8ad7d7171d349e312bfc01dd4e8cad4eb6c12eacd50d9381764"]},"Data.Show.Generic":{"../../../support/bower_components/purescript-prelude/src/Data/Show/Generic.js":["2022-08-18T20:04:00Z","f8b9a3c651ceb9e8f2ee15ae532ecd371794b4e9f3b14eb0508656c1ae853654d7e3d3c719a9a98f0dcbc81df3b03266c05d3bc01c9b62d6d8ce29d4794e4b1b"],"../../../support/bower_components/purescript-prelude/src/Data/Show/Generic.purs":["2022-08-18T20:04:00Z","37b5a1168cd88f5f6f2d2a584cfe2c69e326b9f3e62291ec607c6e4a12da144450088fe65e95cbd04204d9c616a04696b5b3d0d7e444e8628b4a1eb3597c534d"]},"Data.Symbol":{"../../../support/bower_components/purescript-prelude/src/Data/Symbol.js":["2022-08-18T20:04:00Z","c980adfe8e297bfe8e257903de3ac13f5675c6f52ed95e8c2786fcacc52adde10b5de56c9432859c3c7c8f51d1866f2e8d4a961d60e1bff656def39e3b3cdcf7"],"../../../support/bower_components/purescript-prelude/src/Data/Symbol.purs":["2022-08-18T20:04:00Z","579409ca0036164a1a0534b266cc1c90de7b020ecea470cdedf0a97cc34ae1f25ab441df9789798dc30f6a4c8f6c6368c79dc5523d9de336e57dcc6325127cb2"]},"Data.Unit":{"../../../support/bower_components/purescript-prelude/src/Data/Unit.js":["2022-08-18T20:04:00Z","d7185d75aa1f2fe353e4e200ab4181472e354d6295cb2e6587a56636b1bc733be77b2f5616b20275fe7be0138a6442b2979864b1b234a813f8d9237baa4cd5f3"],"../../../support/bower_components/purescript-prelude/src/Data/Unit.purs":["2022-08-18T20:04:00Z","425d50d748941435bf7f4d6b61769e2b0931973280ba6dd91dcca3f963cc9223b2a7ccd5827611182348041c0813b3be828e2dacc54933ddc152d6e50f7f2f3d"]},"Data.Void":{"../../../support/bower_components/purescript-prelude/src/Data/Void.purs":["2022-08-18T20:04:00Z","28ae6f4ecd4ee9a07dc5c034f189a8740a9e14bef332d6bab73b8e3b2ea51ed2bec88d84862ff4cd989e671be324b019282a2678a6d73e59f05af414705bd47e"]},"Effect":{"../../../support/bower_components/purescript-effect/src/Effect.js":["2022-04-27T14:04:24Z","9683b917c04f50b5b8a41d8294b101d7787cd0a742840e6f05ec143f881bfb51807a2efd29a9296def2676e7c1860352f3d89f78f9205567575c5040f790da32"],"../../../support/bower_components/purescript-effect/src/Effect.purs":["2022-04-27T14:04:24Z","25ea461900466a6aade8a56c20921d46eb037a71efb12c4265dd378e760843e5793efb9f7cb47322511459136d9d4ecd6d09e5a089a432d96ef4af4530ad8e8d"]},"Effect.Class":{"../../../support/bower_components/purescript-effect/src/Effect/Class.purs":["2022-04-27T14:04:24Z","47e0114539e25826ffba341faf99133ed2499027f0955fa606d563d3504c6b41dc9d425dfa619c0c83b5fc2ab8dbb3c1bf2166b5980c5674fb93560c9b80d585"]},"Effect.Class.Console":{"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs":["2022-04-27T14:11:24Z","5a3a1a7efb4ca9d61673d954d5bed9be6eec0b512fcdffdbcca411b0fe10353da1ec9ac9e32d19f6ffe3ccb358a177cc6238064ae7dee8dfce2363ec26600edc"]},"Effect.Console":{"../../../support/bower_components/purescript-console/src/Effect/Console.js":["2022-04-27T14:11:24Z","37d5914c1c03387fb61991fa0c7273560b38a9cca1ab22a5a1071f58fb5e3cc41952c87e404f22a928e674c04fce0fa18d469b2481d6078645d20650280c9a84"],"../../../support/bower_components/purescript-console/src/Effect/Console.purs":["2022-04-27T14:11:24Z","71c92750574fc7e669d3e0a7d0f40101b91836e69275074eaf3b534fe5f68a6f3b4ebc1dc1f950f89a381996f8bdca297eac522893733bc0fd5ef2ce790af8c7"]},"Effect.Uncurried":{"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.js":["2022-04-27T14:04:24Z","4c6c5db78b72ff3b84623d894b05dd916cc0732dc08d1fd45d8b0768983fdd7377b7299add3c70475459d0e190af99e2176e4c17a8cfbf295c675456bd5ba7d2"],"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs":["2022-04-27T14:04:24Z","a948cb1cab11f5019fe20dd697b5c6e248c3b29c7ab332c2cb9d792cfcb58021a77c0f4f71e1c8d7c0b3b9cb18bd1497a0d2f40680926390f3303ecb1fe25beb"]},"Effect.Unsafe":{"../../../support/bower_components/purescript-effect/src/Effect/Unsafe.js":["2022-04-27T14:04:24Z","e66a1117e55534d61b7cd8e1859b54ef97446e0374116867383d2027bd85b73e510cbd1e4e74067b740fffb66c11e243af8d0976b2dc225d9865d882486cccdd"],"../../../support/bower_components/purescript-effect/src/Effect/Unsafe.purs":["2022-04-27T14:04:24Z","c112c559df0f177472e96655b09165d5535f68caddc2b419b4cdfe796af19b962b0659cb609a2ce501002da7de34e66592b5491ebe6f538824c2db8a1e800ea7"]},"Main":{"src/Main.purs":["2021-10-25T20:49:21Z","55bdd6dd11fb1679cb11793dd2996de21972f7aa53826557273bd649004f5907ff8cf6dff840718a12084c421529c9da7d70f698689d3923ab4ae3d608591c66"]},"Prelude":{"../../../support/bower_components/purescript-prelude/src/Prelude.purs":["2022-08-18T20:04:00Z","c67b6a882790c17476eb477da2cfc71dc4c26f297e7b4581b5ae9b0d08040ea7c7b55ed3afb3e824806e573ea4dd307eaa7cb49cfb2a756973b226ee1023e6fc"]},"Record.Unsafe":{"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.js":["2022-08-18T20:04:00Z","667d613a0e1265a710e98c9f6e64ff791b9e9b7227cdf699c3a25724077c02e42726c807c0387ca4484454fd853d5b41522bf2e048887f22a894413ef80cbb92"],"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs":["2022-08-18T20:04:00Z","af8a7c83127f5e61853ad0e572be799c04e321562a375d51ab133706ac6a6777e169b057f01a709ad7aae2d8c7a5ae8daa28eae8793c4fe92e2e8f0cfaecf870"]},"Safe.Coerce":{"../../../support/bower_components/purescript-safe-coerce/src/Safe/Coerce.purs":["2022-04-27T14:56:52Z","595abade13e21ed7893a92b338d9e7c7bf56e9067d51ca25c387d6d93a1c5542925f062e282602e89476a45501645c76dbd57eac31cc4e5c1cf341e2902beb89"]},"Type.Proxy":{"../../../support/bower_components/purescript-prelude/src/Type/Proxy.purs":["2022-08-18T20:04:00Z","333d0ae90b05098eada860ad476ed9e1eacd67d969dc1573c74375610cf8de22e85a358a7783a0a461d7ffa6fe322d8c3e90696be02555a02793ac99aba687f2"]},"Unsafe.Coerce":{"../../../support/bower_components/purescript-unsafe-coerce/src/Unsafe/Coerce.js":["2022-04-27T14:15:44Z","031c3187f7ce65110a359260041309506e1ff39a97b6eb22c9a8f2e5c14b35db87d509bb5929f245c5d80df6ccd6dadf83579ebe4ac46650acdfa34a493cfc0d"],"../../../support/bower_components/purescript-unsafe-coerce/src/Unsafe/Coerce.purs":["2022-04-27T14:15:44Z","04b214d9cbbf0c438bb2af4b25f8db5d04f247059241982f718c6d83322c3180f0eced0eb5c410860dcdb35650e9129a1cffe87f7279308cc4cf6c6570bba74f"]}}+{"Control.Applicative":{"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs":["2022-08-18T20:04:00Z","5889c8a23c34d2d9c7d1fe41df1512314055fafda79900099b37a76451fb6394dac06633caf5c206c432817a9c07b892b18c3b99d1013a298acc85a579aee2f1"]},"Control.Apply":{"../../../support/bower_components/purescript-prelude/src/Control/Apply.js":["2022-08-18T20:04:00Z","73ee829e5dfad80f1d5f957d0e52b1d069ea798919d608b4733cedda4736681ec26d7e33501428966bf213b8a344c1272f7658867780c7237baf90da4c9d5ad3"],"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs":["2022-08-18T20:04:00Z","524e797c42f16dbc375aa2403a4867a5744116d9302bda790333251ccf88d773e079fb8c3af1f87eccdc0c0bbf682b932a48506ca5f51ef441832177fafd4eb0"]},"Control.Bind":{"../../../support/bower_components/purescript-prelude/src/Control/Bind.js":["2022-08-18T20:04:00Z","abbbecd9697ae2109a9b74f70bfce37c0589e0d99b10e090660e1c76a491744c84fd459c53172256c70cdaffde3f0dc1abe0464fa32b977cf71e789425ca8bfe"],"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs":["2022-08-18T20:04:00Z","27f217ea2d5e4ab2745ad05b6d0aa36ee8809dc9d5c22162f722b2f003cf140bb18747f158daeca469a1083b7b054f9a6a9681d092598b3ea25cada7fe510d75"]},"Control.Category":{"../../../support/bower_components/purescript-prelude/src/Control/Category.purs":["2022-08-18T20:04:00Z","6431719d022f6d4230f338935381a7e116a18cdf80c67bdf76d87a7624518bc9fd1e4adfe45c8a59d77f07caf7c8e9faae741e99fada42455143c4fb924e7988"]},"Control.Monad":{"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs":["2022-08-18T20:04:00Z","5d13918b1f360fb201125c334399566fdef398f1b44af0754cb261b6e514481b26a0d4ad892944d4a52d513c41a20702d9973be000d9e2436c4fb48940cc07ca"]},"Control.Semigroupoid":{"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs":["2022-08-18T20:04:00Z","f5b1e9fdd81471d37f763b7fff8bd94f2111fd9ad6092bc925e409d5c69261860045230cde5c95ebbb3141acce54372bcf4d01c9b044fd59959822c9576135e8"]},"Data.Boolean":{"../../../support/bower_components/purescript-prelude/src/Data/Boolean.purs":["2022-08-18T20:04:00Z","aa81cf83948d1c45051dcfb835b0caef7a8ed8a39c58d8126f4efde1973880dbcd169d36bbe8c82a62586c386810bf0824f018674a93c606e43bc451fb6c3819"]},"Data.BooleanAlgebra":{"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs":["2022-08-18T20:04:00Z","464f2df7f5bc3fc5e64cb0462c841f93fa2a609545e10f0adce637185e345aa45eed2a7e164ba648bb947168279c999ef8cd9f5dab9fce9af3b9329a8829b971"]},"Data.Bounded":{"../../../support/bower_components/purescript-prelude/src/Data/Bounded.js":["2022-08-18T20:04:00Z","8bfa62b2e886ce6d58793d840513c68cefc1fa0c4a15a5e6a0c0ee5d607fea425f8080365c0f3f421116c4362eba447617cd65a221ee1e4cc0a75610752d3b75"],"../../../support/bower_components/purescript-prelude/src/Data/Bounded.purs":["2022-08-18T20:04:00Z","36762aa05b71843e1d2f23cc64b1a17ea3acf91745de39e8723a04f3cc12f50c83e6a9b8a58c0463eaed0e93dfe3112e1f896130bab0660a5a009391f00ed468"]},"Data.Bounded.Generic":{"../../../support/bower_components/purescript-prelude/src/Data/Bounded/Generic.purs":["2022-08-18T20:04:00Z","15f4f3499dd9c2a1f37345357db2f131cc57e37a4ddfaa8497dabd3d123abd8b9670bdd3910b84b6c44c8b63bf1873af783adb1edc8455985f244b6ecbef733b"]},"Data.CommutativeRing":{"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs":["2022-08-18T20:04:00Z","c8bf53bf06454a74ba3a605d100b59bb5ba9111dd20e073713422c080075555b653bcaddde078d55130e737de30ba336920a099a6016fd4158af88b1f430b631"]},"Data.DivisionRing":{"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs":["2022-08-18T20:04:00Z","1f3c74ecd87798ace30371f036ef1590f7e4dbc5be05f51162f9b3700d61c0befd6a5b53ace34626103e500043de3b67225de2c442841106f6d8960658355aae"]},"Data.Eq":{"../../../support/bower_components/purescript-prelude/src/Data/Eq.js":["2022-08-18T20:04:00Z","6718a356e77f3fe29c3f353f02fd94583b4edf5a0a0d7bdfdbcb046e7ef3440781aaa466ee88f12be6a72f274eb9c51d4d051673f4893fc408e9053bb8d84368"],"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs":["2022-08-18T20:04:00Z","65598d7093548c9848e1c661bb778ebd402f09b4584570c09082d765997056b335bf0f05397cd788c44bb2f00b3bd2115cba2ed45033ade9ac40d91efd64301d"]},"Data.Eq.Generic":{"../../../support/bower_components/purescript-prelude/src/Data/Eq/Generic.purs":["2022-08-18T20:04:00Z","88d9841c3e55b1063721bc8ff168aa8b53cd3581a8c3ffee6ed71a96ba4d2d20b7b454cb0e7f13b2fa7a6bcaf4ca0dfc609ce624f5ad74eece1e13a93b0a121d"]},"Data.EuclideanRing":{"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.js":["2022-08-18T20:04:00Z","9bf37abbb8d5c826e2152f62c99251e9cfeac8226ead81262527a2c544765336b6a0a8df731664d1b7d7804ad821ddfb0bd2c58d91d61fea6232d6adaeb6fc69"],"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs":["2022-08-18T20:04:00Z","252c8162d273ea69e96619d760b48f7302ad048ed2bdd542695fbf0489948d24369b2bd40addd7fa505e810cf411727fe9fd57546a3011ebe1fa3c534beac414"]},"Data.Field":{"../../../support/bower_components/purescript-prelude/src/Data/Field.purs":["2022-08-18T20:04:00Z","21c8a682ad74b9389e1c538ca1dbc5cc4da34b13945a1bd11812631f8f56e723e65f9452eba5b43ea8209f88c57e8566529667673b6b78ade1a08350a28b04cc"]},"Data.Function":{"../../../support/bower_components/purescript-prelude/src/Data/Function.purs":["2022-08-18T20:04:00Z","42320940aa4cdbab54308acc9ad8eac48cb3facf1f695eeb32c8473bdf31e6d51e9d689bd256c833cedd3cf40882c484153f56e8582bfc1353cc0f3b7867aa0f"]},"Data.Functor":{"../../../support/bower_components/purescript-prelude/src/Data/Functor.js":["2022-08-18T20:04:00Z","889e7781cb01bcb3007c8400d844b250905a7cc893d0391a09c2f907c8993271b0daf081548206d4c5a3948fdc7a51df5a99c6fe38c61a90ccdcb38f22886ae7"],"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs":["2022-08-18T20:04:00Z","077d9d6d3e754807e5200b970988daf12894942995bb7f8698c0e0a2d08b64842dc5257efe088c045d7d0a6de2a10cb6c58b976b26243f66f69d0fa9791f60e7"]},"Data.Generic.Rep":{"../../../support/bower_components/purescript-prelude/src/Data/Generic/Rep.purs":["2022-08-18T20:04:00Z","69c6cac0ae8035b7a0bad28c1fb8c0c0d99bc93087392f5dbebac6a30bca3b5fa352741f93f432b7aa4c617e1f23d59939a69c716775e84375e112b4bb9175d1"]},"Data.HeytingAlgebra":{"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.js":["2022-08-18T20:04:00Z","3603479b96cd22a9b312ef922b95d5b342ecd8d4b1b8984a15fcfa64b92ec66128f14fdc795c2c525c9b6e6912934f2ea542df9f30b3caac3bbb085ba3326265"],"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs":["2022-08-18T20:04:00Z","d8942636d4f1804c94eb7527b48f48f500843d34e2ec0b45515f4d5c836ce4437806feb4a603735f1a799243f244a72c6fda218ffe5d58f7f0cbbcbfadb01bbd"]},"Data.HeytingAlgebra.Generic":{"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra/Generic.purs":["2022-08-18T20:04:00Z","ea49a37bf16af73cb930d0eb573bca8cc8e63de0a796c504f531f05d503976a59f464fa5a039a2ae9b486c9ba70857008bfb06acaaeaad6ee0f9f429355043e2"]},"Data.Monoid":{"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs":["2022-08-18T20:04:00Z","172ecdf1da579ac35b44cb9d87424b7bb45f27b2f49a0e51be34cc1d2863a15929436321b8ed46059601b3ba171053b4129067066be0596da42607d697d8d484"]},"Data.Monoid.Additive":{"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs":["2022-08-18T20:04:00Z","514e26851127fb9b52c618a36f17758513d9a7ea6724866b208e2c2447c3c3b3a9a18218b715b765e5e1e00908e2ebc0d9f2e67171ab3e46543a01508b54de67"]},"Data.Monoid.Conj":{"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs":["2022-08-18T20:04:00Z","441eb08d322aa39654f68fe39676ba5fe470252adc4da087c590245ff7b0b624885c57ade6e66f24485862873767198678a219afbd7c2fc68f2ca59978d7d9c2"]},"Data.Monoid.Disj":{"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs":["2022-08-18T20:04:00Z","f38cea70c5a7216b6b17c796dfbc8b08d9f05bed22d81d3784322f9f06f127435b4c9009a2027c24efc998c781796b9007bc70bc3bd1eee935b1a9695077bc7a"]},"Data.Monoid.Dual":{"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs":["2022-08-18T20:04:00Z","54058218c4c5323d42e95d54a1c64b9e2ded8afdaeef2f846ef123bd4fd6772551e2158a6a9802ca327bbc4fb995f4fd5d416fd59c7a6efc8f8fe9bc5e7dc709"]},"Data.Monoid.Endo":{"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs":["2022-08-18T20:04:00Z","543f16c8df42353334deddd7e25a58340aaa3f4a902a997d6b08e3128ca0afb82b3ac720e8ca8d4475cfc063906df1439afd3f2e22f7684aeb9ee0bc2992e774"]},"Data.Monoid.Generic":{"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Generic.purs":["2022-08-18T20:04:00Z","9e2ef0cf0469c1e798f8767cb472ee1b0103dfd6b08ed0a777c89d5043358b70cf14c2784ea59f05795f648daf80e11b2150fa89a05bc8c0afa6dafeb2fc09ac"]},"Data.Monoid.Multiplicative":{"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs":["2022-08-18T20:04:00Z","f0c40f939ed3a3f00712fc7485926733668101c201e5d57e19d72ce6be84455b7b2d7360d747154a9d071df9b72e4e5ad2ac2a36db093a1b702fed4e6f4de9e3"]},"Data.NaturalTransformation":{"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs":["2022-08-18T20:04:00Z","6b9fc42ec524a517d464dea99867c64345cdbcbada4260a772373a956961ad1c9a4a3a4f8ed4a0c7c7f3e36120068954141841c5d6bdc4e5898ea06435104bb7"]},"Data.Newtype":{"../../../support/bower_components/purescript-newtype/src/Data/Newtype.purs":["2022-04-27T15:04:33Z","4289a67b60c9760f41b6fb86b71bb0bb2c576b279ae447be7fe4c3ff408ea4705ca17522647bcd8da582ef646a4abfd53fc3310d4d9d6c68816a8ccd480140be"]},"Data.Ord":{"../../../support/bower_components/purescript-prelude/src/Data/Ord.js":["2022-08-18T20:04:00Z","d3f620d4e07a9ce41745d2df0c43701dc41726e4be601b790bb054089ca52d97380299b90fe88f166e2195d76c4cbe195d941e8619fd2d14242a6a347881b1a9"],"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs":["2022-08-18T20:04:00Z","f0ca6f6131e2699584e55846fb9f4300b778c12f39f0c5a19286081c39c537c1a511c69d01ca6d7216776c73daeeced9ae0b6e1281d4b2e39abb4cc5432e6b75"]},"Data.Ord.Generic":{"../../../support/bower_components/purescript-prelude/src/Data/Ord/Generic.purs":["2022-08-18T20:04:00Z","d566cfa79ec03e335f632d3edc3b913081583188d8496897c1b0904c1895525caeb5b0464b76d40ae5ef79e5c7b516ad061c1d98aa6e1c649f555be4c839087e"]},"Data.Ordering":{"../../../support/bower_components/purescript-prelude/src/Data/Ordering.purs":["2022-08-18T20:04:00Z","321b8de9b25c2616a3dbc6bff2e2def1cf7592ad54e575bd2b62d440d5dd88d7b5332f6c68fc010424e36ac13d61b5bcaadcf619ff940c667360b2c102f6e2af"]},"Data.Reflectable":{"../../../support/bower_components/purescript-prelude/src/Data/Reflectable.js":["2022-08-18T20:04:00Z","1bbaef3b7bb472cbc13eb30d9a75f2d580d5950fe692a3e137322558a651d0352f8a7499538028404a611afecde17f551b7cbc4030bdaf0b50e6828362cf29bd"],"../../../support/bower_components/purescript-prelude/src/Data/Reflectable.purs":["2022-08-18T20:04:00Z","02beca227031091fd31673ff64153c2f84ba22c61f362acc88411643233fe91d8cabf6206319785f7b910d8dff7c81528ca7e05048e284bfc720e71f804f7a6c"]},"Data.Ring":{"../../../support/bower_components/purescript-prelude/src/Data/Ring.js":["2022-08-18T20:04:00Z","bce8767b39bf1d9af8182f80f91e376db07ae8912b991fcea6eaf37900f91c6b6ede6fb874c40ff5b3d40fc6a893468d0f0cb31106f6188ca52514ae0a081da6"],"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs":["2022-08-18T20:04:00Z","4e727f1f786ced8ce8202805713a9a2810c6ef9522694535c219ce22f66e032ca374163c82db137dd7d2ded6ae4dc2786ee8b6efd1df810d5cbda9c7e2c0832e"]},"Data.Ring.Generic":{"../../../support/bower_components/purescript-prelude/src/Data/Ring/Generic.purs":["2022-08-18T20:04:00Z","8c94b1a5765b99950600e690e01e3da65cd7e43fe78f651f8531c45d41775572af47e62f21705857c82ae52251626c34f0f41180ee0563115f749c7bc0459324"]},"Data.Semigroup":{"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.js":["2022-08-18T20:04:00Z","fb416511575b93baf1081317aba42e97da52fdb724c07110a05c360e5254528f54715a47fa22ed4298bbdfb62c8641c8ea5ef92af9a259d51164cf541026fabc"],"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs":["2022-08-18T20:04:00Z","43c3fbd4ab0a7a5346bdc69ce26ad3e6143f1f0e92bf8e7601af43d2ad68cfe4080411029ba3a9f29592f75e139a8fb923e67237b8e1cee3024c54b32ccf0b5d"]},"Data.Semigroup.First":{"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/First.purs":["2022-08-18T20:04:00Z","8ff357056284af9050954e7695babcc76f5f632019b66f635a49502170508a37b2cb20a2e863f022bf077726480d2cc32951fb910c80559806e50830f25e884e"]},"Data.Semigroup.Generic":{"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Generic.purs":["2022-08-18T20:04:00Z","8c07803971e03a3c3d4a617198eae5a3e825c411fd17af68eee57571717a2301eaf5ec5bd34bfddf14da1f1c40d780ab9538d02f22d1d19117135388c848ca89"]},"Data.Semigroup.Last":{"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Last.purs":["2022-08-18T20:04:00Z","75b3660341f9c0570031d2304c83eb8592098e2d96577c030ae969b3b958d00b21234c2c836377e7b338e4323fa4aa0c97a4a8abb7ed49e2741907a411eb0b08"]},"Data.Semiring":{"../../../support/bower_components/purescript-prelude/src/Data/Semiring.js":["2022-08-18T20:04:00Z","71c1f69848adaf5667acc7668bb53b42a14dd64f559e72d88ae879f123aa9d5892debb1758067b8c48bfcdbbd7392e2e9ea0e5d18603ab62dbdde5032662cf33"],"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs":["2022-08-18T20:04:00Z","70fe8b0c9eb461a6058b6c89ad182fb99d4e930f158b015a386ee67ece2445b5e7aba5e539dd7377822de1b045b80d1e439f191a2274c6e95c7fb3dba535d8c0"]},"Data.Semiring.Generic":{"../../../support/bower_components/purescript-prelude/src/Data/Semiring/Generic.purs":["2022-08-18T20:04:00Z","e1aeb61208e3b96999f07cc41307d50fa8025c2f688e9dc24d7286933a11cc1ec253375e10e25fb578801bcda7b18b7342bb13275f4ca72478a2aff9ea872799"]},"Data.Show":{"../../../support/bower_components/purescript-prelude/src/Data/Show.js":["2022-08-18T20:04:00Z","588e533a8d2dce9eb3815e58e38fe06ac7758adb50295d4325c47db26031d0ea48cb341d5e3d7caaeae40f4d95a9c3c5381feba3a50653d1a76e3835b0628f0d"],"../../../support/bower_components/purescript-prelude/src/Data/Show.purs":["2022-08-18T20:04:00Z","b52834da5151dffab06693e15efb93608a43ab7866901f86ee47191f085fade2d7ebbad800aff8ad7d7171d349e312bfc01dd4e8cad4eb6c12eacd50d9381764"]},"Data.Show.Generic":{"../../../support/bower_components/purescript-prelude/src/Data/Show/Generic.js":["2022-08-18T20:04:00Z","f8b9a3c651ceb9e8f2ee15ae532ecd371794b4e9f3b14eb0508656c1ae853654d7e3d3c719a9a98f0dcbc81df3b03266c05d3bc01c9b62d6d8ce29d4794e4b1b"],"../../../support/bower_components/purescript-prelude/src/Data/Show/Generic.purs":["2022-08-18T20:04:00Z","37b5a1168cd88f5f6f2d2a584cfe2c69e326b9f3e62291ec607c6e4a12da144450088fe65e95cbd04204d9c616a04696b5b3d0d7e444e8628b4a1eb3597c534d"]},"Data.Symbol":{"../../../support/bower_components/purescript-prelude/src/Data/Symbol.js":["2022-08-18T20:04:00Z","c980adfe8e297bfe8e257903de3ac13f5675c6f52ed95e8c2786fcacc52adde10b5de56c9432859c3c7c8f51d1866f2e8d4a961d60e1bff656def39e3b3cdcf7"],"../../../support/bower_components/purescript-prelude/src/Data/Symbol.purs":["2022-08-18T20:04:00Z","579409ca0036164a1a0534b266cc1c90de7b020ecea470cdedf0a97cc34ae1f25ab441df9789798dc30f6a4c8f6c6368c79dc5523d9de336e57dcc6325127cb2"]},"Data.Unit":{"../../../support/bower_components/purescript-prelude/src/Data/Unit.js":["2022-08-18T20:04:00Z","d7185d75aa1f2fe353e4e200ab4181472e354d6295cb2e6587a56636b1bc733be77b2f5616b20275fe7be0138a6442b2979864b1b234a813f8d9237baa4cd5f3"],"../../../support/bower_components/purescript-prelude/src/Data/Unit.purs":["2022-08-18T20:04:00Z","425d50d748941435bf7f4d6b61769e2b0931973280ba6dd91dcca3f963cc9223b2a7ccd5827611182348041c0813b3be828e2dacc54933ddc152d6e50f7f2f3d"]},"Data.Void":{"../../../support/bower_components/purescript-prelude/src/Data/Void.purs":["2022-08-18T20:04:00Z","28ae6f4ecd4ee9a07dc5c034f189a8740a9e14bef332d6bab73b8e3b2ea51ed2bec88d84862ff4cd989e671be324b019282a2678a6d73e59f05af414705bd47e"]},"Effect":{"../../../support/bower_components/purescript-effect/src/Effect.js":["2022-04-27T14:04:24Z","9683b917c04f50b5b8a41d8294b101d7787cd0a742840e6f05ec143f881bfb51807a2efd29a9296def2676e7c1860352f3d89f78f9205567575c5040f790da32"],"../../../support/bower_components/purescript-effect/src/Effect.purs":["2022-04-27T14:04:24Z","25ea461900466a6aade8a56c20921d46eb037a71efb12c4265dd378e760843e5793efb9f7cb47322511459136d9d4ecd6d09e5a089a432d96ef4af4530ad8e8d"]},"Effect.Class":{"../../../support/bower_components/purescript-effect/src/Effect/Class.purs":["2022-04-27T14:04:24Z","47e0114539e25826ffba341faf99133ed2499027f0955fa606d563d3504c6b41dc9d425dfa619c0c83b5fc2ab8dbb3c1bf2166b5980c5674fb93560c9b80d585"]},"Effect.Class.Console":{"../../../support/bower_components/purescript-console/src/Effect/Class/Console.purs":["2023-10-08T17:07:02Z","83dd2086be201a053908c2f6083c342c7ac3dd1eedd16d28eda405f97fe51c4d50363e837c79a95aef78de222d2fcf579c19fed4b5c3ba9f16ea7e537912a996"]},"Effect.Console":{"../../../support/bower_components/purescript-console/src/Effect/Console.js":["2023-10-08T17:07:02Z","b3d1b0aacf58d500207502e4fda74bf6ee203c3650c8ccc061eaafcac512ce76ee1347aa7d44630a1420013fd7ae262d5b7755b216002125d9c58d29ee84ec03"],"../../../support/bower_components/purescript-console/src/Effect/Console.purs":["2023-10-08T17:07:02Z","44ab0ee3661fb4d26d5cbeb22d2dcf111b3a4391c9f20c0ef906a27714d8a90524bd22eb1351c2795388f66241983242089b58377a8ea0723f17b259ace592c0"]},"Effect.Uncurried":{"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.js":["2022-04-27T14:04:24Z","4c6c5db78b72ff3b84623d894b05dd916cc0732dc08d1fd45d8b0768983fdd7377b7299add3c70475459d0e190af99e2176e4c17a8cfbf295c675456bd5ba7d2"],"../../../support/bower_components/purescript-effect/src/Effect/Uncurried.purs":["2022-04-27T14:04:24Z","a948cb1cab11f5019fe20dd697b5c6e248c3b29c7ab332c2cb9d792cfcb58021a77c0f4f71e1c8d7c0b3b9cb18bd1497a0d2f40680926390f3303ecb1fe25beb"]},"Effect.Unsafe":{"../../../support/bower_components/purescript-effect/src/Effect/Unsafe.js":["2022-04-27T14:04:24Z","e66a1117e55534d61b7cd8e1859b54ef97446e0374116867383d2027bd85b73e510cbd1e4e74067b740fffb66c11e243af8d0976b2dc225d9865d882486cccdd"],"../../../support/bower_components/purescript-effect/src/Effect/Unsafe.purs":["2022-04-27T14:04:24Z","c112c559df0f177472e96655b09165d5535f68caddc2b419b4cdfe796af19b962b0659cb609a2ce501002da7de34e66592b5491ebe6f538824c2db8a1e800ea7"]},"Main":{"src/Main.purs":["2021-10-25T20:49:21Z","55bdd6dd11fb1679cb11793dd2996de21972f7aa53826557273bd649004f5907ff8cf6dff840718a12084c421529c9da7d70f698689d3923ab4ae3d608591c66"]},"Prelude":{"../../../support/bower_components/purescript-prelude/src/Prelude.purs":["2022-08-18T20:04:00Z","c67b6a882790c17476eb477da2cfc71dc4c26f297e7b4581b5ae9b0d08040ea7c7b55ed3afb3e824806e573ea4dd307eaa7cb49cfb2a756973b226ee1023e6fc"]},"Record.Unsafe":{"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.js":["2022-08-18T20:04:00Z","667d613a0e1265a710e98c9f6e64ff791b9e9b7227cdf699c3a25724077c02e42726c807c0387ca4484454fd853d5b41522bf2e048887f22a894413ef80cbb92"],"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs":["2022-08-18T20:04:00Z","af8a7c83127f5e61853ad0e572be799c04e321562a375d51ab133706ac6a6777e169b057f01a709ad7aae2d8c7a5ae8daa28eae8793c4fe92e2e8f0cfaecf870"]},"Safe.Coerce":{"../../../support/bower_components/purescript-safe-coerce/src/Safe/Coerce.purs":["2022-04-27T14:56:52Z","595abade13e21ed7893a92b338d9e7c7bf56e9067d51ca25c387d6d93a1c5542925f062e282602e89476a45501645c76dbd57eac31cc4e5c1cf341e2902beb89"]},"Type.Proxy":{"../../../support/bower_components/purescript-prelude/src/Type/Proxy.purs":["2022-08-18T20:04:00Z","333d0ae90b05098eada860ad476ed9e1eacd67d969dc1573c74375610cf8de22e85a358a7783a0a461d7ffa6fe322d8c3e90696be02555a02793ac99aba687f2"]},"Unsafe.Coerce":{"../../../support/bower_components/purescript-unsafe-coerce/src/Unsafe/Coerce.js":["2022-04-27T14:15:44Z","031c3187f7ce65110a359260041309506e1ff39a97b6eb22c9a8f2e5c14b35db87d509bb5929f245c5d80df6ccd6dadf83579ebe4ac46650acdfa34a493cfc0d"],"../../../support/bower_components/purescript-unsafe-coerce/src/Unsafe/Coerce.purs":["2022-04-27T14:15:44Z","04b214d9cbbf0c438bb2af4b25f8db5d04f247059241982f718c6d83322c3180f0eced0eb5c410860dcdb35650e9129a1cffe87f7279308cc4cf6c6570bba74f"]}}
+ tests/purs/warning/TypeClassMethodSynonym.out view
@@ -0,0 +1,11 @@+Warning found:+in module [33mMain[0m+at tests/purs/warning/TypeClassMethodSynonym.purs:8:3 - 8:19 (line 8, column 3 - line 8, column 19)++  Type variable [33ma[0m was shadowed.++in type declaration for [33mc[0m++See https://github.com/purescript/documentation/blob/master/errors/ShadowedTypeVar.md for more information,+or to contribute content related to this warning.+
+ tests/purs/warning/TypeClassMethodSynonym.purs view
@@ -0,0 +1,8 @@+-- @shouldWarnWith ShadowedTypeVar+module Main where++class C :: Type -> Constraint+class C a where+  -- The `a` in the type below should refer to the `a`+  -- introduced by the `forall`, not the class head.+  c :: forall a. a