summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorhdgarrood <>2019-05-30 13:33:00 (GMT)
committerhdiff <hdiff@hdiff.luite.com>2019-05-30 13:33:00 (GMT)
commit63881df15dcdd909729b6c594568196b53ae89bb (patch)
treeeed7a53b372587dc2e797f67079eb675b75e9e40 /tests
parent804880ea1af7ec064f146ccf2b1c65590dfca657 (diff)
version 0.13.00.13.0
Diffstat (limited to 'tests')
-rw-r--r--tests/Language/PureScript/Ide/ImportsSpec.hs11
-rw-r--r--tests/Language/PureScript/Ide/UsageSpec.hs6
-rw-r--r--tests/Main.hs5
-rw-r--r--tests/TestCst.hs223
-rw-r--r--tests/TestDocs.hs46
-rw-r--r--tests/TestPscPublish.hs41
-rw-r--r--tests/TestPsci/TestEnv.hs3
-rw-r--r--tests/TestUtils.hs11
-rw-r--r--tests/purs/docs/bower_components/purescript-newtype/src/Data/Newtype.purs5
-rw-r--r--tests/purs/docs/output/Ado/docs.json1
-rw-r--r--tests/purs/docs/output/Ado/externs.json1
-rw-r--r--tests/purs/docs/output/ChildDeclOrder/docs.json1
-rw-r--r--tests/purs/docs/output/ChildDeclOrder/externs.json1
-rw-r--r--tests/purs/docs/output/Clash/docs.json1
-rw-r--r--tests/purs/docs/output/Clash/externs.json1
-rw-r--r--tests/purs/docs/output/Clash1/docs.json1
-rw-r--r--tests/purs/docs/output/Clash1/externs.json1
-rw-r--r--tests/purs/docs/output/Clash1a/docs.json1
-rw-r--r--tests/purs/docs/output/Clash1a/externs.json1
-rw-r--r--tests/purs/docs/output/Clash2/docs.json1
-rw-r--r--tests/purs/docs/output/Clash2/externs.json1
-rw-r--r--tests/purs/docs/output/Clash2a/docs.json1
-rw-r--r--tests/purs/docs/output/Clash2a/externs.json1
-rw-r--r--tests/purs/docs/output/ConstrainedArgument/docs.json1
-rw-r--r--tests/purs/docs/output/ConstrainedArgument/externs.json1
-rw-r--r--tests/purs/docs/output/Data.Newtype/docs.json1
-rw-r--r--tests/purs/docs/output/Data.Newtype/externs.json1
-rw-r--r--tests/purs/docs/output/DeclOrder/docs.json1
-rw-r--r--tests/purs/docs/output/DeclOrder/externs.json1
-rw-r--r--tests/purs/docs/output/DeclOrderNoExportList/docs.json1
-rw-r--r--tests/purs/docs/output/DeclOrderNoExportList/externs.json1
-rw-r--r--tests/purs/docs/output/Desugar/docs.json1
-rw-r--r--tests/purs/docs/output/Desugar/externs.json1
-rw-r--r--tests/purs/docs/output/DocComments/docs.json1
-rw-r--r--tests/purs/docs/output/DocComments/externs.json1
-rw-r--r--tests/purs/docs/output/DuplicateNames/docs.json1
-rw-r--r--tests/purs/docs/output/DuplicateNames/externs.json1
-rw-r--r--tests/purs/docs/output/Example/docs.json1
-rw-r--r--tests/purs/docs/output/Example/externs.json1
-rw-r--r--tests/purs/docs/output/Example2/docs.json1
-rw-r--r--tests/purs/docs/output/Example2/externs.json1
-rw-r--r--tests/purs/docs/output/ExplicitExport/docs.json1
-rw-r--r--tests/purs/docs/output/ExplicitExport/externs.json1
-rw-r--r--tests/purs/docs/output/ExplicitTypeSignatures/docs.json1
-rw-r--r--tests/purs/docs/output/ExplicitTypeSignatures/externs.json1
-rw-r--r--tests/purs/docs/output/ImportedTwice/docs.json1
-rw-r--r--tests/purs/docs/output/ImportedTwice/externs.json1
-rw-r--r--tests/purs/docs/output/ImportedTwiceA/docs.json1
-rw-r--r--tests/purs/docs/output/ImportedTwiceA/externs.json1
-rw-r--r--tests/purs/docs/output/ImportedTwiceB/docs.json1
-rw-r--r--tests/purs/docs/output/ImportedTwiceB/externs.json1
-rw-r--r--tests/purs/docs/output/MultiVirtual/docs.json1
-rw-r--r--tests/purs/docs/output/MultiVirtual/externs.json1
-rw-r--r--tests/purs/docs/output/MultiVirtual1/docs.json1
-rw-r--r--tests/purs/docs/output/MultiVirtual1/externs.json1
-rw-r--r--tests/purs/docs/output/MultiVirtual2/docs.json1
-rw-r--r--tests/purs/docs/output/MultiVirtual2/externs.json1
-rw-r--r--tests/purs/docs/output/MultiVirtual3/docs.json1
-rw-r--r--tests/purs/docs/output/MultiVirtual3/externs.json1
-rw-r--r--tests/purs/docs/output/NewOperators/docs.json1
-rw-r--r--tests/purs/docs/output/NewOperators/externs.json1
-rw-r--r--tests/purs/docs/output/NewOperators2/docs.json1
-rw-r--r--tests/purs/docs/output/NewOperators2/externs.json1
-rw-r--r--tests/purs/docs/output/NotAllCtors/docs.json1
-rw-r--r--tests/purs/docs/output/NotAllCtors/externs.json1
-rw-r--r--tests/purs/docs/output/Prelude/docs.json1
-rw-r--r--tests/purs/docs/output/Prelude/externs.json1
-rw-r--r--tests/purs/docs/output/PrimSubmodules/docs.json1
-rw-r--r--tests/purs/docs/output/PrimSubmodules/externs.json1
-rw-r--r--tests/purs/docs/output/ReExportedTypeClass/docs.json1
-rw-r--r--tests/purs/docs/output/ReExportedTypeClass/externs.json1
-rw-r--r--tests/purs/docs/output/SolitaryTypeClassMember/docs.json1
-rw-r--r--tests/purs/docs/output/SolitaryTypeClassMember/externs.json1
-rw-r--r--tests/purs/docs/output/SomeTypeClass/docs.json1
-rw-r--r--tests/purs/docs/output/SomeTypeClass/externs.json1
-rw-r--r--tests/purs/docs/output/Transitive1/docs.json1
-rw-r--r--tests/purs/docs/output/Transitive1/externs.json1
-rw-r--r--tests/purs/docs/output/Transitive2/docs.json1
-rw-r--r--tests/purs/docs/output/Transitive2/externs.json1
-rw-r--r--tests/purs/docs/output/Transitive3/docs.json1
-rw-r--r--tests/purs/docs/output/Transitive3/externs.json1
-rw-r--r--tests/purs/docs/output/TypeClassWithFunDeps/docs.json1
-rw-r--r--tests/purs/docs/output/TypeClassWithFunDeps/externs.json1
-rw-r--r--tests/purs/docs/output/TypeClassWithoutMembers/docs.json1
-rw-r--r--tests/purs/docs/output/TypeClassWithoutMembers/externs.json1
-rw-r--r--tests/purs/docs/output/TypeClassWithoutMembersIntermediate/docs.json1
-rw-r--r--tests/purs/docs/output/TypeClassWithoutMembersIntermediate/externs.json1
-rw-r--r--tests/purs/docs/output/TypeLevelString/docs.json1
-rw-r--r--tests/purs/docs/output/TypeLevelString/externs.json1
-rw-r--r--tests/purs/docs/output/TypeOpAliases/docs.json1
-rw-r--r--tests/purs/docs/output/TypeOpAliases/externs.json1
-rw-r--r--tests/purs/docs/output/TypeSynonym/docs.json1
-rw-r--r--tests/purs/docs/output/TypeSynonym/externs.json1
-rw-r--r--tests/purs/docs/output/TypeSynonymInstance/docs.json1
-rw-r--r--tests/purs/docs/output/TypeSynonymInstance/externs.json1
-rw-r--r--tests/purs/docs/output/TypeSynonymInstance/index.js16
-rw-r--r--tests/purs/docs/output/UTF8/docs.json1
-rw-r--r--tests/purs/docs/output/UTF8/externs.json1
-rw-r--r--tests/purs/docs/output/Virtual/docs.json1
-rw-r--r--tests/purs/docs/output/Virtual/externs.json1
-rw-r--r--tests/purs/docs/resolutions.json23
-rw-r--r--tests/purs/docs/src/TypeSynonym.purs3
-rw-r--r--tests/purs/docs/src/TypeSynonymInstance.purs11
-rw-r--r--tests/purs/failing/2616.purs2
-rw-r--r--tests/purs/failing/3549-a.purs10
-rw-r--r--tests/purs/failing/3549.purs11
-rw-r--r--tests/purs/failing/ApostropheModuleName.purs7
-rw-r--r--tests/purs/failing/AtPatternPrecedence.purs14
-rw-r--r--tests/purs/failing/ExportConflictClassAndType.purs5
-rw-r--r--tests/purs/failing/ExportConflictClassAndType/A.purs3
-rw-r--r--tests/purs/failing/ExportConflictClassAndType/B.purs3
-rw-r--r--tests/purs/failing/ImportHidingModule.purs2
-rw-r--r--tests/purs/failing/NewtypeMultiArgs.purs2
-rw-r--r--tests/purs/failing/NewtypeMultiCtor.purs2
-rw-r--r--tests/purs/failing/NonExhaustivePatGuard.purs2
-rw-r--r--tests/purs/failing/OperatorAt.purs8
-rw-r--r--tests/purs/failing/OperatorBackslash.purs8
-rw-r--r--tests/purs/failing/PrimRow.purs2
-rw-r--r--tests/purs/failing/SelfImport.purs9
-rw-r--r--tests/purs/failing/SelfImport/Dummy.purs5
-rw-r--r--tests/purs/failing/TypeClasses2.purs2
-rw-r--r--tests/purs/failing/Whitespace1.purs5
-rw-r--r--tests/purs/layout/AdoIn.purs13
-rw-r--r--tests/purs/layout/CaseGuards.purs53
-rw-r--r--tests/purs/layout/CaseWhere.purs12
-rw-r--r--tests/purs/layout/ClassHead.purs10
-rw-r--r--tests/purs/layout/Commas.purs22
-rw-r--r--tests/purs/layout/Delimiter.purs13
-rw-r--r--tests/purs/layout/DoLet.purs15
-rw-r--r--tests/purs/layout/DoOperator.purs8
-rw-r--r--tests/purs/layout/DoWhere.purs6
-rw-r--r--tests/purs/layout/IfThenElseDo.purs10
-rw-r--r--tests/purs/layout/InstanceChainElse.purs4
-rw-r--r--tests/purs/passing/1110.purs2
-rw-r--r--tests/purs/passing/2252.purs4
-rw-r--r--tests/purs/passing/3549.purs13
-rw-r--r--tests/purs/passing/ConstraintOutsideForall.purs12
-rw-r--r--tests/purs/passing/DeepCase.purs2
-rw-r--r--tests/purs/passing/DeriveWithNestedSynonyms.purs2
-rw-r--r--tests/purs/passing/DerivingFunctor.purs2
-rw-r--r--tests/purs/passing/FunctionAndCaseGuards.purs21
-rw-r--r--tests/purs/passing/GenericsRep.purs2
-rw-r--r--tests/purs/passing/Import/M1.purs2
-rw-r--r--tests/purs/passing/Import/M2.purs1
-rw-r--r--tests/purs/passing/KindedType.purs7
-rw-r--r--tests/purs/passing/Monad.purs6
-rw-r--r--tests/purs/passing/Rank2Data.purs4
-rw-r--r--tests/purs/passing/RedefinedFixity/M2.purs2
-rw-r--r--tests/purs/passing/RedefinedFixity/M3.purs2
-rw-r--r--tests/purs/passing/StringEscapes.purs6
-rw-r--r--tests/purs/passing/TypeAnnotationPrecedence.purs11
-rw-r--r--tests/purs/publish/basic-example/output/Control.Alt/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Control.Alt/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Control.Alternative/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Control.Alternative/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Control.Applicative/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Control.Applicative/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Control.Apply/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Control.Apply/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Control.Biapplicative/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Control.Biapplicative/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Control.Biapply/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Control.Biapply/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Control.Bind/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Control.Bind/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Control.Category/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Control.Category/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Control.Comonad/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Control.Comonad/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Control.Extend/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Control.Extend/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Control.Lazy/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Control.Lazy/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Control.Monad.Gen.Class/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Control.Monad.Gen.Class/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Control.Monad.Gen.Common/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Control.Monad.Gen.Common/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Control.Monad.Gen/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Control.Monad.Gen/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Control.Monad.Rec.Class/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Control.Monad.Rec.Class/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Control.Monad.ST.Internal/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Control.Monad.ST.Internal/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Control.Monad.ST.Ref/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Control.Monad.ST.Ref/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Control.Monad.ST/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Control.Monad.ST/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Control.Monad/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Control.Monad/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Control.MonadPlus/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Control.MonadPlus/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Control.MonadZero/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Control.MonadZero/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Control.Plus/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Control.Plus/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Control.Semigroupoid/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Control.Semigroupoid/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Array.NonEmpty.Internal/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Array.NonEmpty.Internal/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Array.NonEmpty/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Array.NonEmpty/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Array.Partial/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Array.Partial/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Array.ST.Iterator/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Array.ST.Iterator/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Array.ST.Partial/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Array.ST.Partial/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Array.ST/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Array.ST/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Array/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Array/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Bifoldable/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Bifoldable/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Bifunctor.Clown/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Bifunctor.Clown/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Bifunctor.Flip/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Bifunctor.Flip/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Bifunctor.Join/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Bifunctor.Join/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Bifunctor.Joker/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Bifunctor.Joker/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Bifunctor.Product/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Bifunctor.Product/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Bifunctor.Wrap/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Bifunctor.Wrap/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Bifunctor/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Bifunctor/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Bitraversable/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Bitraversable/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Boolean/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Boolean/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.BooleanAlgebra/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.BooleanAlgebra/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Bounded/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Bounded/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Char.Gen/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Char.Gen/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Char/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Char/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.CommutativeRing/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.CommutativeRing/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Distributive/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Distributive/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.DivisionRing/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.DivisionRing/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Either.Inject/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Either.Inject/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Either.Nested/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Either.Nested/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Either/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Either/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Enum.Gen/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Enum.Gen/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Enum/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Enum/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Eq/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Eq/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.EuclideanRing/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.EuclideanRing/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Field/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Field/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Foldable/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Foldable/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.FoldableWithIndex/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.FoldableWithIndex/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Function.Uncurried/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Function.Uncurried/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Function/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Function/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Functor.Invariant/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Functor.Invariant/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Functor/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Functor/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.FunctorWithIndex/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.FunctorWithIndex/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Generic.Rep.Bounded/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Generic.Rep.Bounded/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Generic.Rep.Enum/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Generic.Rep.Enum/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Generic.Rep.Eq/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Generic.Rep.Eq/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Generic.Rep.Monoid/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Generic.Rep.Monoid/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Generic.Rep.Ord/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Generic.Rep.Ord/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Generic.Rep.Semigroup/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Generic.Rep.Semigroup/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Generic.Rep.Show/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Generic.Rep.Show/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Generic.Rep/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Generic.Rep/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.HeytingAlgebra/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.HeytingAlgebra/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Identity/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Identity/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Int.Bits/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Int.Bits/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Int/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Int/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Lazy/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Lazy/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.List.Lazy.NonEmpty/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.List.Lazy.NonEmpty/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.List.Lazy.Types/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.List.Lazy.Types/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.List.Lazy/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.List.Lazy/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.List.NonEmpty/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.List.NonEmpty/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.List.Partial/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.List.Partial/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.List.Types/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.List.Types/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.List.ZipList/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.List.ZipList/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.List/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.List/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Maybe.First/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Maybe.First/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Maybe.Last/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Maybe.Last/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Maybe/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Maybe/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Monoid.Additive/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Monoid.Additive/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Monoid.Conj/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Monoid.Conj/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Monoid.Disj/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Monoid.Disj/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Monoid.Dual/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Monoid.Dual/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Monoid.Endo/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Monoid.Endo/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Monoid.Multiplicative/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Monoid.Multiplicative/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Monoid/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Monoid/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.NaturalTransformation/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.NaturalTransformation/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Newtype/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Newtype/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.NonEmpty/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.NonEmpty/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Ord.Down/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Ord.Down/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Ord.Max/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Ord.Max/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Ord.Min/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Ord.Min/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Ord.Unsafe/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Ord.Unsafe/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Ord/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Ord/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Ordering/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Ordering/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Ring/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Ring/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Semigroup.First/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Semigroup.First/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Semigroup.Foldable/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Semigroup.Foldable/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Semigroup.Last/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Semigroup.Last/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Semigroup.Traversable/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Semigroup.Traversable/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Semigroup/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Semigroup/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Semiring/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Semiring/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Show/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Show/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.String.CaseInsensitive/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.String.CaseInsensitive/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.String.CodePoints/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.String.CodePoints/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.String.CodeUnits/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.String.CodeUnits/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.String.Common/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.String.Common/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.String.Gen/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.String.Gen/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.String.NonEmpty.CaseInsensitive/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.String.NonEmpty.CaseInsensitive/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.String.NonEmpty.CodePoints/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.String.NonEmpty.CodePoints/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.String.NonEmpty.CodeUnits/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.String.NonEmpty.CodeUnits/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.String.NonEmpty.Internal/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.String.NonEmpty.Internal/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.String.NonEmpty/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.String.NonEmpty/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.String.Pattern/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.String.Pattern/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.String.Regex.Flags/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.String.Regex.Flags/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.String.Regex.Unsafe/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.String.Regex.Unsafe/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.String.Regex/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.String.Regex/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.String.Unsafe/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.String.Unsafe/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.String/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.String/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Symbol/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Symbol/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Traversable.Accum.Internal/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Traversable.Accum.Internal/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Traversable.Accum/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Traversable.Accum/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Traversable/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Traversable/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.TraversableWithIndex/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.TraversableWithIndex/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Tuple.Nested/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Tuple.Nested/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Tuple/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Tuple/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Unfoldable/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Unfoldable/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Unfoldable1/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Unfoldable1/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Unit/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Unit/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Void/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Data.Void/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Effect.Class.Console/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Effect.Class.Console/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Effect.Class/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Effect.Class/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Effect.Console/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Effect.Console/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Effect.Ref/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Effect.Ref/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Effect.Uncurried/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Effect.Uncurried/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Effect.Unsafe/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Effect.Unsafe/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Effect/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Effect/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Global.Unsafe/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Global.Unsafe/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Global/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Global/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Main/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Main/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Math/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Math/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/PSCI.Support/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/PSCI.Support/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Partial.Unsafe/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Partial.Unsafe/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Partial/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Partial/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Prelude/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Prelude/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Record.Unsafe/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Record.Unsafe/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Test.Assert/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Test.Assert/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Type.Data.Boolean/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Type.Data.Boolean/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Type.Data.Ordering/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Type.Data.Ordering/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Type.Data.Row/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Type.Data.Row/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Type.Data.RowList/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Type.Data.RowList/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Type.Data.Symbol/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Type.Data.Symbol/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Type.Equality/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Type.Equality/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Type.Prelude/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Type.Prelude/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Type.Proxy/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Type.Proxy/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Type.Row.Homogeneous/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Type.Row.Homogeneous/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Type.Row/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Type.Row/externs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Unsafe.Coerce/docs.json1
-rw-r--r--tests/purs/publish/basic-example/output/Unsafe.Coerce/externs.json1
-rw-r--r--tests/purs/warning/ShadowedBinderPatternGuard.purs4
-rw-r--r--tests/purs/warning/UnusedImport.purs2
-rw-r--r--tests/support/bower.json4
-rw-r--r--tests/support/package-lock.json6
485 files changed, 1098 insertions, 111 deletions
diff --git a/tests/Language/PureScript/Ide/ImportsSpec.hs b/tests/Language/PureScript/Ide/ImportsSpec.hs
index 5c29c86..040ad36 100644
--- a/tests/Language/PureScript/Ide/ImportsSpec.hs
+++ b/tests/Language/PureScript/Ide/ImportsSpec.hs
@@ -72,9 +72,9 @@ spec = do
describe "determining the importsection" $ do
let moduleSkeleton imports =
Right (P.moduleNameFromString "Main", take 1 simpleFile, imports, drop 2 simpleFile)
- it "slices a file without imports and adds a newline after the module declaration" $
+ it "slices a file without imports" $
shouldBe (sliceImportSection noImportsFile)
- (Right (P.moduleNameFromString "Main", take 1 noImportsFile ++ [""], [], drop 1 noImportsFile))
+ (Right (P.moduleNameFromString "Main", take 1 noImportsFile, [], drop 1 noImportsFile))
it "handles a file with syntax errors just fine" $
shouldBe (sliceImportSection syntaxErrorFile)
@@ -351,7 +351,12 @@ addExplicitImportFiltered i ms =
importShouldBe :: [Text] -> [Text] -> Expectation
importShouldBe res importSection =
- res `shouldBe` [ "module ImportsSpec where" , ""] ++ importSection ++ [ "" , "myId x = x"]
+ res `shouldBe`
+ [ "module ImportsSpec where" ]
+ ++ (if null importSection then [] else "" : importSection)
+ ++ [ ""
+ , "myId x = x"
+ ]
runIdeLoaded :: Command -> IO (Either IdeError Success)
runIdeLoaded c = do
diff --git a/tests/Language/PureScript/Ide/UsageSpec.hs b/tests/Language/PureScript/Ide/UsageSpec.hs
index d1e83eb..3c619dc 100644
--- a/tests/Language/PureScript/Ide/UsageSpec.hs
+++ b/tests/Language/PureScript/Ide/UsageSpec.hs
@@ -47,7 +47,7 @@ spec = describe "Finding Usages" $ do
, usage (Test.mn "FindUsage.Definition") "usageId" IdeNSValue
]
usage1 `shouldBeUsage` ("src" </> "FindUsage.purs", "12:11-12:18")
- usage2 `shouldBeUsage` ("src" </> "FindUsage" </> "Definition.purs", "13:18-13:18")
+ usage2 `shouldBeUsage` ("src" </> "FindUsage" </> "Definition.purs", "13:18-13:25")
it "finds a simple recursive usage" $ do
([_, Right (UsagesResult [usage1])], _) <- Test.inProject $
Test.runIde [ load ["FindUsage.Recursive"]
@@ -77,6 +77,4 @@ spec = describe "Finding Usages" $ do
Test.runIde [ load ["FindUsage", "FindUsage.Definition", "FindUsage.Reexport"]
, usage (Test.mn "FindUsage.Reexport") "toBeReexported" IdeNSValue
]
- -- TODO(Christoph): Interesting parser bug here. It seems the position
- -- of the last token in the file has the wrong ending span
- usage1 `shouldBeUsage` ("src" </> "FindUsage.purs", "12:19-12:19")
+ usage1 `shouldBeUsage` ("src" </> "FindUsage.purs", "12:19-12:33")
diff --git a/tests/Main.hs b/tests/Main.hs
index e7c29b4..37bf70b 100644
--- a/tests/Main.hs
+++ b/tests/Main.hs
@@ -10,6 +10,7 @@ import Prelude.Compat
import Test.Tasty
+import qualified TestCst
import qualified TestCompiler
import qualified TestCoreFn
import qualified TestDocs
@@ -31,6 +32,7 @@ main = do
heading "Updating support code"
TestUtils.updateSupportCode
+ cstTests <- TestCst.main
ideTests <- TestIde.main
compilerTests <- TestCompiler.main
psciTests <- TestPsci.main
@@ -44,7 +46,8 @@ main = do
defaultMain $
testGroup
"Tests"
- [ compilerTests
+ [ cstTests
+ , compilerTests
, psciTests
, pscBundleTests
, ideTests
diff --git a/tests/TestCst.hs b/tests/TestCst.hs
new file mode 100644
index 0000000..abaddc0
--- /dev/null
+++ b/tests/TestCst.hs
@@ -0,0 +1,223 @@
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+module TestCst where
+
+import Prelude
+
+import Control.Monad (when)
+import qualified Data.ByteString.Lazy as BS
+import Data.Maybe (fromMaybe)
+import Data.Text (Text)
+import qualified Data.Text as Text
+import qualified Data.Text.Encoding as Text
+import qualified Data.Text.IO as Text
+import Test.Tasty (TestTree, testGroup)
+import Test.Tasty.Golden (goldenVsString, findByExtension)
+import Test.Tasty.QuickCheck
+import Text.Read (readMaybe)
+import Language.PureScript.CST.Errors as CST
+import Language.PureScript.CST.Lexer as CST
+import Language.PureScript.CST.Print as CST
+import Language.PureScript.CST.Types
+import System.FilePath (takeBaseName, replaceExtension)
+
+main :: IO TestTree
+main = do
+ lytTests <- layoutTests
+ pure $ testGroup "cst"
+ [ lytTests
+ , litTests
+ ]
+
+layoutTests :: IO TestTree
+layoutTests = do
+ pursFiles <- findByExtension [".purs"] "./tests/purs/layout"
+ return $ testGroup "Layout golden tests" $ do
+ file <- pursFiles
+ pure $ goldenVsString
+ (takeBaseName file)
+ (replaceExtension file ".out")
+ (BS.fromStrict . Text.encodeUtf8 <$> runLexer file)
+ where
+ runLexer file = do
+ src <- Text.readFile file
+ case sequence $ CST.lex src of
+ Left (_, err) ->
+ pure $ Text.pack $ CST.prettyPrintError err
+ Right toks -> do
+ pure $ CST.printTokens toks
+
+litTests :: TestTree
+litTests = testGroup "Literals"
+ [ testProperty "Integer" $
+ checkTok checkReadNum (\case TokInt _ a -> Just a; _ -> Nothing) . unInt
+ , testProperty "Hex" $
+ checkTok checkReadNum (\case TokInt _ a -> Just a; _ -> Nothing) . unHex
+ , testProperty "Number" $
+ checkTok checkReadNum (\case TokNumber _ a -> Just a; _ -> Nothing) . unFloat
+ , testProperty "Exponent" $
+ checkTok checkReadNum (\case TokNumber _ a -> Just a; _ -> Nothing) . unExponent
+
+ , testProperty "Integer (round trip)" $ roundTripTok . unInt
+ , testProperty "Hex (round trip)" $ roundTripTok . unHex
+ , testProperty "Number (round trip)" $ roundTripTok . unFloat
+ , testProperty "Exponent (round trip)" $ roundTripTok . unExponent
+ , testProperty "Char (round trip)" $ roundTripTok . unChar
+ , testProperty "String (round trip)" $ roundTripTok . unString
+ , testProperty "Raw String (round trip)" $ roundTripTok . unRawString
+ ]
+
+readTok :: Text -> Gen SourceToken
+readTok t = case CST.lex t of
+ Right tok : _ ->
+ pure tok
+ Left (_, err) : _ ->
+ fail $ "Failed to parse: " <> CST.prettyPrintError err
+ [] ->
+ fail "Empty token stream"
+
+checkTok
+ :: (Text -> a -> Gen Bool)
+ -> (Token -> Maybe a)
+ -> Text
+ -> Gen Bool
+checkTok p f t = do
+ SourceToken _ tok <- readTok t
+ case f tok of
+ Just a -> p t a
+ Nothing -> fail $ "Failed to lex correctly: " <> show tok
+
+roundTripTok :: Text -> Gen Bool
+roundTripTok t = do
+ tok <- readTok t
+ let t' = CST.printTokens [tok]
+ tok' <- readTok t'
+ pure $ tok == tok'
+
+checkReadNum :: (Eq a, Read a) => Text -> a -> Gen Bool
+checkReadNum t a = do
+ let
+ chs = case Text.unpack $ Text.replace ".e" ".0e" $ Text.replace "_" "" t of
+ chs' | last chs' == '.' -> chs' <> "0"
+ chs' -> chs'
+ case (== a) <$> readMaybe chs of
+ Just a' -> pure a'
+ Nothing -> fail "Failed to `read`"
+
+newtype PSSourceInt = PSSourceInt { unInt :: Text }
+ deriving (Show, Eq)
+
+instance Arbitrary PSSourceInt where
+ arbitrary = resize 16 genInt
+
+newtype PSSourceFloat = PSSourceFloat { unFloat :: Text }
+ deriving (Show, Eq)
+
+instance Arbitrary PSSourceFloat where
+ arbitrary = resize 16 genFloat
+
+newtype PSSourceExponent = PSSourceExponent { unExponent :: Text }
+ deriving (Show, Eq)
+
+instance Arbitrary PSSourceExponent where
+ arbitrary = PSSourceExponent <$> do
+ floatPart <- unFloat <$> resize 5 genFloat
+ signPart <- fromMaybe "" <$> elements [ Just "+", Just "-", Nothing ]
+ expPart <- unInt <$> resize 1 genInt
+ pure $ floatPart <> "e" <> signPart <> expPart
+
+newtype PSSourceHex = PSSourceHex { unHex :: Text }
+ deriving (Show, Eq)
+
+instance Arbitrary PSSourceHex where
+ arbitrary = resize 16 genHex
+
+newtype PSSourceChar = PSSourceChar { unChar :: Text }
+ deriving (Show, Eq)
+
+instance Arbitrary PSSourceChar where
+ arbitrary = genChar
+
+newtype PSSourceString = PSSourceString { unString :: Text }
+ deriving (Show, Eq)
+
+instance Arbitrary PSSourceString where
+ arbitrary = resize 256 genString
+
+newtype PSSourceRawString = PSSourceRawString { unRawString :: Text }
+ deriving (Show, Eq)
+
+instance Arbitrary PSSourceRawString where
+ arbitrary = resize 256 genRawString
+
+genInt :: Gen PSSourceInt
+genInt = PSSourceInt . Text.pack <$> do
+ (:) <$> nonZeroChar
+ <*> listOf numChar
+
+genFloat :: Gen PSSourceFloat
+genFloat = PSSourceFloat <$> do
+ intPart <- unInt <$> genInt
+ floatPart <- Text.pack <$> listOf1 numChar
+ pure $ intPart <> "." <> floatPart
+
+genHex :: Gen PSSourceHex
+genHex = PSSourceHex <$> do
+ nums <- listOf1 hexDigit
+ pure $ "0x" <> Text.pack nums
+
+genChar :: Gen PSSourceChar
+genChar = PSSourceChar <$> do
+ ch <- (toEnum :: Int -> Char) <$> resize 0xFFFF arbitrarySizedNatural
+ ch' <- case ch of
+ '\'' -> discard
+ '\\' -> genCharEscape
+ c -> pure $ Text.singleton c
+ pure $ "'" <> ch' <> "'"
+
+genString :: Gen PSSourceString
+genString = PSSourceString <$> do
+ chs <- listOf $ arbitraryUnicodeChar >>= \case
+ '"' -> discard
+ '\n' -> discard
+ '\r' -> discard
+ '\\' -> genCharEscape
+ c -> pure $ Text.singleton c
+ pure $ "\"" <> Text.concat chs <> "\""
+
+genRawString :: Gen PSSourceRawString
+genRawString = PSSourceRawString <$> do
+ chs <- listOf $ arbitraryUnicodeChar
+ let
+ k1 acc qs cs = do
+ let (cs', q) = span (/= '"') cs
+ k2 (acc <> cs') qs q
+ k2 acc qs [] = acc <> qs
+ k2 acc qs cs = do
+ let (q, cs') = span (== '"') cs
+ k1 (acc <> take 2 q) (qs <> drop 2 q) cs'
+ chs' = k1 [] [] chs
+ when (all (== '"') chs') discard
+ pure $ "\"\"\"" <> Text.pack chs' <> "\"\"\""
+
+genCharEscape :: Gen Text
+genCharEscape = oneof
+ [ pure "\\t"
+ , pure "\\r"
+ , pure "\\n"
+ , pure "\\\""
+ , pure "\\'"
+ , pure "\\\\"
+ , do
+ chs <- resize 4 $ listOf1 hexDigit
+ pure $ "\\x" <> Text.pack chs
+ ]
+
+numChar :: Gen Char
+numChar = elements "0123456789_"
+
+nonZeroChar :: Gen Char
+nonZeroChar = elements "123456789"
+
+hexDigit :: Gen Char
+hexDigit = elements $ ['a'..'f'] <> ['A'..'F'] <> ['0'..'9']
diff --git a/tests/TestDocs.hs b/tests/TestDocs.hs
index 9c7bdfb..07a0c52 100644
--- a/tests/TestDocs.hs
+++ b/tests/TestDocs.hs
@@ -10,8 +10,6 @@ import Prelude ()
import Prelude.Compat
import Control.Arrow (first)
-import Control.Monad.IO.Class (liftIO)
-
import Data.List (findIndex)
import Data.Foldable
import Safe (headMay)
@@ -20,49 +18,36 @@ import Data.Maybe (fromMaybe, mapMaybe)
import Data.Monoid
import Data.Text (Text)
import qualified Data.Text as T
-import Data.Time.Clock (getCurrentTime)
-import Data.Version (Version(..))
-import System.Exit
+import qualified Text.PrettyPrint.Boxes as Boxes
import qualified Language.PureScript as P
import qualified Language.PureScript.Docs as Docs
import Language.PureScript.Docs.AsMarkdown (codeToString)
-import qualified Language.PureScript.Publish as Publish
import qualified Language.PureScript.Publish.ErrorsWarnings as Publish
import Web.Bower.PackageMeta (parsePackageName, runPackageName)
-import TestUtils
+import TestPscPublish (preparePackage)
import Test.Tasty
import Test.Tasty.Hspec (Spec, it, context, expectationFailure, runIO, testSpec)
-publishOpts :: Publish.PublishOptions
-publishOpts = Publish.defaultPublishOptions
- { Publish.publishGetVersion = return testVersion
- , Publish.publishGetTagTime = const (liftIO getCurrentTime)
- , Publish.publishWorkingTreeDirty = return ()
- }
- where testVersion = ("v999.0.0", Version [999,0,0] [])
-
-getPackage :: IO (Either Publish.PackageError (Docs.Package Docs.NotYetKnown))
-getPackage =
- pushd "tests/purs/docs" $
- Publish.preparePackage "bower.json" "resolutions.json" publishOpts
-
main :: IO TestTree
main = testSpec "docs" spec
spec :: Spec
spec = do
- pkg@Docs.Package{..} <- runIO $ do
- res <- getPackage
- case res of
- Left e ->
- Publish.printErrorToStdout e >> exitFailure
- Right p ->
- pure p
+ packageResult <- runIO (preparePackage "tests/purs/docs" "resolutions.json")
+
+ case packageResult of
+ Left e ->
+ it "failed to produce docs" $ do
+ expectationFailure (Boxes.render (Publish.renderError e))
+ Right pkg ->
+ mkSpec pkg
+mkSpec :: Docs.Package Docs.NotYetKnown -> Spec
+mkSpec pkg@Docs.Package{..} = do
let linksCtx = Docs.getLinksContext pkg
context "Language.PureScript.Docs" $ do
@@ -506,7 +491,7 @@ checkConstrained ty tyClass =
P.ConstrainedType _ c ty'
| matches tyClass c -> True
| otherwise -> checkConstrained ty' tyClass
- P.ForAll _ _ ty' _ ->
+ P.ForAll _ _ _ ty' _ ->
checkConstrained ty' tyClass
_ ->
False
@@ -648,6 +633,11 @@ testCases =
[ ValueShouldHaveTypeSignature (n "Ado") "test" (renderedType "Int")
]
)
+
+ , ("TypeSynonymInstance",
+ [ ShouldBeDocumented (n "TypeSynonymInstance") "MyNT" ["MyNT", "ntMyNT"]
+ ]
+ )
]
where
diff --git a/tests/TestPscPublish.hs b/tests/TestPscPublish.hs
index 64dda76..b91e9cd 100644
--- a/tests/TestPscPublish.hs
+++ b/tests/TestPscPublish.hs
@@ -1,11 +1,13 @@
-{-# OPTIONS_GHC -fno-warn-missing-signatures #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE LambdaCase #-}
module TestPscPublish where
import Prelude
+import Control.Exception (tryJust)
+import Control.Monad (void, guard)
import Control.Monad.IO.Class (liftIO)
import Data.ByteString.Lazy (ByteString)
import Data.Time.Clock (getCurrentTime)
@@ -13,16 +15,18 @@ import qualified Data.Aeson as A
import Data.Version
import Data.Foldable (forM_)
import qualified Text.PrettyPrint.Boxes as Boxes
-import System.Directory (listDirectory)
+import System.Directory (listDirectory, removeDirectoryRecursive)
import System.FilePath ((</>))
+import System.IO.Error (isDoesNotExistError)
import Language.PureScript.Docs
-import Language.PureScript.Publish
-import Language.PureScript.Publish.ErrorsWarnings as Publish
+import Language.PureScript.Publish (PublishOptions(..), defaultPublishOptions)
+import qualified Language.PureScript.Publish as Publish
+import qualified Language.PureScript.Publish.ErrorsWarnings as Publish
import Test.Tasty
import Test.Tasty.Hspec (Spec, Expectation, runIO, context, it, expectationFailure, testSpec)
-import TestUtils
+import TestUtils hiding (inferForeignModules, makeActions)
main :: IO TestTree
main = testSpec "publish" spec
@@ -77,9 +81,10 @@ roundTrip pkg =
then Pass before
else Mismatch before after'
-testRunOptions :: PublishOptions
-testRunOptions = defaultPublishOptions
- { publishGetVersion = return testVersion
+testRunOptions :: FilePath -> PublishOptions
+testRunOptions resolutionsFile = defaultPublishOptions
+ { publishResolutionsFile = resolutionsFile
+ , publishGetVersion = return testVersion
, publishGetTagTime = const (liftIO getCurrentTime)
, publishWorkingTreeDirty = return ()
}
@@ -88,12 +93,12 @@ testRunOptions = defaultPublishOptions
-- | Given a directory which contains a package, produce JSON from it, and then
-- | attempt to parse it again, and ensure that it doesn't change.
testPackage :: FilePath -> FilePath -> Expectation
-testPackage dir resolutionsFile = do
- res <- pushd dir (preparePackage "bower.json" resolutionsFile testRunOptions)
+testPackage packageDir resolutionsFile = do
+ res <- preparePackage packageDir resolutionsFile
case res of
Left err ->
expectationFailure $
- "Failed to produce JSON from " ++ dir ++ ":\n" ++
+ "Failed to produce JSON from " ++ packageDir ++ ":\n" ++
Boxes.render (Publish.renderError err)
Right package ->
case roundTrip package of
@@ -103,3 +108,17 @@ testPackage dir resolutionsFile = do
expectationFailure ("Failed to re-parse: " ++ msg)
Mismatch _ _ ->
expectationFailure "JSON did not match"
+
+-- A version of Publish.preparePackage suitable for use in tests. We remove the
+-- output directory each time to ensure that we are actually testing the docs
+-- code in the working tree as it is now (as opposed to how it was at some
+-- point in the past when the tests were previously successfully run).
+preparePackage :: FilePath -> FilePath -> IO (Either Publish.PackageError UploadedPackage)
+preparePackage packageDir resolutionsFile =
+ pushd packageDir $ do
+ removeDirectoryRecursiveIfPresent "output"
+ Publish.preparePackage (testRunOptions resolutionsFile)
+
+removeDirectoryRecursiveIfPresent :: FilePath -> IO ()
+removeDirectoryRecursiveIfPresent =
+ void . tryJust (guard . isDoesNotExistError) . removeDirectoryRecursive
diff --git a/tests/TestPsci/TestEnv.hs b/tests/TestPsci/TestEnv.hs
index 646d93b..31d5fdc 100644
--- a/tests/TestPsci/TestEnv.hs
+++ b/tests/TestPsci/TestEnv.hs
@@ -13,6 +13,7 @@ import Data.Foldable (traverse_)
import Data.List (isSuffixOf)
import qualified Data.Text as T
import qualified Language.PureScript as P
+import qualified Language.PureScript.CST as CST
import Language.PureScript.Interactive
import System.Directory (getCurrentDirectory, doesPathExist, removeFile)
import System.Exit
@@ -39,7 +40,7 @@ initTestPSCiEnv = do
print err >> exitFailure
Right modules -> do
-- Make modules
- makeResultOrError <- runMake . make $ modules
+ makeResultOrError <- runMake . make $ fmap CST.pureResult <$> modules
case makeResultOrError of
Left errs -> putStrLn (P.prettyPrintMultipleErrors P.defaultPPEOptions errs) >> exitFailure
Right (externs, _) ->
diff --git a/tests/TestUtils.hs b/tests/TestUtils.hs
index f2c477f..fe0c14d 100644
--- a/tests/TestUtils.hs
+++ b/tests/TestUtils.hs
@@ -8,6 +8,7 @@ import Prelude ()
import Prelude.Compat
import qualified Language.PureScript as P
+import qualified Language.PureScript.CST as CST
import Control.Arrow ((***), (>>>))
import Control.Monad
@@ -29,7 +30,7 @@ import System.IO.UTF8 (readUTF8FileT)
import System.Exit (exitFailure)
import System.FilePath
import qualified System.FilePath.Glob as Glob
-import System.IO
+import System.IO
import Test.Tasty.Hspec
@@ -82,7 +83,7 @@ getSupportModuleTuples = do
libraries <- Glob.globDir1 (Glob.compile "purescript-*/src/**/*.purs") (supportDir </> "bower_components")
let pursFiles = psciFiles ++ libraries
fileContents <- readInput pursFiles
- modules <- runExceptT $ ExceptT . return $ P.parseModulesFromFiles id fileContents
+ modules <- runExceptT $ ExceptT . return $ CST.parseFromFiles id fileContents
case modules of
Right ms -> return ms
Left errs -> fail (P.prettyPrintMultipleErrors P.defaultPPEOptions errs)
@@ -111,7 +112,7 @@ setupSupportModules = do
let modules = map snd ms
supportExterns <- runExceptT $ do
foreigns <- inferForeignModules ms
- externs <- ExceptT . fmap fst . runTest $ P.make (makeActions modules foreigns) modules
+ externs <- ExceptT . fmap fst . runTest $ P.make (makeActions modules foreigns) (CST.pureResult <$> modules)
return (externs, foreigns)
case supportExterns of
Left errs -> fail (P.prettyPrintMultipleErrors P.defaultPPEOptions errs)
@@ -168,13 +169,13 @@ compile
-> IO (Either P.MultipleErrors [P.ExternsFile], P.MultipleErrors)
compile supportModules supportExterns supportForeigns inputFiles check = runTest $ do
fs <- liftIO $ readInput inputFiles
- ms <- P.parseModulesFromFiles id fs
+ ms <- CST.parseFromFiles id fs
foreigns <- inferForeignModules ms
liftIO (check (map snd ms))
let actions = makeActions supportModules (foreigns `M.union` supportForeigns)
case ms of
[singleModule] -> pure <$> P.rebuildModule actions supportExterns (snd singleModule)
- _ -> P.make actions (supportModules ++ map snd ms)
+ _ -> P.make actions (CST.pureResult <$> supportModules ++ map snd ms)
assert
:: [P.Module]
diff --git a/tests/purs/docs/bower_components/purescript-newtype/src/Data/Newtype.purs b/tests/purs/docs/bower_components/purescript-newtype/src/Data/Newtype.purs
new file mode 100644
index 0000000..6c17d64
--- /dev/null
+++ b/tests/purs/docs/bower_components/purescript-newtype/src/Data/Newtype.purs
@@ -0,0 +1,5 @@
+module Data.Newtype where
+
+class Newtype t a | t -> a where
+ wrap :: a -> t
+ unwrap :: t -> a
diff --git a/tests/purs/docs/output/Ado/docs.json b/tests/purs/docs/output/Ado/docs.json
new file mode 100644
index 0000000..bb03fda
--- /dev/null
+++ b/tests/purs/docs/output/Ado/docs.json
@@ -0,0 +1 @@
+{"reExports":[],"name":"Ado","comments":null,"declarations":[{"children":[],"comments":null,"title":"test","info":{"declType":"value","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}},"sourceSpan":{"start":[4,1],"name":"src/Ado.purs","end":[9,16]}}]} \ No newline at end of file
diff --git a/tests/purs/docs/output/Ado/externs.json b/tests/purs/docs/output/Ado/externs.json
new file mode 100644
index 0000000..14e72ae
--- /dev/null
+++ b/tests/purs/docs/output/Ado/externs.json
@@ -0,0 +1 @@
+{"efVersion":"0.12.5","efModuleName":["Ado"],"efExports":[{"ValueRef":[{"start":[2,1],"name":"src/Ado.purs","end":[9,16]},{"Ident":"test"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"test"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}}}],"efSourceSpan":{"start":[2,1],"name":"src/Ado.purs","end":[9,16]}} \ No newline at end of file
diff --git a/tests/purs/docs/output/ChildDeclOrder/docs.json b/tests/purs/docs/output/ChildDeclOrder/docs.json
new file mode 100644
index 0000000..c4f2da1
--- /dev/null
+++ b/tests/purs/docs/output/ChildDeclOrder/docs.json
@@ -0,0 +1 @@
+{"reExports":[],"name":"ChildDeclOrder","comments":null,"declarations":[{"children":[{"comments":null,"title":"First","info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"Second","info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"showTwo","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["ChildDeclOrder"],"Show"]},{"annotation":[],"tag":"TypeConstructor","contents":[["ChildDeclOrder"],"Two"]}]}},"sourceSpan":{"start":[18,1],"name":"src/ChildDeclOrder.purs","end":[19,15]}},{"comments":null,"title":"fooTwo","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["ChildDeclOrder"],"Foo"]},{"annotation":[],"tag":"TypeConstructor","contents":[["ChildDeclOrder"],"Two"]}]}},"sourceSpan":{"start":[21,1],"name":"src/ChildDeclOrder.purs","end":[23,16]}}],"comments":null,"title":"Two","info":{"declType":"data","dataDeclType":"data","typeArguments":[]},"sourceSpan":{"start":[7,1],"name":"src/ChildDeclOrder.purs","end":[9,11]}},{"children":[{"comments":null,"title":"show","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}},"sourceSpan":{"start":[12,3],"name":"src/ChildDeclOrder.purs","end":[12,22]}},{"comments":null,"title":"showTwo","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["ChildDeclOrder"],"Show"]},{"annotation":[],"tag":"TypeConstructor","contents":[["ChildDeclOrder"],"Two"]}]}},"sourceSpan":{"start":[18,1],"name":"src/ChildDeclOrder.purs","end":[19,15]}}],"comments":null,"title":"Show","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[11,1],"name":"src/ChildDeclOrder.purs","end":[12,22]}},{"children":[{"comments":null,"title":"foo1","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeVar","contents":"a"}},"sourceSpan":{"start":[15,3],"name":"src/ChildDeclOrder.purs","end":[15,12]}},{"comments":null,"title":"foo2","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeVar","contents":"a"}},"sourceSpan":{"start":[16,3],"name":"src/ChildDeclOrder.purs","end":[16,12]}},{"comments":null,"title":"fooTwo","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["ChildDeclOrder"],"Foo"]},{"annotation":[],"tag":"TypeConstructor","contents":[["ChildDeclOrder"],"Two"]}]}},"sourceSpan":{"start":[21,1],"name":"src/ChildDeclOrder.purs","end":[23,16]}},{"comments":null,"title":"fooInt","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["ChildDeclOrder"],"Foo"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}},"sourceSpan":{"start":[25,1],"name":"src/ChildDeclOrder.purs","end":[27,11]}}],"comments":null,"title":"Foo","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[14,1],"name":"src/ChildDeclOrder.purs","end":[16,12]}}]} \ No newline at end of file
diff --git a/tests/purs/docs/output/ChildDeclOrder/externs.json b/tests/purs/docs/output/ChildDeclOrder/externs.json
new file mode 100644
index 0000000..3b74888
--- /dev/null
+++ b/tests/purs/docs/output/ChildDeclOrder/externs.json
@@ -0,0 +1 @@
+{"efVersion":"0.12.5","efModuleName":["ChildDeclOrder"],"efExports":[{"ValueRef":[{"start":[5,1],"name":"src/ChildDeclOrder.purs","end":[27,11]},{"Ident":"foo1"}]},{"ValueRef":[{"start":[5,1],"name":"src/ChildDeclOrder.purs","end":[27,11]},{"Ident":"foo2"}]},{"ValueRef":[{"start":[5,1],"name":"src/ChildDeclOrder.purs","end":[27,11]},{"Ident":"show"}]},{"TypeRef":[{"start":[5,1],"name":"src/ChildDeclOrder.purs","end":[27,11]},"Two",["First","Second"]]},{"TypeClassRef":[{"start":[5,1],"name":"src/ChildDeclOrder.purs","end":[27,11]},"Show"]},{"TypeClassRef":[{"start":[5,1],"name":"src/ChildDeclOrder.purs","end":[27,11]},"Foo"]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"showTwo"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"fooTwo"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"fooInt"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"foo1"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["ChildDeclOrder"],"Foo"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[15,11],"name":"src/ChildDeclOrder.purs","end":[15,12]},[]],"tag":"TypeVar","contents":"a"}]},2]}}},{"EDValue":{"edValueName":{"Ident":"foo2"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["ChildDeclOrder"],"Foo"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[16,11],"name":"src/ChildDeclOrder.purs","end":[16,12]},[]],"tag":"TypeVar","contents":"a"}]},1]}}},{"EDValue":{"edValueName":{"Ident":"show"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["ChildDeclOrder"],"Show"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[12,11],"name":"src/ChildDeclOrder.purs","end":[12,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,11],"name":"src/ChildDeclOrder.purs","end":[12,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,13],"name":"src/ChildDeclOrder.purs","end":[12,15]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[12,11],"name":"src/ChildDeclOrder.purs","end":[12,12]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[12,16],"name":"src/ChildDeclOrder.purs","end":[12,22]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]},0]}}},{"EDType":{"edTypeName":"Two","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},"edTypeDeclarationKind":{"DataType":{"args":[],"ctors":[["First",[]],["Second",[]]]}}}},{"EDDataConstructor":{"edDataCtorName":"First","edDataCtorOrigin":"data","edDataCtorTypeCtor":"Two","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["ChildDeclOrder"],"Two"]},"edDataCtorFields":[]}},{"EDDataConstructor":{"edDataCtorName":"Second","edDataCtorOrigin":"data","edDataCtorTypeCtor":"Two","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["ChildDeclOrder"],"Two"]},"edDataCtorFields":[]}},{"EDType":{"edTypeName":"Show","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[12,13],"name":"src/ChildDeclOrder.purs","end":[12,15]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Show","edTypeSynonymArguments":[["a",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["show",{"annotation":[{"start":[12,11],"name":"src/ChildDeclOrder.purs","end":[12,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,11],"name":"src/ChildDeclOrder.purs","end":[12,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,13],"name":"src/ChildDeclOrder.purs","end":[12,15]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[12,11],"name":"src/ChildDeclOrder.purs","end":[12,12]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[12,16],"name":"src/ChildDeclOrder.purs","end":[12,22]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}}},{"EDClass":{"edClassName":"Show","edClassTypeArguments":[["a",null]],"edClassMembers":[[{"Ident":"show"},{"annotation":[{"start":[12,11],"name":"src/ChildDeclOrder.purs","end":[12,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,11],"name":"src/ChildDeclOrder.purs","end":[12,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,13],"name":"src/ChildDeclOrder.purs","end":[12,15]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[12,11],"name":"src/ChildDeclOrder.purs","end":[12,12]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[12,16],"name":"src/ChildDeclOrder.purs","end":[12,22]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]],"edClassConstraints":[],"edFunctionalDependencies":[]}},{"EDType":{"edTypeName":"Foo","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Foo","edTypeSynonymArguments":[["a",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["foo1",{"annotation":[{"start":[15,11],"name":"src/ChildDeclOrder.purs","end":[15,12]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["foo2",{"annotation":[{"start":[16,11],"name":"src/ChildDeclOrder.purs","end":[16,12]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}]}}},{"EDClass":{"edClassName":"Foo","edClassTypeArguments":[["a",null]],"edClassMembers":[[{"Ident":"foo1"},{"annotation":[{"start":[15,11],"name":"src/ChildDeclOrder.purs","end":[15,12]},[]],"tag":"TypeVar","contents":"a"}],[{"Ident":"foo2"},{"annotation":[{"start":[16,11],"name":"src/ChildDeclOrder.purs","end":[16,12]},[]],"tag":"TypeVar","contents":"a"}]],"edClassConstraints":[],"edFunctionalDependencies":[]}},{"EDInstance":{"edInstanceClassName":[["ChildDeclOrder"],"Show"],"edInstanceName":{"Ident":"showTwo"},"edInstanceTypes":[{"annotation":[{"start":[18,26],"name":"src/ChildDeclOrder.purs","end":[18,29]},[]],"tag":"TypeConstructor","contents":[["ChildDeclOrder"],"Two"]}],"edInstanceConstraints":[],"edInstanceChain":[[["ChildDeclOrder"],{"Ident":"showTwo"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["ChildDeclOrder"],"Foo"],"edInstanceName":{"Ident":"fooTwo"},"edInstanceTypes":[{"annotation":[{"start":[21,24],"name":"src/ChildDeclOrder.purs","end":[21,27]},[]],"tag":"TypeConstructor","contents":[["ChildDeclOrder"],"Two"]}],"edInstanceConstraints":[],"edInstanceChain":[[["ChildDeclOrder"],{"Ident":"fooTwo"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["ChildDeclOrder"],"Foo"],"edInstanceName":{"Ident":"fooInt"},"edInstanceTypes":[{"annotation":[{"start":[25,24],"name":"src/ChildDeclOrder.purs","end":[25,27]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}],"edInstanceConstraints":[],"edInstanceChain":[[["ChildDeclOrder"],{"Ident":"fooInt"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[5,1],"name":"src/ChildDeclOrder.purs","end":[27,11]}} \ No newline at end of file
diff --git a/tests/purs/docs/output/Clash/docs.json b/tests/purs/docs/output/Clash/docs.json
new file mode 100644
index 0000000..d0a4ad8
--- /dev/null
+++ b/tests/purs/docs/output/Clash/docs.json
@@ -0,0 +1 @@
+{"reExports":[],"name":"Clash","comments":null,"declarations":[]} \ No newline at end of file
diff --git a/tests/purs/docs/output/Clash/externs.json b/tests/purs/docs/output/Clash/externs.json
new file mode 100644
index 0000000..66bfd57
--- /dev/null
+++ b/tests/purs/docs/output/Clash/externs.json
@@ -0,0 +1 @@
+{"efVersion":"0.12.5","efModuleName":["Clash"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"src/Clash.purs","end":[4,24]},{"exportSourceImportedFrom":["Clash1"],"exportSourceDefinedIn":["Clash1a"]},{"TypeRef":[{"start":[1,1],"name":"src/Clash.purs","end":[4,24]},"Type",[]]}]},{"ReExportRef":[{"start":[1,1],"name":"src/Clash.purs","end":[4,24]},{"exportSourceImportedFrom":["Clash1"],"exportSourceDefinedIn":["Clash1a"]},{"TypeClassRef":[{"start":[1,1],"name":"src/Clash.purs","end":[4,24]},"TypeClass"]}]},{"ReExportRef":[{"start":[1,1],"name":"src/Clash.purs","end":[4,24]},{"exportSourceImportedFrom":["Clash1"],"exportSourceDefinedIn":["Clash1a"]},{"ValueRef":[{"start":[1,1],"name":"src/Clash.purs","end":[4,24]},{"Ident":"typeClassMember"}]}]},{"ReExportRef":[{"start":[1,1],"name":"src/Clash.purs","end":[4,24]},{"exportSourceImportedFrom":["Clash1"],"exportSourceDefinedIn":["Clash1a"]},{"ValueRef":[{"start":[1,1],"name":"src/Clash.purs","end":[4,24]},{"Ident":"value"}]}]},{"ModuleRef":[{"start":[1,15],"name":"src/Clash.purs","end":[1,28]},["Clash1"]]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Clash1"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Clash1"]},{"eiModule":["Clash2"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Clash2"]}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[],"efSourceSpan":{"start":[1,1],"name":"src/Clash.purs","end":[4,24]}} \ No newline at end of file
diff --git a/tests/purs/docs/output/Clash1/docs.json b/tests/purs/docs/output/Clash1/docs.json
new file mode 100644
index 0000000..89cfcaf
--- /dev/null
+++ b/tests/purs/docs/output/Clash1/docs.json
@@ -0,0 +1 @@
+{"reExports":[],"name":"Clash1","comments":null,"declarations":[]} \ No newline at end of file
diff --git a/tests/purs/docs/output/Clash1/externs.json b/tests/purs/docs/output/Clash1/externs.json
new file mode 100644
index 0000000..84690d3
--- /dev/null
+++ b/tests/purs/docs/output/Clash1/externs.json
@@ -0,0 +1 @@
+{"efVersion":"0.12.5","efModuleName":["Clash1"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"src/Clash1.purs","end":[3,15]},{"exportSourceImportedFrom":["Clash1a"],"exportSourceDefinedIn":["Clash1a"]},{"TypeRef":[{"start":[1,1],"name":"src/Clash1.purs","end":[3,15]},"Type",[]]}]},{"ReExportRef":[{"start":[1,1],"name":"src/Clash1.purs","end":[3,15]},{"exportSourceImportedFrom":["Clash1a"],"exportSourceDefinedIn":["Clash1a"]},{"TypeClassRef":[{"start":[1,1],"name":"src/Clash1.purs","end":[3,15]},"TypeClass"]}]},{"ReExportRef":[{"start":[1,1],"name":"src/Clash1.purs","end":[3,15]},{"exportSourceImportedFrom":["Clash1a"],"exportSourceDefinedIn":["Clash1a"]},{"ValueRef":[{"start":[1,1],"name":"src/Clash1.purs","end":[3,15]},{"Ident":"typeClassMember"}]}]},{"ReExportRef":[{"start":[1,1],"name":"src/Clash1.purs","end":[3,15]},{"exportSourceImportedFrom":["Clash1a"],"exportSourceDefinedIn":["Clash1a"]},{"ValueRef":[{"start":[1,1],"name":"src/Clash1.purs","end":[3,15]},{"Ident":"value"}]}]},{"ModuleRef":[{"start":[1,16],"name":"src/Clash1.purs","end":[1,30]},["Clash1a"]]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Clash1a"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[],"efSourceSpan":{"start":[1,1],"name":"src/Clash1.purs","end":[3,15]}} \ No newline at end of file
diff --git a/tests/purs/docs/output/Clash1a/docs.json b/tests/purs/docs/output/Clash1a/docs.json
new file mode 100644
index 0000000..0a89d36
--- /dev/null
+++ b/tests/purs/docs/output/Clash1a/docs.json
@@ -0,0 +1 @@
+{"reExports":[],"name":"Clash1a","comments":null,"declarations":[{"children":[],"comments":null,"title":"value","info":{"declType":"value","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}},"sourceSpan":{"start":[3,1],"name":"src/Clash1a.purs","end":[3,13]}},{"children":[],"comments":null,"title":"Type","info":{"arguments":[],"declType":"typeSynonym","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}},"sourceSpan":{"start":[6,1],"name":"src/Clash1a.purs","end":[6,16]}},{"children":[{"comments":null,"title":"typeClassMember","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeVar","contents":"a"}},"sourceSpan":{"start":[9,3],"name":"src/Clash1a.purs","end":[9,23]}}],"comments":null,"title":"TypeClass","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[8,1],"name":"src/Clash1a.purs","end":[9,23]}}]} \ No newline at end of file
diff --git a/tests/purs/docs/output/Clash1a/externs.json b/tests/purs/docs/output/Clash1a/externs.json
new file mode 100644
index 0000000..5eeb377
--- /dev/null
+++ b/tests/purs/docs/output/Clash1a/externs.json
@@ -0,0 +1 @@
+{"efVersion":"0.12.5","efModuleName":["Clash1a"],"efExports":[{"ValueRef":[{"start":[1,1],"name":"src/Clash1a.purs","end":[9,23]},{"Ident":"typeClassMember"}]},{"ValueRef":[{"start":[1,1],"name":"src/Clash1a.purs","end":[9,23]},{"Ident":"value"}]},{"TypeRef":[{"start":[1,1],"name":"src/Clash1a.purs","end":[9,23]},"Type",[]]},{"TypeClassRef":[{"start":[1,1],"name":"src/Clash1a.purs","end":[9,23]},"TypeClass"]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"typeClassMember"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Clash1a"],"TypeClass"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[9,22],"name":"src/Clash1a.purs","end":[9,23]},[]],"tag":"TypeVar","contents":"a"}]},0]}}},{"EDValue":{"edValueName":{"Ident":"value"},"edValueType":{"annotation":[{"start":[3,10],"name":"src/Clash1a.purs","end":[3,13]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}}},{"EDType":{"edTypeName":"Type","edTypeKind":{"annotation":[{"start":[6,13],"name":"src/Clash1a.purs","end":[6,16]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Type","edTypeSynonymArguments":[],"edTypeSynonymType":{"annotation":[{"start":[6,13],"name":"src/Clash1a.purs","end":[6,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}}},{"EDType":{"edTypeName":"TypeClass","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"TypeClass","edTypeSynonymArguments":[["a",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["typeClassMember",{"annotation":[{"start":[9,22],"name":"src/Clash1a.purs","end":[9,23]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}}},{"EDClass":{"edClassName":"TypeClass","edClassTypeArguments":[["a",null]],"edClassMembers":[[{"Ident":"typeClassMember"},{"annotation":[{"start":[9,22],"name":"src/Clash1a.purs","end":[9,23]},[]],"tag":"TypeVar","contents":"a"}]],"edClassConstraints":[],"edFunctionalDependencies":[]}}],"efSourceSpan":{"start":[1,1],"name":"src/Clash1a.purs","end":[9,23]}} \ No newline at end of file
diff --git a/tests/purs/docs/output/Clash2/docs.json b/tests/purs/docs/output/Clash2/docs.json
new file mode 100644
index 0000000..dad7dbd
--- /dev/null
+++ b/tests/purs/docs/output/Clash2/docs.json
@@ -0,0 +1 @@
+{"reExports":[],"name":"Clash2","comments":null,"declarations":[]} \ No newline at end of file
diff --git a/tests/purs/docs/output/Clash2/externs.json b/tests/purs/docs/output/Clash2/externs.json
new file mode 100644
index 0000000..7ca5e24
--- /dev/null
+++ b/tests/purs/docs/output/Clash2/externs.json
@@ -0,0 +1 @@
+{"efVersion":"0.12.5","efModuleName":["Clash2"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"src/Clash2.purs","end":[3,15]},{"exportSourceImportedFrom":["Clash2a"],"exportSourceDefinedIn":["Clash2a"]},{"TypeRef":[{"start":[1,1],"name":"src/Clash2.purs","end":[3,15]},"Type",[]]}]},{"ReExportRef":[{"start":[1,1],"name":"src/Clash2.purs","end":[3,15]},{"exportSourceImportedFrom":["Clash2a"],"exportSourceDefinedIn":["Clash2a"]},{"TypeClassRef":[{"start":[1,1],"name":"src/Clash2.purs","end":[3,15]},"TypeClass"]}]},{"ReExportRef":[{"start":[1,1],"name":"src/Clash2.purs","end":[3,15]},{"exportSourceImportedFrom":["Clash2a"],"exportSourceDefinedIn":["Clash2a"]},{"ValueRef":[{"start":[1,1],"name":"src/Clash2.purs","end":[3,15]},{"Ident":"typeClassMember"}]}]},{"ReExportRef":[{"start":[1,1],"name":"src/Clash2.purs","end":[3,15]},{"exportSourceImportedFrom":["Clash2a"],"exportSourceDefinedIn":["Clash2a"]},{"ValueRef":[{"start":[1,1],"name":"src/Clash2.purs","end":[3,15]},{"Ident":"value"}]}]},{"ModuleRef":[{"start":[1,16],"name":"src/Clash2.purs","end":[1,30]},["Clash2a"]]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Clash2a"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[],"efSourceSpan":{"start":[1,1],"name":"src/Clash2.purs","end":[3,15]}} \ No newline at end of file
diff --git a/tests/purs/docs/output/Clash2a/docs.json b/tests/purs/docs/output/Clash2a/docs.json
new file mode 100644
index 0000000..151944e
--- /dev/null
+++ b/tests/purs/docs/output/Clash2a/docs.json
@@ -0,0 +1 @@
+{"reExports":[],"name":"Clash2a","comments":null,"declarations":[{"children":[],"comments":null,"title":"value","info":{"declType":"value","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}},"sourceSpan":{"start":[3,1],"name":"src/Clash2a.purs","end":[3,16]}},{"children":[],"comments":null,"title":"Type","info":{"arguments":[],"declType":"typeSynonym","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}},"sourceSpan":{"start":[6,1],"name":"src/Clash2a.purs","end":[6,19]}},{"children":[{"comments":null,"title":"typeClassMember","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}},"sourceSpan":{"start":[9,3],"name":"src/Clash2a.purs","end":[9,28]}}],"comments":null,"title":"TypeClass","info":{"fundeps":[],"arguments":[["a",null],["b",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[8,1],"name":"src/Clash2a.purs","end":[9,28]}}]} \ No newline at end of file
diff --git a/tests/purs/docs/output/Clash2a/externs.json b/tests/purs/docs/output/Clash2a/externs.json
new file mode 100644
index 0000000..6e3febd
--- /dev/null
+++ b/tests/purs/docs/output/Clash2a/externs.json
@@ -0,0 +1 @@
+{"efVersion":"0.12.5","efModuleName":["Clash2a"],"efExports":[{"ValueRef":[{"start":[1,1],"name":"src/Clash2a.purs","end":[9,28]},{"Ident":"typeClassMember"}]},{"ValueRef":[{"start":[1,1],"name":"src/Clash2a.purs","end":[9,28]},{"Ident":"value"}]},{"TypeRef":[{"start":[1,1],"name":"src/Clash2a.purs","end":[9,28]},"Type",[]]},{"TypeClassRef":[{"start":[1,1],"name":"src/Clash2a.purs","end":[9,28]},"TypeClass"]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"typeClassMember"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Clash2a"],"TypeClass"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"b"}],"constraintData":null},{"annotation":[{"start":[9,22],"name":"src/Clash2a.purs","end":[9,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[9,22],"name":"src/Clash2a.purs","end":[9,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[9,24],"name":"src/Clash2a.purs","end":[9,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[9,22],"name":"src/Clash2a.purs","end":[9,23]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[9,27],"name":"src/Clash2a.purs","end":[9,28]},[]],"tag":"TypeVar","contents":"b"}]}]},0]},1]}}},{"EDValue":{"edValueName":{"Ident":"value"},"edValueType":{"annotation":[{"start":[3,10],"name":"src/Clash2a.purs","end":[3,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}}},{"EDType":{"edTypeName":"Type","edTypeKind":{"annotation":[{"start":[6,13],"name":"src/Clash2a.purs","end":[6,19]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Type","edTypeSynonymArguments":[],"edTypeSynonymType":{"annotation":[{"start":[6,13],"name":"src/Clash2a.purs","end":[6,19]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}}},{"EDType":{"edTypeName":"TypeClass","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[9,24],"name":"src/Clash2a.purs","end":[9,26]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[9,24],"name":"src/Clash2a.purs","end":[9,26]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"TypeClass","edTypeSynonymArguments":[["a",null],["b",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["typeClassMember",{"annotation":[{"start":[9,22],"name":"src/Clash2a.purs","end":[9,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[9,22],"name":"src/Clash2a.purs","end":[9,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[9,24],"name":"src/Clash2a.purs","end":[9,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[9,22],"name":"src/Clash2a.purs","end":[9,23]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[9,27],"name":"src/Clash2a.purs","end":[9,28]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}}},{"EDClass":{"edClassName":"TypeClass","edClassTypeArguments":[["a",null],["b",null]],"edClassMembers":[[{"Ident":"typeClassMember"},{"annotation":[{"start":[9,22],"name":"src/Clash2a.purs","end":[9,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[9,22],"name":"src/Clash2a.purs","end":[9,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[9,24],"name":"src/Clash2a.purs","end":[9,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[9,22],"name":"src/Clash2a.purs","end":[9,23]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[9,27],"name":"src/Clash2a.purs","end":[9,28]},[]],"tag":"TypeVar","contents":"b"}]}]],"edClassConstraints":[],"edFunctionalDependencies":[]}}],"efSourceSpan":{"start":[1,1],"name":"src/Clash2a.purs","end":[9,28]}} \ No newline at end of file
diff --git a/tests/purs/docs/output/ConstrainedArgument/docs.json b/tests/purs/docs/output/ConstrainedArgument/docs.json
new file mode 100644
index 0000000..579fc41
--- /dev/null
+++ b/tests/purs/docs/output/ConstrainedArgument/docs.json
@@ -0,0 +1 @@
+{"reExports":[],"name":"ConstrainedArgument","comments":null,"declarations":[{"children":[],"comments":null,"title":"Foo","info":{"fundeps":[],"arguments":[["t",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[3,1],"name":"src/ConstrainedArgument.purs","end":[3,12]}},{"children":[],"comments":null,"title":"WithoutArgs","info":{"arguments":[],"declType":"typeSynonym","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Prim"],"Partial"],"constraintArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},null]}},"sourceSpan":{"start":[5,1],"name":"src/ConstrainedArgument.purs","end":[5,54]}},{"children":[],"comments":null,"title":"WithArgs","info":{"arguments":[],"declType":"typeSynonym","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["ConstrainedArgument"],"Foo"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},null]}},"sourceSpan":{"start":[6,1],"name":"src/ConstrainedArgument.purs","end":[6,52]}},{"children":[],"comments":null,"title":"MultiWithoutArgs","info":{"arguments":[],"declType":"typeSynonym","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Prim"],"Partial"],"constraintArgs":[],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Prim"],"Partial"],"constraintArgs":[],"constraintData":null},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},null]}},"sourceSpan":{"start":[7,1],"name":"src/ConstrainedArgument.purs","end":[7,65]}},{"children":[],"comments":null,"title":"MultiWithArgs","info":{"arguments":[],"declType":"typeSynonym","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["ConstrainedArgument"],"Foo"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["ConstrainedArgument"],"Foo"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"constraintData":null},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},null]},null]}},"sourceSpan":{"start":[8,1],"name":"src/ConstrainedArgument.purs","end":[8,63]}}]} \ No newline at end of file
diff --git a/tests/purs/docs/output/ConstrainedArgument/externs.json b/tests/purs/docs/output/ConstrainedArgument/externs.json
new file mode 100644
index 0000000..42788af
--- /dev/null
+++ b/tests/purs/docs/output/ConstrainedArgument/externs.json
@@ -0,0 +1 @@
+{"efVersion":"0.12.5","efModuleName":["ConstrainedArgument"],"efExports":[{"TypeClassRef":[{"start":[1,1],"name":"src/ConstrainedArgument.purs","end":[8,63]},"Foo"]},{"TypeRef":[{"start":[1,1],"name":"src/ConstrainedArgument.purs","end":[8,63]},"WithoutArgs",[]]},{"TypeRef":[{"start":[1,1],"name":"src/ConstrainedArgument.purs","end":[8,63]},"WithArgs",[]]},{"TypeRef":[{"start":[1,1],"name":"src/ConstrainedArgument.purs","end":[8,63]},"MultiWithoutArgs",[]]},{"TypeRef":[{"start":[1,1],"name":"src/ConstrainedArgument.purs","end":[8,63]},"MultiWithArgs",[]]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Foo","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Foo","edTypeSynonymArguments":[["t",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}}},{"EDClass":{"edClassName":"Foo","edClassTypeArguments":[["t",null]],"edClassMembers":[],"edClassConstraints":[],"edFunctionalDependencies":[]}},{"EDType":{"edTypeName":"WithoutArgs","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"WithoutArgs","edTypeSynonymArguments":[],"edTypeSynonymType":{"annotation":[{"start":[5,25],"name":"src/ConstrainedArgument.purs","end":[5,54]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[5,35],"name":"src/ConstrainedArgument.purs","end":[5,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,35],"name":"src/ConstrainedArgument.purs","end":[5,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,50],"name":"src/ConstrainedArgument.purs","end":[5,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[5,36],"name":"src/ConstrainedArgument.purs","end":[5,48]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[5,36],"name":"src/ConstrainedArgument.purs","end":[5,43]},[]],"constraintClass":[["Prim"],"Partial"],"constraintArgs":[],"constraintData":null},{"annotation":[{"start":[5,47],"name":"src/ConstrainedArgument.purs","end":[5,48]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[5,53],"name":"src/ConstrainedArgument.purs","end":[5,54]},[]],"tag":"TypeVar","contents":"a"}]},null]}}},{"EDType":{"edTypeName":"WithArgs","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"WithArgs","edTypeSynonymArguments":[],"edTypeSynonymType":{"annotation":[{"start":[6,25],"name":"src/ConstrainedArgument.purs","end":[6,52]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[6,35],"name":"src/ConstrainedArgument.purs","end":[6,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[6,35],"name":"src/ConstrainedArgument.purs","end":[6,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[6,48],"name":"src/ConstrainedArgument.purs","end":[6,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[6,36],"name":"src/ConstrainedArgument.purs","end":[6,46]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[6,36],"name":"src/ConstrainedArgument.purs","end":[6,41]},[]],"constraintClass":[["ConstrainedArgument"],"Foo"],"constraintArgs":[{"annotation":[{"start":[6,40],"name":"src/ConstrainedArgument.purs","end":[6,41]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[6,45],"name":"src/ConstrainedArgument.purs","end":[6,46]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[6,51],"name":"src/ConstrainedArgument.purs","end":[6,52]},[]],"tag":"TypeVar","contents":"a"}]},null]}}},{"EDType":{"edTypeName":"MultiWithoutArgs","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"MultiWithoutArgs","edTypeSynonymArguments":[],"edTypeSynonymType":{"annotation":[{"start":[7,25],"name":"src/ConstrainedArgument.purs","end":[7,65]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[7,35],"name":"src/ConstrainedArgument.purs","end":[7,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[7,35],"name":"src/ConstrainedArgument.purs","end":[7,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[7,61],"name":"src/ConstrainedArgument.purs","end":[7,63]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[7,36],"name":"src/ConstrainedArgument.purs","end":[7,59]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[7,36],"name":"src/ConstrainedArgument.purs","end":[7,43]},[]],"constraintClass":[["Prim"],"Partial"],"constraintArgs":[],"constraintData":null},{"annotation":[{"start":[7,47],"name":"src/ConstrainedArgument.purs","end":[7,59]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[7,47],"name":"src/ConstrainedArgument.purs","end":[7,54]},[]],"constraintClass":[["Prim"],"Partial"],"constraintArgs":[],"constraintData":null},{"annotation":[{"start":[7,58],"name":"src/ConstrainedArgument.purs","end":[7,59]},[]],"tag":"TypeVar","contents":"a"}]}]}]},{"annotation":[{"start":[7,64],"name":"src/ConstrainedArgument.purs","end":[7,65]},[]],"tag":"TypeVar","contents":"a"}]},null]}}},{"EDType":{"edTypeName":"MultiWithArgs","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"MultiWithArgs","edTypeSynonymArguments":[],"edTypeSynonymType":{"annotation":[{"start":[8,25],"name":"src/ConstrainedArgument.purs","end":[8,63]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[8,32],"name":"src/ConstrainedArgument.purs","end":[8,63]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[8,37],"name":"src/ConstrainedArgument.purs","end":[8,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[8,37],"name":"src/ConstrainedArgument.purs","end":[8,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[8,59],"name":"src/ConstrainedArgument.purs","end":[8,61]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[8,38],"name":"src/ConstrainedArgument.purs","end":[8,57]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[8,38],"name":"src/ConstrainedArgument.purs","end":[8,43]},[]],"constraintClass":[["ConstrainedArgument"],"Foo"],"constraintArgs":[{"annotation":[{"start":[8,42],"name":"src/ConstrainedArgument.purs","end":[8,43]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[8,47],"name":"src/ConstrainedArgument.purs","end":[8,57]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[8,47],"name":"src/ConstrainedArgument.purs","end":[8,52]},[]],"constraintClass":[["ConstrainedArgument"],"Foo"],"constraintArgs":[{"annotation":[{"start":[8,51],"name":"src/ConstrainedArgument.purs","end":[8,52]},[]],"tag":"TypeVar","contents":"b"}],"constraintData":null},{"annotation":[{"start":[8,56],"name":"src/ConstrainedArgument.purs","end":[8,57]},[]],"tag":"TypeVar","contents":"a"}]}]}]},{"annotation":[{"start":[8,62],"name":"src/ConstrainedArgument.purs","end":[8,63]},[]],"tag":"TypeVar","contents":"a"}]},null]},null]}}}],"efSourceSpan":{"start":[1,1],"name":"src/ConstrainedArgument.purs","end":[8,63]}} \ No newline at end of file
diff --git a/tests/purs/docs/output/Data.Newtype/docs.json b/tests/purs/docs/output/Data.Newtype/docs.json
new file mode 100644
index 0000000..c67c290
--- /dev/null
+++ b/tests/purs/docs/output/Data.Newtype/docs.json
@@ -0,0 +1 @@
+{"reExports":[],"name":"Data.Newtype","comments":null,"declarations":[{"children":[{"comments":null,"title":"wrap","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"t"}]}},"sourceSpan":{"start":[4,3],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[4,17]}},{"comments":null,"title":"unwrap","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"t"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}},"sourceSpan":{"start":[5,3],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[5,19]}}],"comments":null,"title":"Newtype","info":{"fundeps":[[["t"],["a"]]],"arguments":[["t",null],["a",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[3,1],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[5,19]}}]} \ No newline at end of file
diff --git a/tests/purs/docs/output/Data.Newtype/externs.json b/tests/purs/docs/output/Data.Newtype/externs.json
new file mode 100644
index 0000000..26f3159
--- /dev/null
+++ b/tests/purs/docs/output/Data.Newtype/externs.json
@@ -0,0 +1 @@
+{"efVersion":"0.12.5","efModuleName":["Data","Newtype"],"efExports":[{"ValueRef":[{"start":[1,1],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[5,19]},{"Ident":"unwrap"}]},{"ValueRef":[{"start":[1,1],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[5,19]},{"Ident":"wrap"}]},{"TypeClassRef":[{"start":[1,1],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[5,19]},"Newtype"]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"unwrap"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["t",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[5,13],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[5,19]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,13],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[5,19]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,15],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[5,17]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[5,13],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[5,14]},[]],"tag":"TypeVar","contents":"t"}]},{"annotation":[{"start":[5,18],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[5,19]},[]],"tag":"TypeVar","contents":"a"}]}]},2]},3]}}},{"EDValue":{"edValueName":{"Ident":"wrap"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["t",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Data","Newtype"],"Newtype"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"t"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[4,11],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[4,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[4,11],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[4,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[4,13],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[4,15]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[4,11],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[4,12]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[4,16],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[4,17]},[]],"tag":"TypeVar","contents":"t"}]}]},0]},1]}}},{"EDType":{"edTypeName":"Newtype","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[4,13],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[4,15]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[4,13],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[4,15]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Newtype","edTypeSynonymArguments":[["t",null],["a",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["wrap",{"annotation":[{"start":[4,11],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[4,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[4,11],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[4,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[4,13],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[4,15]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[4,11],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[4,12]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[4,16],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[4,17]},[]],"tag":"TypeVar","contents":"t"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["unwrap",{"annotation":[{"start":[5,13],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[5,19]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,13],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[5,19]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,15],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[5,17]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[5,13],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[5,14]},[]],"tag":"TypeVar","contents":"t"}]},{"annotation":[{"start":[5,18],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[5,19]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}]}}},{"EDClass":{"edClassName":"Newtype","edClassTypeArguments":[["t",null],["a",null]],"edClassMembers":[[{"Ident":"wrap"},{"annotation":[{"start":[4,11],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[4,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[4,11],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[4,17]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[4,13],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[4,15]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[4,11],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[4,12]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[4,16],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[4,17]},[]],"tag":"TypeVar","contents":"t"}]}],[{"Ident":"unwrap"},{"annotation":[{"start":[5,13],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[5,19]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,13],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[5,19]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,15],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[5,17]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[5,13],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[5,14]},[]],"tag":"TypeVar","contents":"t"}]},{"annotation":[{"start":[5,18],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[5,19]},[]],"tag":"TypeVar","contents":"a"}]}]],"edClassConstraints":[],"edFunctionalDependencies":[{"determiners":[0],"determined":[1]}]}}],"efSourceSpan":{"start":[1,1],"name":"bower_components/purescript-newtype/src/Data/Newtype.purs","end":[5,19]}} \ No newline at end of file
diff --git a/tests/purs/docs/output/DeclOrder/docs.json b/tests/purs/docs/output/DeclOrder/docs.json
new file mode 100644
index 0000000..7496c01
--- /dev/null
+++ b/tests/purs/docs/output/DeclOrder/docs.json
@@ -0,0 +1 @@
+{"reExports":[],"name":"DeclOrder","comments":null,"declarations":[{"children":[],"comments":null,"title":"A","info":{"fundeps":[],"arguments":[],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[16,1],"name":"src/DeclOrder.purs","end":[16,8]}},{"children":[],"comments":null,"title":"x1","info":{"declType":"value","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}},"sourceSpan":{"start":[10,1],"name":"src/DeclOrder.purs","end":[10,7]}},{"children":[],"comments":null,"title":"X2","info":{"declType":"data","dataDeclType":"data","typeArguments":[]},"sourceSpan":{"start":[13,1],"name":"src/DeclOrder.purs","end":[13,8]}},{"children":[],"comments":null,"title":"x3","info":{"declType":"value","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}},"sourceSpan":{"start":[11,1],"name":"src/DeclOrder.purs","end":[11,7]}},{"children":[],"comments":null,"title":"X4","info":{"declType":"data","dataDeclType":"data","typeArguments":[]},"sourceSpan":{"start":[14,1],"name":"src/DeclOrder.purs","end":[14,8]}},{"children":[],"comments":null,"title":"B","info":{"fundeps":[],"arguments":[],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[17,1],"name":"src/DeclOrder.purs","end":[17,8]}}]} \ No newline at end of file
diff --git a/tests/purs/docs/output/DeclOrder/externs.json b/tests/purs/docs/output/DeclOrder/externs.json
new file mode 100644
index 0000000..5673895
--- /dev/null
+++ b/tests/purs/docs/output/DeclOrder/externs.json
@@ -0,0 +1 @@
+{"efVersion":"0.12.5","efModuleName":["DeclOrder"],"efExports":[{"TypeClassRef":[{"start":[1,1],"name":"src/DeclOrder.purs","end":[17,8]},"A"]},{"ValueRef":[{"start":[1,1],"name":"src/DeclOrder.purs","end":[17,8]},{"Ident":"x1"}]},{"TypeRef":[{"start":[1,1],"name":"src/DeclOrder.purs","end":[17,8]},"X2",[]]},{"ValueRef":[{"start":[1,1],"name":"src/DeclOrder.purs","end":[17,8]},{"Ident":"x3"}]},{"TypeRef":[{"start":[1,1],"name":"src/DeclOrder.purs","end":[17,8]},"X4",[]]},{"TypeClassRef":[{"start":[1,1],"name":"src/DeclOrder.purs","end":[17,8]},"B"]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"A","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"A","edTypeSynonymArguments":[],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}}},{"EDClass":{"edClassName":"A","edClassTypeArguments":[],"edClassMembers":[],"edClassConstraints":[],"edFunctionalDependencies":[]}},{"EDValue":{"edValueName":{"Ident":"x1"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}}},{"EDType":{"edTypeName":"X2","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},"edTypeDeclarationKind":{"DataType":{"args":[],"ctors":[]}}}},{"EDValue":{"edValueName":{"Ident":"x3"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}}},{"EDType":{"edTypeName":"X4","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},"edTypeDeclarationKind":{"DataType":{"args":[],"ctors":[]}}}},{"EDType":{"edTypeName":"B","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"B","edTypeSynonymArguments":[],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}}},{"EDClass":{"edClassName":"B","edClassTypeArguments":[],"edClassMembers":[],"edClassConstraints":[],"edFunctionalDependencies":[]}}],"efSourceSpan":{"start":[1,1],"name":"src/DeclOrder.purs","end":[17,8]}} \ No newline at end of file
diff --git a/tests/purs/docs/output/DeclOrderNoExportList/docs.json b/tests/purs/docs/output/DeclOrderNoExportList/docs.json
new file mode 100644
index 0000000..28baa20
--- /dev/null
+++ b/tests/purs/docs/output/DeclOrderNoExportList/docs.json
@@ -0,0 +1 @@
+{"reExports":[],"name":"DeclOrderNoExportList","comments":null,"declarations":[{"children":[],"comments":null,"title":"x1","info":{"declType":"value","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}},"sourceSpan":{"start":[3,1],"name":"src/DeclOrderNoExportList.purs","end":[3,7]}},{"children":[],"comments":null,"title":"x3","info":{"declType":"value","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}},"sourceSpan":{"start":[4,1],"name":"src/DeclOrderNoExportList.purs","end":[4,7]}},{"children":[],"comments":null,"title":"X2","info":{"declType":"data","dataDeclType":"data","typeArguments":[]},"sourceSpan":{"start":[6,1],"name":"src/DeclOrderNoExportList.purs","end":[6,8]}},{"children":[],"comments":null,"title":"X4","info":{"declType":"data","dataDeclType":"data","typeArguments":[]},"sourceSpan":{"start":[7,1],"name":"src/DeclOrderNoExportList.purs","end":[7,8]}},{"children":[],"comments":null,"title":"A","info":{"fundeps":[],"arguments":[],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[9,1],"name":"src/DeclOrderNoExportList.purs","end":[9,8]}},{"children":[],"comments":null,"title":"B","info":{"fundeps":[],"arguments":[],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[10,1],"name":"src/DeclOrderNoExportList.purs","end":[10,8]}}]} \ No newline at end of file
diff --git a/tests/purs/docs/output/DeclOrderNoExportList/externs.json b/tests/purs/docs/output/DeclOrderNoExportList/externs.json
new file mode 100644
index 0000000..f6aef98
--- /dev/null
+++ b/tests/purs/docs/output/DeclOrderNoExportList/externs.json
@@ -0,0 +1 @@
+{"efVersion":"0.12.5","efModuleName":["DeclOrderNoExportList"],"efExports":[{"ValueRef":[{"start":[1,1],"name":"src/DeclOrderNoExportList.purs","end":[10,8]},{"Ident":"x1"}]},{"ValueRef":[{"start":[1,1],"name":"src/DeclOrderNoExportList.purs","end":[10,8]},{"Ident":"x3"}]},{"TypeRef":[{"start":[1,1],"name":"src/DeclOrderNoExportList.purs","end":[10,8]},"X2",[]]},{"TypeRef":[{"start":[1,1],"name":"src/DeclOrderNoExportList.purs","end":[10,8]},"X4",[]]},{"TypeClassRef":[{"start":[1,1],"name":"src/DeclOrderNoExportList.purs","end":[10,8]},"A"]},{"TypeClassRef":[{"start":[1,1],"name":"src/DeclOrderNoExportList.purs","end":[10,8]},"B"]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"x1"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}}},{"EDValue":{"edValueName":{"Ident":"x3"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}}},{"EDType":{"edTypeName":"X2","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},"edTypeDeclarationKind":{"DataType":{"args":[],"ctors":[]}}}},{"EDType":{"edTypeName":"X4","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},"edTypeDeclarationKind":{"DataType":{"args":[],"ctors":[]}}}},{"EDType":{"edTypeName":"A","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"A","edTypeSynonymArguments":[],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}}},{"EDClass":{"edClassName":"A","edClassTypeArguments":[],"edClassMembers":[],"edClassConstraints":[],"edFunctionalDependencies":[]}},{"EDType":{"edTypeName":"B","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"B","edTypeSynonymArguments":[],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}}},{"EDClass":{"edClassName":"B","edClassTypeArguments":[],"edClassMembers":[],"edClassConstraints":[],"edFunctionalDependencies":[]}}],"efSourceSpan":{"start":[1,1],"name":"src/DeclOrderNoExportList.purs","end":[10,8]}} \ No newline at end of file
diff --git a/tests/purs/docs/output/Desugar/docs.json b/tests/purs/docs/output/Desugar/docs.json
new file mode 100644
index 0000000..37f9cee
--- /dev/null
+++ b/tests/purs/docs/output/Desugar/docs.json
@@ -0,0 +1 @@
+{"reExports":[],"name":"Desugar","comments":null,"declarations":[{"children":[{"comments":null,"title":"X","info":{"arguments":[{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"TypeVar","contents":"b"}],"declType":"dataConstructor"},"sourceSpan":null}],"comments":null,"title":"X","info":{"declType":"data","dataDeclType":"data","typeArguments":[["a",null],["b",null]]},"sourceSpan":{"start":[3,1],"name":"src/Desugar.purs","end":[3,19]}},{"children":[],"comments":null,"title":"test","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Desugar"],"X"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},null]},null]}},"sourceSpan":{"start":[5,1],"name":"src/Desugar.purs","end":[5,38]}}]} \ No newline at end of file
diff --git a/tests/purs/docs/output/Desugar/externs.json b/tests/purs/docs/output/Desugar/externs.json
new file mode 100644
index 0000000..e040fd8
--- /dev/null
+++ b/tests/purs/docs/output/Desugar/externs.json
@@ -0,0 +1 @@
+{"efVersion":"0.12.5","efModuleName":["Desugar"],"efExports":[{"TypeRef":[{"start":[1,1],"name":"src/Desugar.purs","end":[8,9]},"X",["X"]]},{"ValueRef":[{"start":[1,1],"name":"src/Desugar.purs","end":[8,9]},{"Ident":"test"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"X","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[3,16],"name":"src/Desugar.purs","end":[3,17]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[3,18],"name":"src/Desugar.purs","end":[3,19]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]},"edTypeDeclarationKind":{"DataType":{"args":[["a",{"annotation":[{"start":[3,16],"name":"src/Desugar.purs","end":[3,17]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["b",{"annotation":[{"start":[3,18],"name":"src/Desugar.purs","end":[3,19]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"ctors":[["X",[{"annotation":[{"start":[3,16],"name":"src/Desugar.purs","end":[3,17]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[3,18],"name":"src/Desugar.purs","end":[3,19]},[]],"tag":"TypeVar","contents":"b"}]]]}}}},{"EDDataConstructor":{"edDataCtorName":"X","edDataCtorOrigin":"data","edDataCtorTypeCtor":"X","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[3,16],"name":"src/Desugar.purs","end":[3,17]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[3,18],"name":"src/Desugar.purs","end":[3,19]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Desugar"],"X"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]},"edDataCtorFields":[{"Ident":"value0"},{"Ident":"value1"}]}},{"EDValue":{"edValueName":{"Ident":"test"},"edValueType":{"annotation":[{"start":[5,9],"name":"src/Desugar.purs","end":[5,38]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[5,16],"name":"src/Desugar.purs","end":[5,38]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[5,21],"name":"src/Desugar.purs","end":[5,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,21],"name":"src/Desugar.purs","end":[5,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,34],"name":"src/Desugar.purs","end":[5,36]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[5,21],"name":"src/Desugar.purs","end":[5,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,21],"name":"src/Desugar.purs","end":[5,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,21],"name":"src/Desugar.purs","end":[5,22]},[]],"tag":"TypeConstructor","contents":[["Desugar"],"X"]},{"annotation":[{"start":[5,24],"name":"src/Desugar.purs","end":[5,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,24],"name":"src/Desugar.purs","end":[5,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,26],"name":"src/Desugar.purs","end":[5,28]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[5,24],"name":"src/Desugar.purs","end":[5,25]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[5,29],"name":"src/Desugar.purs","end":[5,30]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[5,32],"name":"src/Desugar.purs","end":[5,33]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[5,37],"name":"src/Desugar.purs","end":[5,38]},[]],"tag":"TypeVar","contents":"b"}]},0]},1]}}}],"efSourceSpan":{"start":[1,1],"name":"src/Desugar.purs","end":[8,9]}} \ No newline at end of file
diff --git a/tests/purs/docs/output/DocComments/docs.json b/tests/purs/docs/output/DocComments/docs.json
new file mode 100644
index 0000000..beaf573
--- /dev/null
+++ b/tests/purs/docs/output/DocComments/docs.json
@@ -0,0 +1 @@
+{"reExports":[],"name":"DocComments","comments":null,"declarations":[{"children":[],"comments":"This declaration has a code block:\n\n example == 0\n\nHere we are really testing that the leading whitespace is not stripped, as\nthis ensures that we don't accidentally change code blocks into normal\nparagraphs.\n","title":"example","info":{"declType":"value","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}},"sourceSpan":{"start":[10,1],"name":"src/DocComments.purs","end":[10,15]}}]} \ No newline at end of file
diff --git a/tests/purs/docs/output/DocComments/externs.json b/tests/purs/docs/output/DocComments/externs.json
new file mode 100644
index 0000000..335108f
--- /dev/null
+++ b/tests/purs/docs/output/DocComments/externs.json
@@ -0,0 +1 @@
+{"efVersion":"0.12.5","efModuleName":["DocComments"],"efExports":[{"ValueRef":[{"start":[1,1],"name":"src/DocComments.purs","end":[11,12]},{"Ident":"example"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"example"},"edValueType":{"annotation":[{"start":[10,12],"name":"src/DocComments.purs","end":[10,15]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}}}],"efSourceSpan":{"start":[1,1],"name":"src/DocComments.purs","end":[11,12]}} \ No newline at end of file
diff --git a/tests/purs/docs/output/DuplicateNames/docs.json b/tests/purs/docs/output/DuplicateNames/docs.json
new file mode 100644
index 0000000..d3405e5
--- /dev/null
+++ b/tests/purs/docs/output/DuplicateNames/docs.json
@@ -0,0 +1 @@
+{"reExports":[],"name":"DuplicateNames","comments":null,"declarations":[{"children":[],"comments":null,"title":"unit","info":{"declType":"value","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}},"sourceSpan":{"start":[8,1],"name":"src/DuplicateNames.purs","end":[8,12]}}]} \ No newline at end of file
diff --git a/tests/purs/docs/output/DuplicateNames/externs.json b/tests/purs/docs/output/DuplicateNames/externs.json
new file mode 100644
index 0000000..0676674
--- /dev/null
+++ b/tests/purs/docs/output/DuplicateNames/externs.json
@@ -0,0 +1 @@
+{"efVersion":"0.12.5","efModuleName":["DuplicateNames"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"src/DuplicateNames.purs","end":[9,9]},{"exportSourceImportedFrom":["Prelude"],"exportSourceDefinedIn":["Prelude"]},{"TypeRef":[{"start":[1,1],"name":"src/DuplicateNames.purs","end":[9,9]},"Unit",[]]}]},{"ValueRef":[{"start":[1,1],"name":"src/DuplicateNames.purs","end":[9,9]},{"Ident":"unit"}]},{"ModuleRef":[{"start":[2,5],"name":"src/DuplicateNames.purs","end":[2,26]},["DuplicateNames"]]},{"ModuleRef":[{"start":[3,5],"name":"src/DuplicateNames.purs","end":[3,19]},["Prelude"]]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[6,17],"name":"src/DuplicateNames.purs","end":[6,21]},"Unit",[]]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"unit"},"edValueType":{"annotation":[{"start":[8,9],"name":"src/DuplicateNames.purs","end":[8,12]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}}}],"efSourceSpan":{"start":[1,1],"name":"src/DuplicateNames.purs","end":[9,9]}} \ No newline at end of file
diff --git a/tests/purs/docs/output/Example/docs.json b/tests/purs/docs/output/Example/docs.json
new file mode 100644
index 0000000..76d1904
--- /dev/null
+++ b/tests/purs/docs/output/Example/docs.json
@@ -0,0 +1 @@
+{"reExports":[],"name":"Example","comments":null,"declarations":[]} \ No newline at end of file
diff --git a/tests/purs/docs/output/Example/externs.json b/tests/purs/docs/output/Example/externs.json
new file mode 100644
index 0000000..32b7a1a
--- /dev/null
+++ b/tests/purs/docs/output/Example/externs.json
@@ -0,0 +1 @@
+{"efVersion":"0.12.5","efModuleName":["Example"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"src/Example.purs","end":[7,22]},{"exportSourceImportedFrom":["Prelude"],"exportSourceDefinedIn":["Prelude"]},{"TypeRef":[{"start":[1,1],"name":"src/Example.purs","end":[7,22]},"Unit",[]]}]},{"ReExportRef":[{"start":[1,1],"name":"src/Example.purs","end":[7,22]},{"exportSourceImportedFrom":["Example2"],"exportSourceDefinedIn":["Example2"]},{"ValueRef":[{"start":[1,1],"name":"src/Example.purs","end":[7,22]},{"Ident":"one"}]}]},{"ModuleRef":[{"start":[2,5],"name":"src/Example.purs","end":[2,19]},["Prelude"]]},{"ModuleRef":[{"start":[3,5],"name":"src/Example.purs","end":[3,20]},["Example2"]]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[6,17],"name":"src/Example.purs","end":[6,23]},"Unit",[]]}]},"eiImportedAs":null},{"eiModule":["Example2"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[7,18],"name":"src/Example.purs","end":[7,21]},{"Ident":"one"}]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[],"efSourceSpan":{"start":[1,1],"name":"src/Example.purs","end":[7,22]}} \ No newline at end of file
diff --git a/tests/purs/docs/output/Example2/docs.json b/tests/purs/docs/output/Example2/docs.json
new file mode 100644
index 0000000..fb33892
--- /dev/null
+++ b/tests/purs/docs/output/Example2/docs.json
@@ -0,0 +1 @@
+{"reExports":[],"name":"Example2","comments":null,"declarations":[{"children":[],"comments":null,"title":"one","info":{"declType":"value","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}},"sourceSpan":{"start":[3,1],"name":"src/Example2.purs","end":[3,11]}},{"children":[],"comments":null,"title":"two","info":{"declType":"value","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}},"sourceSpan":{"start":[6,1],"name":"src/Example2.purs","end":[6,11]}}]} \ No newline at end of file
diff --git a/tests/purs/docs/output/Example2/externs.json b/tests/purs/docs/output/Example2/externs.json
new file mode 100644
index 0000000..453bec3
--- /dev/null
+++ b/tests/purs/docs/output/Example2/externs.json
@@ -0,0 +1 @@
+{"efVersion":"0.12.5","efModuleName":["Example2"],"efExports":[{"ValueRef":[{"start":[1,1],"name":"src/Example2.purs","end":[7,8]},{"Ident":"one"}]},{"ValueRef":[{"start":[1,1],"name":"src/Example2.purs","end":[7,8]},{"Ident":"two"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"one"},"edValueType":{"annotation":[{"start":[3,8],"name":"src/Example2.purs","end":[3,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}}},{"EDValue":{"edValueName":{"Ident":"two"},"edValueType":{"annotation":[{"start":[6,8],"name":"src/Example2.purs","end":[6,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}}}],"efSourceSpan":{"start":[1,1],"name":"src/Example2.purs","end":[7,8]}} \ No newline at end of file
diff --git a/tests/purs/docs/output/ExplicitExport/docs.json b/tests/purs/docs/output/ExplicitExport/docs.json
new file mode 100644
index 0000000..f1369e6
--- /dev/null
+++ b/tests/purs/docs/output/ExplicitExport/docs.json
@@ -0,0 +1 @@
+{"reExports":[],"name":"ExplicitExport","comments":null,"declarations":[{"children":[],"comments":null,"title":"one","info":{"declType":"value","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}},"sourceSpan":{"start":[3,1],"name":"src/ExplicitExport.purs","end":[3,11]}}]} \ No newline at end of file
diff --git a/tests/purs/docs/output/ExplicitExport/externs.json b/tests/purs/docs/output/ExplicitExport/externs.json
new file mode 100644
index 0000000..6a75bad
--- /dev/null
+++ b/tests/purs/docs/output/ExplicitExport/externs.json
@@ -0,0 +1 @@
+{"efVersion":"0.12.5","efModuleName":["ExplicitExport"],"efExports":[{"ValueRef":[{"start":[1,1],"name":"src/ExplicitExport.purs","end":[7,8]},{"Ident":"one"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"one"},"edValueType":{"annotation":[{"start":[3,8],"name":"src/ExplicitExport.purs","end":[3,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}}}],"efSourceSpan":{"start":[1,1],"name":"src/ExplicitExport.purs","end":[7,8]}} \ No newline at end of file
diff --git a/tests/purs/docs/output/ExplicitTypeSignatures/docs.json b/tests/purs/docs/output/ExplicitTypeSignatures/docs.json
new file mode 100644
index 0000000..5d145cf
--- /dev/null
+++ b/tests/purs/docs/output/ExplicitTypeSignatures/docs.json
@@ -0,0 +1 @@
+{"reExports":[],"name":"ExplicitTypeSignatures","comments":null,"declarations":[{"children":[],"comments":null,"title":"explicit","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["something",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"something"}]},{"annotation":[],"tag":"TypeVar","contents":"something"}]},null]}},"sourceSpan":{"start":[6,1],"name":"src/ExplicitTypeSignatures.purs","end":[6,53]}},{"children":[],"comments":null,"title":"anInt","info":{"declType":"value","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}},"sourceSpan":{"start":[12,1],"name":"src/ExplicitTypeSignatures.purs","end":[12,11]}},{"children":[],"comments":null,"title":"aNumber","info":{"declType":"value","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}},"sourceSpan":{"start":[16,1],"name":"src/ExplicitTypeSignatures.purs","end":[16,14]}}]} \ No newline at end of file
diff --git a/tests/purs/docs/output/ExplicitTypeSignatures/externs.json b/tests/purs/docs/output/ExplicitTypeSignatures/externs.json
new file mode 100644
index 0000000..e412bbf
--- /dev/null
+++ b/tests/purs/docs/output/ExplicitTypeSignatures/externs.json
@@ -0,0 +1 @@
+{"efVersion":"0.12.5","efModuleName":["ExplicitTypeSignatures"],"efExports":[{"ValueRef":[{"start":[2,1],"name":"src/ExplicitTypeSignatures.purs","end":[16,14]},{"Ident":"explicit"}]},{"ValueRef":[{"start":[2,1],"name":"src/ExplicitTypeSignatures.purs","end":[16,14]},{"Ident":"anInt"}]},{"ValueRef":[{"start":[2,1],"name":"src/ExplicitTypeSignatures.purs","end":[16,14]},{"Ident":"aNumber"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"explicit"},"edValueType":{"annotation":[{"start":[6,13],"name":"src/ExplicitTypeSignatures.purs","end":[6,53]},[]],"tag":"ForAll","contents":["something",{"annotation":[{"start":[6,31],"name":"src/ExplicitTypeSignatures.purs","end":[6,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[6,31],"name":"src/ExplicitTypeSignatures.purs","end":[6,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[6,41],"name":"src/ExplicitTypeSignatures.purs","end":[6,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[6,31],"name":"src/ExplicitTypeSignatures.purs","end":[6,40]},[]],"tag":"TypeVar","contents":"something"}]},{"annotation":[{"start":[6,44],"name":"src/ExplicitTypeSignatures.purs","end":[6,53]},[]],"tag":"TypeVar","contents":"something"}]},0]}}},{"EDValue":{"edValueName":{"Ident":"anInt"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}}},{"EDValue":{"edValueName":{"Ident":"aNumber"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}}}],"efSourceSpan":{"start":[2,1],"name":"src/ExplicitTypeSignatures.purs","end":[16,14]}} \ No newline at end of file
diff --git a/tests/purs/docs/output/ImportedTwice/docs.json b/tests/purs/docs/output/ImportedTwice/docs.json
new file mode 100644
index 0000000..4d76caf
--- /dev/null
+++ b/tests/purs/docs/output/ImportedTwice/docs.json
@@ -0,0 +1 @@
+{"reExports":[],"name":"ImportedTwice","comments":null,"declarations":[]} \ No newline at end of file
diff --git a/tests/purs/docs/output/ImportedTwice/externs.json b/tests/purs/docs/output/ImportedTwice/externs.json
new file mode 100644
index 0000000..a59253e
--- /dev/null
+++ b/tests/purs/docs/output/ImportedTwice/externs.json
@@ -0,0 +1 @@
+{"efVersion":"0.12.5","efModuleName":["ImportedTwice"],"efExports":[{"ReExportRef":[{"start":[6,1],"name":"src/ImportedTwice.purs","end":[13,22]},{"exportSourceImportedFrom":["ImportedTwiceB"],"exportSourceDefinedIn":["ImportedTwiceB"]},{"ValueRef":[{"start":[6,1],"name":"src/ImportedTwice.purs","end":[13,22]},{"Ident":"foo"}]}]},{"ModuleRef":[{"start":[7,5],"name":"src/ImportedTwice.purs","end":[7,26]},["ImportedTwiceA"]]},{"ModuleRef":[{"start":[8,5],"name":"src/ImportedTwice.purs","end":[8,26]},["ImportedTwiceB"]]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["ImportedTwiceA"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["ImportedTwiceB"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[],"efSourceSpan":{"start":[6,1],"name":"src/ImportedTwice.purs","end":[13,22]}} \ No newline at end of file
diff --git a/tests/purs/docs/output/ImportedTwiceA/docs.json b/tests/purs/docs/output/ImportedTwiceA/docs.json
new file mode 100644
index 0000000..929be7d
--- /dev/null
+++ b/tests/purs/docs/output/ImportedTwiceA/docs.json
@@ -0,0 +1 @@
+{"reExports":[],"name":"ImportedTwiceA","comments":null,"declarations":[]} \ No newline at end of file
diff --git a/tests/purs/docs/output/ImportedTwiceA/externs.json b/tests/purs/docs/output/ImportedTwiceA/externs.json
new file mode 100644
index 0000000..2368ac7
--- /dev/null
+++ b/tests/purs/docs/output/ImportedTwiceA/externs.json
@@ -0,0 +1 @@
+{"efVersion":"0.12.5","efModuleName":["ImportedTwiceA"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"src/ImportedTwiceA.purs","end":[8,8]},{"exportSourceImportedFrom":["ImportedTwiceB"],"exportSourceDefinedIn":["ImportedTwiceB"]},{"ValueRef":[{"start":[1,1],"name":"src/ImportedTwiceA.purs","end":[8,8]},{"Ident":"foo"}]}]},{"ModuleRef":[{"start":[2,5],"name":"src/ImportedTwiceA.purs","end":[2,26]},["ImportedTwiceB"]]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["ImportedTwiceB"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[],"efSourceSpan":{"start":[1,1],"name":"src/ImportedTwiceA.purs","end":[8,8]}} \ No newline at end of file
diff --git a/tests/purs/docs/output/ImportedTwiceB/docs.json b/tests/purs/docs/output/ImportedTwiceB/docs.json
new file mode 100644
index 0000000..e53ad04
--- /dev/null
+++ b/tests/purs/docs/output/ImportedTwiceB/docs.json
@@ -0,0 +1 @@
+{"reExports":[],"name":"ImportedTwiceB","comments":null,"declarations":[{"children":[],"comments":null,"title":"foo","info":{"declType":"value","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}},"sourceSpan":{"start":[3,1],"name":"src/ImportedTwiceB.purs","end":[3,11]}}]} \ No newline at end of file
diff --git a/tests/purs/docs/output/ImportedTwiceB/externs.json b/tests/purs/docs/output/ImportedTwiceB/externs.json
new file mode 100644
index 0000000..79f8f7d
--- /dev/null
+++ b/tests/purs/docs/output/ImportedTwiceB/externs.json
@@ -0,0 +1 @@
+{"efVersion":"0.12.5","efModuleName":["ImportedTwiceB"],"efExports":[{"ValueRef":[{"start":[1,1],"name":"src/ImportedTwiceB.purs","end":[4,8]},{"Ident":"foo"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"foo"},"edValueType":{"annotation":[{"start":[3,8],"name":"src/ImportedTwiceB.purs","end":[3,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}}}],"efSourceSpan":{"start":[1,1],"name":"src/ImportedTwiceB.purs","end":[4,8]}} \ No newline at end of file
diff --git a/tests/purs/docs/output/MultiVirtual/docs.json b/tests/purs/docs/output/MultiVirtual/docs.json
new file mode 100644
index 0000000..77204d0
--- /dev/null
+++ b/tests/purs/docs/output/MultiVirtual/docs.json
@@ -0,0 +1 @@
+{"reExports":[],"name":"MultiVirtual","comments":null,"declarations":[]} \ No newline at end of file
diff --git a/tests/purs/docs/output/MultiVirtual/externs.json b/tests/purs/docs/output/MultiVirtual/externs.json
new file mode 100644
index 0000000..a564e79
--- /dev/null
+++ b/tests/purs/docs/output/MultiVirtual/externs.json
@@ -0,0 +1 @@
+{"efVersion":"0.12.5","efModuleName":["MultiVirtual"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"src/MultiVirtual.purs","end":[6,26]},{"exportSourceImportedFrom":["MultiVirtual2"],"exportSourceDefinedIn":["MultiVirtual2"]},{"ValueRef":[{"start":[1,1],"name":"src/MultiVirtual.purs","end":[6,26]},{"Ident":"bar"}]}]},{"ReExportRef":[{"start":[1,1],"name":"src/MultiVirtual.purs","end":[6,26]},{"exportSourceImportedFrom":["MultiVirtual2"],"exportSourceDefinedIn":["MultiVirtual3"]},{"ValueRef":[{"start":[1,1],"name":"src/MultiVirtual.purs","end":[6,26]},{"Ident":"baz"}]}]},{"ReExportRef":[{"start":[1,1],"name":"src/MultiVirtual.purs","end":[6,26]},{"exportSourceImportedFrom":["MultiVirtual1"],"exportSourceDefinedIn":["MultiVirtual1"]},{"ValueRef":[{"start":[1,1],"name":"src/MultiVirtual.purs","end":[6,26]},{"Ident":"foo"}]}]},{"ModuleRef":[{"start":[2,5],"name":"src/MultiVirtual.purs","end":[2,13]},["X"]]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["MultiVirtual1"],"eiImportType":{"Implicit":[]},"eiImportedAs":["X"]},{"eiModule":["MultiVirtual2"],"eiImportType":{"Implicit":[]},"eiImportedAs":["X"]}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[],"efSourceSpan":{"start":[1,1],"name":"src/MultiVirtual.purs","end":[6,26]}} \ No newline at end of file
diff --git a/tests/purs/docs/output/MultiVirtual1/docs.json b/tests/purs/docs/output/MultiVirtual1/docs.json
new file mode 100644
index 0000000..654b27c
--- /dev/null
+++ b/tests/purs/docs/output/MultiVirtual1/docs.json
@@ -0,0 +1 @@
+{"reExports":[],"name":"MultiVirtual1","comments":null,"declarations":[{"children":[],"comments":null,"title":"foo","info":{"declType":"value","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}},"sourceSpan":{"start":[3,1],"name":"src/MultiVirtual1.purs","end":[3,11]}}]} \ No newline at end of file
diff --git a/tests/purs/docs/output/MultiVirtual1/externs.json b/tests/purs/docs/output/MultiVirtual1/externs.json
new file mode 100644
index 0000000..5dd78f6
--- /dev/null
+++ b/tests/purs/docs/output/MultiVirtual1/externs.json
@@ -0,0 +1 @@
+{"efVersion":"0.12.5","efModuleName":["MultiVirtual1"],"efExports":[{"ValueRef":[{"start":[1,1],"name":"src/MultiVirtual1.purs","end":[4,8]},{"Ident":"foo"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"foo"},"edValueType":{"annotation":[{"start":[3,8],"name":"src/MultiVirtual1.purs","end":[3,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}}}],"efSourceSpan":{"start":[1,1],"name":"src/MultiVirtual1.purs","end":[4,8]}} \ No newline at end of file
diff --git a/tests/purs/docs/output/MultiVirtual2/docs.json b/tests/purs/docs/output/MultiVirtual2/docs.json
new file mode 100644
index 0000000..3061c39
--- /dev/null
+++ b/tests/purs/docs/output/MultiVirtual2/docs.json
@@ -0,0 +1 @@
+{"reExports":[],"name":"MultiVirtual2","comments":null,"declarations":[{"children":[],"comments":null,"title":"bar","info":{"declType":"value","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}},"sourceSpan":{"start":[8,1],"name":"src/MultiVirtual2.purs","end":[8,11]}}]} \ No newline at end of file
diff --git a/tests/purs/docs/output/MultiVirtual2/externs.json b/tests/purs/docs/output/MultiVirtual2/externs.json
new file mode 100644
index 0000000..7e28881
--- /dev/null
+++ b/tests/purs/docs/output/MultiVirtual2/externs.json
@@ -0,0 +1 @@
+{"efVersion":"0.12.5","efModuleName":["MultiVirtual2"],"efExports":[{"ValueRef":[{"start":[1,1],"name":"src/MultiVirtual2.purs","end":[9,8]},{"Ident":"bar"}]},{"ReExportRef":[{"start":[1,1],"name":"src/MultiVirtual2.purs","end":[9,8]},{"exportSourceImportedFrom":["MultiVirtual3"],"exportSourceDefinedIn":["MultiVirtual3"]},{"ValueRef":[{"start":[1,1],"name":"src/MultiVirtual2.purs","end":[9,8]},{"Ident":"baz"}]}]},{"ModuleRef":[{"start":[2,5],"name":"src/MultiVirtual2.purs","end":[2,25]},["MultiVirtual2"]]},{"ModuleRef":[{"start":[3,5],"name":"src/MultiVirtual2.purs","end":[3,25]},["MultiVirtual3"]]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["MultiVirtual3"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"bar"},"edValueType":{"annotation":[{"start":[8,8],"name":"src/MultiVirtual2.purs","end":[8,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}}}],"efSourceSpan":{"start":[1,1],"name":"src/MultiVirtual2.purs","end":[9,8]}} \ No newline at end of file
diff --git a/tests/purs/docs/output/MultiVirtual3/docs.json b/tests/purs/docs/output/MultiVirtual3/docs.json
new file mode 100644
index 0000000..c0804a2
--- /dev/null
+++ b/tests/purs/docs/output/MultiVirtual3/docs.json
@@ -0,0 +1 @@
+{"reExports":[],"name":"MultiVirtual3","comments":null,"declarations":[{"children":[],"comments":null,"title":"baz","info":{"declType":"value","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}},"sourceSpan":{"start":[3,1],"name":"src/MultiVirtual3.purs","end":[3,11]}}]} \ No newline at end of file
diff --git a/tests/purs/docs/output/MultiVirtual3/externs.json b/tests/purs/docs/output/MultiVirtual3/externs.json
new file mode 100644
index 0000000..be3d50f
--- /dev/null
+++ b/tests/purs/docs/output/MultiVirtual3/externs.json
@@ -0,0 +1 @@
+{"efVersion":"0.12.5","efModuleName":["MultiVirtual3"],"efExports":[{"ValueRef":[{"start":[1,1],"name":"src/MultiVirtual3.purs","end":[4,8]},{"Ident":"baz"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"baz"},"edValueType":{"annotation":[{"start":[3,8],"name":"src/MultiVirtual3.purs","end":[3,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}}}],"efSourceSpan":{"start":[1,1],"name":"src/MultiVirtual3.purs","end":[4,8]}} \ No newline at end of file
diff --git a/tests/purs/docs/output/NewOperators/docs.json b/tests/purs/docs/output/NewOperators/docs.json
new file mode 100644
index 0000000..1da657c
--- /dev/null
+++ b/tests/purs/docs/output/NewOperators/docs.json
@@ -0,0 +1 @@
+{"reExports":[],"name":"NewOperators","comments":null,"declarations":[]} \ No newline at end of file
diff --git a/tests/purs/docs/output/NewOperators/externs.json b/tests/purs/docs/output/NewOperators/externs.json
new file mode 100644
index 0000000..7e1082f
--- /dev/null
+++ b/tests/purs/docs/output/NewOperators/externs.json
@@ -0,0 +1 @@
+{"efVersion":"0.12.5","efModuleName":["NewOperators"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"src/NewOperators.purs","end":[5,21]},{"exportSourceImportedFrom":["NewOperators2"],"exportSourceDefinedIn":["NewOperators2"]},{"ValueRef":[{"start":[1,1],"name":"src/NewOperators.purs","end":[5,21]},{"Ident":"_compose"}]}]},{"ReExportRef":[{"start":[1,1],"name":"src/NewOperators.purs","end":[5,21]},{"exportSourceImportedFrom":["NewOperators2"],"exportSourceDefinedIn":["NewOperators2"]},{"ValueOpRef":[{"start":[1,1],"name":"src/NewOperators.purs","end":[5,21]},">>>"]}]},{"ModuleRef":[{"start":[2,5],"name":"src/NewOperators.purs","end":[2,25]},["NewOperators2"]]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["NewOperators2"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[],"efSourceSpan":{"start":[1,1],"name":"src/NewOperators.purs","end":[5,21]}} \ No newline at end of file
diff --git a/tests/purs/docs/output/NewOperators2/docs.json b/tests/purs/docs/output/NewOperators2/docs.json
new file mode 100644
index 0000000..9451659
--- /dev/null
+++ b/tests/purs/docs/output/NewOperators2/docs.json
@@ -0,0 +1 @@
+{"reExports":[],"name":"NewOperators2","comments":null,"declarations":[{"children":[],"comments":null,"title":"(>>>)","info":{"declType":"alias","alias":[["NewOperators2"],{"Right":{"Left":{"Ident":"_compose"}}}],"fixity":{"associativity":"infixl","precedence":8}},"sourceSpan":{"start":[3,1],"name":"src/NewOperators2.purs","end":[3,25]}},{"children":[],"comments":null,"title":"_compose","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}}]}]},null]},null]},null]}},"sourceSpan":{"start":[5,1],"name":"src/NewOperators2.purs","end":[5,59]}}]} \ No newline at end of file
diff --git a/tests/purs/docs/output/NewOperators2/externs.json b/tests/purs/docs/output/NewOperators2/externs.json
new file mode 100644
index 0000000..35dd750
--- /dev/null
+++ b/tests/purs/docs/output/NewOperators2/externs.json
@@ -0,0 +1 @@
+{"efVersion":"0.12.5","efModuleName":["NewOperators2"],"efExports":[{"ValueOpRef":[{"start":[1,1],"name":"src/NewOperators2.purs","end":[6,25]},">>>"]},{"ValueRef":[{"start":[1,1],"name":"src/NewOperators2.purs","end":[6,25]},{"Ident":"_compose"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[{"efAssociativity":"infixl","efPrecedence":8,"efOperator":">>>","efAlias":[["NewOperators2"],{"Left":{"Ident":"_compose"}}]}],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"_compose"},"edValueType":{"annotation":[{"start":[5,13],"name":"src/NewOperators2.purs","end":[5,59]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[5,20],"name":"src/NewOperators2.purs","end":[5,59]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[5,20],"name":"src/NewOperators2.purs","end":[5,59]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[5,27],"name":"src/NewOperators2.purs","end":[5,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,27],"name":"src/NewOperators2.purs","end":[5,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,36],"name":"src/NewOperators2.purs","end":[5,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[5,28],"name":"src/NewOperators2.purs","end":[5,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,28],"name":"src/NewOperators2.purs","end":[5,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,30],"name":"src/NewOperators2.purs","end":[5,32]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[5,28],"name":"src/NewOperators2.purs","end":[5,29]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[5,33],"name":"src/NewOperators2.purs","end":[5,34]},[]],"tag":"TypeVar","contents":"c"}]}]},{"annotation":[{"start":[5,39],"name":"src/NewOperators2.purs","end":[5,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,39],"name":"src/NewOperators2.purs","end":[5,59]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,48],"name":"src/NewOperators2.purs","end":[5,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[5,40],"name":"src/NewOperators2.purs","end":[5,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,40],"name":"src/NewOperators2.purs","end":[5,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,42],"name":"src/NewOperators2.purs","end":[5,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[5,40],"name":"src/NewOperators2.purs","end":[5,41]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[5,45],"name":"src/NewOperators2.purs","end":[5,46]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[5,52],"name":"src/NewOperators2.purs","end":[5,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,52],"name":"src/NewOperators2.purs","end":[5,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,54],"name":"src/NewOperators2.purs","end":[5,56]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[5,52],"name":"src/NewOperators2.purs","end":[5,53]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[5,57],"name":"src/NewOperators2.purs","end":[5,58]},[]],"tag":"TypeVar","contents":"c"}]}]}]},0]},1]},2]}}}],"efSourceSpan":{"start":[1,1],"name":"src/NewOperators2.purs","end":[6,25]}} \ No newline at end of file
diff --git a/tests/purs/docs/output/NotAllCtors/docs.json b/tests/purs/docs/output/NotAllCtors/docs.json
new file mode 100644
index 0000000..ed4172d
--- /dev/null
+++ b/tests/purs/docs/output/NotAllCtors/docs.json
@@ -0,0 +1 @@
+{"reExports":[],"name":"NotAllCtors","comments":null,"declarations":[]} \ No newline at end of file
diff --git a/tests/purs/docs/output/NotAllCtors/externs.json b/tests/purs/docs/output/NotAllCtors/externs.json
new file mode 100644
index 0000000..70029b6
--- /dev/null
+++ b/tests/purs/docs/output/NotAllCtors/externs.json
@@ -0,0 +1 @@
+{"efVersion":"0.12.5","efModuleName":["NotAllCtors"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"src/NotAllCtors.purs","end":[5,32]},{"exportSourceImportedFrom":["Prelude"],"exportSourceDefinedIn":["Prelude"]},{"TypeRef":[{"start":[1,1],"name":"src/NotAllCtors.purs","end":[5,32]},"Boolean2",["True"]]}]},{"ModuleRef":[{"start":[2,5],"name":"src/NotAllCtors.purs","end":[2,19]},["Prelude"]]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[5,17],"name":"src/NotAllCtors.purs","end":[5,31]},"Boolean2",["True"]]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[],"efSourceSpan":{"start":[1,1],"name":"src/NotAllCtors.purs","end":[5,32]}} \ No newline at end of file
diff --git a/tests/purs/docs/output/Prelude/docs.json b/tests/purs/docs/output/Prelude/docs.json
new file mode 100644
index 0000000..257953f
--- /dev/null
+++ b/tests/purs/docs/output/Prelude/docs.json
@@ -0,0 +1 @@
+{"reExports":[],"name":"Prelude","comments":null,"declarations":[{"children":[{"comments":null,"title":"Unit","info":{"arguments":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[],"tag":"REmpty"}]}],"declType":"dataConstructor"},"sourceSpan":null}],"comments":null,"title":"Unit","info":{"declType":"data","dataDeclType":"newtype","typeArguments":[]},"sourceSpan":{"start":[3,1],"name":"bower_components/purescript-prelude/src/Prelude.purs","end":[3,23]}},{"children":[],"comments":null,"title":"unit","info":{"declType":"value","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Prelude"],"Unit"]}},"sourceSpan":{"start":[5,1],"name":"bower_components/purescript-prelude/src/Prelude.purs","end":[5,13]}},{"children":[{"comments":null,"title":"True","info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"False","info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":null}],"comments":null,"title":"Boolean2","info":{"declType":"data","dataDeclType":"data","typeArguments":[]},"sourceSpan":{"start":[8,1],"name":"bower_components/purescript-prelude/src/Prelude.purs","end":[8,29]}}]} \ No newline at end of file
diff --git a/tests/purs/docs/output/Prelude/externs.json b/tests/purs/docs/output/Prelude/externs.json
new file mode 100644
index 0000000..d17b585
--- /dev/null
+++ b/tests/purs/docs/output/Prelude/externs.json
@@ -0,0 +1 @@
+{"efVersion":"0.12.5","efModuleName":["Prelude"],"efExports":[{"TypeRef":[{"start":[1,1],"name":"bower_components/purescript-prelude/src/Prelude.purs","end":[8,29]},"Unit",["Unit"]]},{"ValueRef":[{"start":[1,1],"name":"bower_components/purescript-prelude/src/Prelude.purs","end":[8,29]},{"Ident":"unit"}]},{"TypeRef":[{"start":[1,1],"name":"bower_components/purescript-prelude/src/Prelude.purs","end":[8,29]},"Boolean2",["True","False"]]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Unit","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},"edTypeDeclarationKind":{"DataType":{"args":[],"ctors":[["Unit",[{"annotation":[{"start":[3,21],"name":"bower_components/purescript-prelude/src/Prelude.purs","end":[3,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[3,21],"name":"bower_components/purescript-prelude/src/Prelude.purs","end":[3,22]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[3,22],"name":"bower_components/purescript-prelude/src/Prelude.purs","end":[3,23]},[]],"tag":"REmpty"}]}]]]}}}},{"EDDataConstructor":{"edDataCtorName":"Unit","edDataCtorOrigin":"newtype","edDataCtorTypeCtor":"Unit","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[3,21],"name":"bower_components/purescript-prelude/src/Prelude.purs","end":[3,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[3,21],"name":"bower_components/purescript-prelude/src/Prelude.purs","end":[3,22]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[3,22],"name":"bower_components/purescript-prelude/src/Prelude.purs","end":[3,23]},[]],"tag":"REmpty"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prelude"],"Unit"]}]},"edDataCtorFields":[{"Ident":"value0"}]}},{"EDValue":{"edValueName":{"Ident":"unit"},"edValueType":{"annotation":[{"start":[5,9],"name":"bower_components/purescript-prelude/src/Prelude.purs","end":[5,13]},[]],"tag":"TypeConstructor","contents":[["Prelude"],"Unit"]}}},{"EDType":{"edTypeName":"Boolean2","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},"edTypeDeclarationKind":{"DataType":{"args":[],"ctors":[["True",[]],["False",[]]]}}}},{"EDDataConstructor":{"edDataCtorName":"True","edDataCtorOrigin":"data","edDataCtorTypeCtor":"Boolean2","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prelude"],"Boolean2"]},"edDataCtorFields":[]}},{"EDDataConstructor":{"edDataCtorName":"False","edDataCtorOrigin":"data","edDataCtorTypeCtor":"Boolean2","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prelude"],"Boolean2"]},"edDataCtorFields":[]}}],"efSourceSpan":{"start":[1,1],"name":"bower_components/purescript-prelude/src/Prelude.purs","end":[8,29]}} \ No newline at end of file
diff --git a/tests/purs/docs/output/PrimSubmodules/docs.json b/tests/purs/docs/output/PrimSubmodules/docs.json
new file mode 100644
index 0000000..f47f937
--- /dev/null
+++ b/tests/purs/docs/output/PrimSubmodules/docs.json
@@ -0,0 +1 @@
+{"reExports":[],"name":"PrimSubmodules","comments":null,"declarations":[{"children":[{"comments":null,"title":"Lol","info":{"arguments":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}],"declType":"dataConstructor"},"sourceSpan":null}],"comments":null,"title":"Lol","info":{"declType":"data","dataDeclType":"data","typeArguments":[["a",{"annotation":[],"tag":"NamedKind","contents":[["Prim","Ordering"],"Ordering"]}]]},"sourceSpan":{"start":[5,1],"name":"src/PrimSubmodules.purs","end":[5,37]}},{"children":[],"comments":null,"title":"x","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["PrimSubmodules"],"Lol"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","Ordering"],"LT"]}]}},"sourceSpan":{"start":[7,1],"name":"src/PrimSubmodules.purs","end":[7,14]}},{"children":[],"comments":null,"title":"y","info":{"declType":"value","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["PrimSubmodules"],"Lol"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","Ordering"],"EQ"]}]}},"sourceSpan":{"start":[10,1],"name":"src/PrimSubmodules.purs","end":[10,14]}}]} \ No newline at end of file
diff --git a/tests/purs/docs/output/PrimSubmodules/externs.json b/tests/purs/docs/output/PrimSubmodules/externs.json
new file mode 100644
index 0000000..52d7e7a
--- /dev/null
+++ b/tests/purs/docs/output/PrimSubmodules/externs.json
@@ -0,0 +1 @@
+{"efVersion":"0.12.5","efModuleName":["PrimSubmodules"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"src/PrimSubmodules.purs","end":[11,10]},{"exportSourceImportedFrom":["Prim","Ordering"],"exportSourceDefinedIn":["Prim","Ordering"]},{"TypeRef":[{"start":[1,1],"name":"src/PrimSubmodules.purs","end":[11,10]},"EQ",[]]}]},{"ReExportRef":[{"start":[1,1],"name":"src/PrimSubmodules.purs","end":[11,10]},{"exportSourceImportedFrom":["Prim","Ordering"],"exportSourceDefinedIn":["Prim","Ordering"]},{"TypeRef":[{"start":[1,1],"name":"src/PrimSubmodules.purs","end":[11,10]},"GT",[]]}]},{"ReExportRef":[{"start":[1,1],"name":"src/PrimSubmodules.purs","end":[11,10]},{"exportSourceImportedFrom":["Prim","Ordering"],"exportSourceDefinedIn":["Prim","Ordering"]},{"TypeRef":[{"start":[1,1],"name":"src/PrimSubmodules.purs","end":[11,10]},"LT",[]]}]},{"ReExportRef":[{"start":[1,1],"name":"src/PrimSubmodules.purs","end":[11,10]},{"exportSourceImportedFrom":["Prim","Ordering"],"exportSourceDefinedIn":["Prim","Ordering"]},{"KindRef":[{"start":[1,1],"name":"src/PrimSubmodules.purs","end":[11,10]},"Ordering"]}]},{"TypeRef":[{"start":[1,1],"name":"src/PrimSubmodules.purs","end":[11,10]},"Lol",["Lol"]]},{"ValueRef":[{"start":[1,1],"name":"src/PrimSubmodules.purs","end":[11,10]},{"Ident":"x"}]},{"ValueRef":[{"start":[1,1],"name":"src/PrimSubmodules.purs","end":[11,10]},{"Ident":"y"}]},{"ModuleRef":[{"start":[1,39],"name":"src/PrimSubmodules.purs","end":[1,47]},["O"]]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prim","Ordering"],"eiImportType":{"Explicit":[{"KindRef":[{"start":[3,23],"name":"src/PrimSubmodules.purs","end":[3,36]},"Ordering"]},{"TypeRef":[{"start":[3,38],"name":"src/PrimSubmodules.purs","end":[3,40]},"LT",[]]},{"TypeRef":[{"start":[3,42],"name":"src/PrimSubmodules.purs","end":[3,44]},"EQ",[]]},{"TypeRef":[{"start":[3,46],"name":"src/PrimSubmodules.purs","end":[3,48]},"GT",[]]}]},"eiImportedAs":["O"]}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Lol","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[5,16],"name":"src/PrimSubmodules.purs","end":[5,26]},[]],"tag":"NamedKind","contents":[["Prim","Ordering"],"Ordering"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":{"DataType":{"args":[["a",{"annotation":[{"start":[5,16],"name":"src/PrimSubmodules.purs","end":[5,26]},[]],"tag":"NamedKind","contents":[["Prim","Ordering"],"Ordering"]}]],"ctors":[["Lol",[{"annotation":[{"start":[5,34],"name":"src/PrimSubmodules.purs","end":[5,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]]]}}}},{"EDDataConstructor":{"edDataCtorName":"Lol","edDataCtorOrigin":"data","edDataCtorTypeCtor":"Lol","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[5,34],"name":"src/PrimSubmodules.purs","end":[5,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["PrimSubmodules"],"Lol"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}]}]},null]},"edDataCtorFields":[{"Ident":"value0"}]}},{"EDValue":{"edValueName":{"Ident":"x"},"edValueType":{"annotation":[{"start":[7,6],"name":"src/PrimSubmodules.purs","end":[7,14]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[7,6],"name":"src/PrimSubmodules.purs","end":[7,9]},[]],"tag":"TypeConstructor","contents":[["PrimSubmodules"],"Lol"]},{"annotation":[{"start":[7,10],"name":"src/PrimSubmodules.purs","end":[7,14]},[]],"tag":"TypeConstructor","contents":[["Prim","Ordering"],"LT"]}]}}},{"EDValue":{"edValueName":{"Ident":"y"},"edValueType":{"annotation":[{"start":[10,6],"name":"src/PrimSubmodules.purs","end":[10,14]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[10,6],"name":"src/PrimSubmodules.purs","end":[10,9]},[]],"tag":"TypeConstructor","contents":[["PrimSubmodules"],"Lol"]},{"annotation":[{"start":[10,10],"name":"src/PrimSubmodules.purs","end":[10,14]},[]],"tag":"TypeConstructor","contents":[["Prim","Ordering"],"EQ"]}]}}}],"efSourceSpan":{"start":[1,1],"name":"src/PrimSubmodules.purs","end":[11,10]}} \ No newline at end of file
diff --git a/tests/purs/docs/output/ReExportedTypeClass/docs.json b/tests/purs/docs/output/ReExportedTypeClass/docs.json
new file mode 100644
index 0000000..d84912e
--- /dev/null
+++ b/tests/purs/docs/output/ReExportedTypeClass/docs.json
@@ -0,0 +1 @@
+{"reExports":[],"name":"ReExportedTypeClass","comments":null,"declarations":[]} \ No newline at end of file
diff --git a/tests/purs/docs/output/ReExportedTypeClass/externs.json b/tests/purs/docs/output/ReExportedTypeClass/externs.json
new file mode 100644
index 0000000..897b6ca
--- /dev/null
+++ b/tests/purs/docs/output/ReExportedTypeClass/externs.json
@@ -0,0 +1 @@
+{"efVersion":"0.12.5","efModuleName":["ReExportedTypeClass"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"src/ReExportedTypeClass.purs","end":[5,21]},{"exportSourceImportedFrom":["SomeTypeClass"],"exportSourceDefinedIn":["SomeTypeClass"]},{"TypeClassRef":[{"start":[1,1],"name":"src/ReExportedTypeClass.purs","end":[5,21]},"SomeClass"]}]},{"ReExportRef":[{"start":[1,1],"name":"src/ReExportedTypeClass.purs","end":[5,21]},{"exportSourceImportedFrom":["SomeTypeClass"],"exportSourceDefinedIn":["SomeTypeClass"]},{"ValueRef":[{"start":[1,1],"name":"src/ReExportedTypeClass.purs","end":[5,21]},{"Ident":"member"}]}]},{"ModuleRef":[{"start":[2,5],"name":"src/ReExportedTypeClass.purs","end":[2,25]},["SomeTypeClass"]]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["SomeTypeClass"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[],"efSourceSpan":{"start":[1,1],"name":"src/ReExportedTypeClass.purs","end":[5,21]}} \ No newline at end of file
diff --git a/tests/purs/docs/output/SolitaryTypeClassMember/docs.json b/tests/purs/docs/output/SolitaryTypeClassMember/docs.json
new file mode 100644
index 0000000..984f188
--- /dev/null
+++ b/tests/purs/docs/output/SolitaryTypeClassMember/docs.json
@@ -0,0 +1 @@
+{"reExports":[],"name":"SolitaryTypeClassMember","comments":null,"declarations":[]} \ No newline at end of file
diff --git a/tests/purs/docs/output/SolitaryTypeClassMember/externs.json b/tests/purs/docs/output/SolitaryTypeClassMember/externs.json
new file mode 100644
index 0000000..218a02b
--- /dev/null
+++ b/tests/purs/docs/output/SolitaryTypeClassMember/externs.json
@@ -0,0 +1 @@
+{"efVersion":"0.12.5","efModuleName":["SolitaryTypeClassMember"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"src/SolitaryTypeClassMember.purs","end":[5,30]},{"exportSourceImportedFrom":["SomeTypeClass"],"exportSourceDefinedIn":["SomeTypeClass"]},{"ValueRef":[{"start":[1,1],"name":"src/SolitaryTypeClassMember.purs","end":[5,30]},{"Ident":"member"}]}]},{"ModuleRef":[{"start":[2,5],"name":"src/SolitaryTypeClassMember.purs","end":[2,25]},["SomeTypeClass"]]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["SomeTypeClass"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[5,23],"name":"src/SolitaryTypeClassMember.purs","end":[5,29]},{"Ident":"member"}]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[],"efSourceSpan":{"start":[1,1],"name":"src/SolitaryTypeClassMember.purs","end":[5,30]}} \ No newline at end of file
diff --git a/tests/purs/docs/output/SomeTypeClass/docs.json b/tests/purs/docs/output/SomeTypeClass/docs.json
new file mode 100644
index 0000000..5d7df2b
--- /dev/null
+++ b/tests/purs/docs/output/SomeTypeClass/docs.json
@@ -0,0 +1 @@
+{"reExports":[],"name":"SomeTypeClass","comments":null,"declarations":[{"children":[{"comments":null,"title":"member","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeVar","contents":"a"}},"sourceSpan":{"start":[5,3],"name":"src/SomeTypeClass.purs","end":[5,14]}}],"comments":null,"title":"SomeClass","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[4,1],"name":"src/SomeTypeClass.purs","end":[5,14]}}]} \ No newline at end of file
diff --git a/tests/purs/docs/output/SomeTypeClass/externs.json b/tests/purs/docs/output/SomeTypeClass/externs.json
new file mode 100644
index 0000000..6f35ee1
--- /dev/null
+++ b/tests/purs/docs/output/SomeTypeClass/externs.json
@@ -0,0 +1 @@
+{"efVersion":"0.12.5","efModuleName":["SomeTypeClass"],"efExports":[{"ValueRef":[{"start":[2,1],"name":"src/SomeTypeClass.purs","end":[5,14]},{"Ident":"member"}]},{"TypeClassRef":[{"start":[2,1],"name":"src/SomeTypeClass.purs","end":[5,14]},"SomeClass"]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"member"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["SomeTypeClass"],"SomeClass"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[5,13],"name":"src/SomeTypeClass.purs","end":[5,14]},[]],"tag":"TypeVar","contents":"a"}]},0]}}},{"EDType":{"edTypeName":"SomeClass","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"SomeClass","edTypeSynonymArguments":[["a",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["member",{"annotation":[{"start":[5,13],"name":"src/SomeTypeClass.purs","end":[5,14]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}}},{"EDClass":{"edClassName":"SomeClass","edClassTypeArguments":[["a",null]],"edClassMembers":[[{"Ident":"member"},{"annotation":[{"start":[5,13],"name":"src/SomeTypeClass.purs","end":[5,14]},[]],"tag":"TypeVar","contents":"a"}]],"edClassConstraints":[],"edFunctionalDependencies":[]}}],"efSourceSpan":{"start":[2,1],"name":"src/SomeTypeClass.purs","end":[5,14]}} \ No newline at end of file
diff --git a/tests/purs/docs/output/Transitive1/docs.json b/tests/purs/docs/output/Transitive1/docs.json
new file mode 100644
index 0000000..2fd58f4
--- /dev/null
+++ b/tests/purs/docs/output/Transitive1/docs.json
@@ -0,0 +1 @@
+{"reExports":[],"name":"Transitive1","comments":null,"declarations":[]} \ No newline at end of file
diff --git a/tests/purs/docs/output/Transitive1/externs.json b/tests/purs/docs/output/Transitive1/externs.json
new file mode 100644
index 0000000..352caaf
--- /dev/null
+++ b/tests/purs/docs/output/Transitive1/externs.json
@@ -0,0 +1 @@
+{"efVersion":"0.12.5","efModuleName":["Transitive1"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"src/Transitive1.purs","end":[5,19]},{"exportSourceImportedFrom":["Transitive2"],"exportSourceDefinedIn":["Transitive3"]},{"ValueRef":[{"start":[1,1],"name":"src/Transitive1.purs","end":[5,19]},{"Ident":"transitive3"}]}]},{"ModuleRef":[{"start":[2,5],"name":"src/Transitive1.purs","end":[2,23]},["Transitive2"]]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Transitive2"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[],"efSourceSpan":{"start":[1,1],"name":"src/Transitive1.purs","end":[5,19]}} \ No newline at end of file
diff --git a/tests/purs/docs/output/Transitive2/docs.json b/tests/purs/docs/output/Transitive2/docs.json
new file mode 100644
index 0000000..471886f
--- /dev/null
+++ b/tests/purs/docs/output/Transitive2/docs.json
@@ -0,0 +1 @@
+{"reExports":[],"name":"Transitive2","comments":null,"declarations":[]} \ No newline at end of file
diff --git a/tests/purs/docs/output/Transitive2/externs.json b/tests/purs/docs/output/Transitive2/externs.json
new file mode 100644
index 0000000..beae7fb
--- /dev/null
+++ b/tests/purs/docs/output/Transitive2/externs.json
@@ -0,0 +1 @@
+{"efVersion":"0.12.5","efModuleName":["Transitive2"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"src/Transitive2.purs","end":[5,19]},{"exportSourceImportedFrom":["Transitive3"],"exportSourceDefinedIn":["Transitive3"]},{"ValueRef":[{"start":[1,1],"name":"src/Transitive2.purs","end":[5,19]},{"Ident":"transitive3"}]}]},{"ModuleRef":[{"start":[2,5],"name":"src/Transitive2.purs","end":[2,23]},["Transitive3"]]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Transitive3"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[],"efSourceSpan":{"start":[1,1],"name":"src/Transitive2.purs","end":[5,19]}} \ No newline at end of file
diff --git a/tests/purs/docs/output/Transitive3/docs.json b/tests/purs/docs/output/Transitive3/docs.json
new file mode 100644
index 0000000..c3dcbc1
--- /dev/null
+++ b/tests/purs/docs/output/Transitive3/docs.json
@@ -0,0 +1 @@
+{"reExports":[],"name":"Transitive3","comments":null,"declarations":[{"children":[],"comments":null,"title":"transitive3","info":{"declType":"value","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}},"sourceSpan":{"start":[3,1],"name":"src/Transitive3.purs","end":[3,19]}}]} \ No newline at end of file
diff --git a/tests/purs/docs/output/Transitive3/externs.json b/tests/purs/docs/output/Transitive3/externs.json
new file mode 100644
index 0000000..ac68354
--- /dev/null
+++ b/tests/purs/docs/output/Transitive3/externs.json
@@ -0,0 +1 @@
+{"efVersion":"0.12.5","efModuleName":["Transitive3"],"efExports":[{"ValueRef":[{"start":[1,1],"name":"src/Transitive3.purs","end":[4,16]},{"Ident":"transitive3"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"transitive3"},"edValueType":{"annotation":[{"start":[3,16],"name":"src/Transitive3.purs","end":[3,19]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}}}],"efSourceSpan":{"start":[1,1],"name":"src/Transitive3.purs","end":[4,16]}} \ No newline at end of file
diff --git a/tests/purs/docs/output/TypeClassWithFunDeps/docs.json b/tests/purs/docs/output/TypeClassWithFunDeps/docs.json
new file mode 100644
index 0000000..1d85318
--- /dev/null
+++ b/tests/purs/docs/output/TypeClassWithFunDeps/docs.json
@@ -0,0 +1 @@
+{"reExports":[],"name":"TypeClassWithFunDeps","comments":null,"declarations":[{"children":[{"comments":null,"title":"aMember","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}},"sourceSpan":{"start":[5,3],"name":"src/TypeClassWithFunDeps.purs","end":[5,20]}}],"comments":null,"title":"TypeClassWithFunDeps","info":{"fundeps":[[["a","b"],["c"]],[["c"],["d","e"]]],"arguments":[["a",null],["b",null],["c",null],["d",null],["e",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[4,1],"name":"src/TypeClassWithFunDeps.purs","end":[5,20]}}]} \ No newline at end of file
diff --git a/tests/purs/docs/output/TypeClassWithFunDeps/externs.json b/tests/purs/docs/output/TypeClassWithFunDeps/externs.json
new file mode 100644
index 0000000..05b3928
--- /dev/null
+++ b/tests/purs/docs/output/TypeClassWithFunDeps/externs.json
@@ -0,0 +1 @@
+{"efVersion":"0.12.5","efModuleName":["TypeClassWithFunDeps"],"efExports":[{"ValueRef":[{"start":[2,1],"name":"src/TypeClassWithFunDeps.purs","end":[5,20]},{"Ident":"aMember"}]},{"TypeClassRef":[{"start":[2,1],"name":"src/TypeClassWithFunDeps.purs","end":[5,20]},"TypeClassWithFunDeps"]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"aMember"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["TypeClassWithFunDeps"],"TypeClassWithFunDeps"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"b"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"c"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"d"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"e"}],"constraintData":null},{"annotation":[{"start":[5,14],"name":"src/TypeClassWithFunDeps.purs","end":[5,20]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,14],"name":"src/TypeClassWithFunDeps.purs","end":[5,20]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,16],"name":"src/TypeClassWithFunDeps.purs","end":[5,18]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[5,14],"name":"src/TypeClassWithFunDeps.purs","end":[5,15]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[5,19],"name":"src/TypeClassWithFunDeps.purs","end":[5,20]},[]],"tag":"TypeVar","contents":"b"}]}]},0]},1]},2]},3]},4]}}},{"EDType":{"edTypeName":"TypeClassWithFunDeps","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[5,16],"name":"src/TypeClassWithFunDeps.purs","end":[5,18]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[5,16],"name":"src/TypeClassWithFunDeps.purs","end":[5,18]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]}]}]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"TypeClassWithFunDeps","edTypeSynonymArguments":[["a",null],["b",null],["c",null],["d",null],["e",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["aMember",{"annotation":[{"start":[5,14],"name":"src/TypeClassWithFunDeps.purs","end":[5,20]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,14],"name":"src/TypeClassWithFunDeps.purs","end":[5,20]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,16],"name":"src/TypeClassWithFunDeps.purs","end":[5,18]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[5,14],"name":"src/TypeClassWithFunDeps.purs","end":[5,15]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[5,19],"name":"src/TypeClassWithFunDeps.purs","end":[5,20]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}}},{"EDClass":{"edClassName":"TypeClassWithFunDeps","edClassTypeArguments":[["a",null],["b",null],["c",null],["d",null],["e",null]],"edClassMembers":[[{"Ident":"aMember"},{"annotation":[{"start":[5,14],"name":"src/TypeClassWithFunDeps.purs","end":[5,20]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,14],"name":"src/TypeClassWithFunDeps.purs","end":[5,20]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[5,16],"name":"src/TypeClassWithFunDeps.purs","end":[5,18]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[5,14],"name":"src/TypeClassWithFunDeps.purs","end":[5,15]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[5,19],"name":"src/TypeClassWithFunDeps.purs","end":[5,20]},[]],"tag":"TypeVar","contents":"b"}]}]],"edClassConstraints":[],"edFunctionalDependencies":[{"determiners":[0,1],"determined":[2]},{"determiners":[2],"determined":[3,4]}]}}],"efSourceSpan":{"start":[2,1],"name":"src/TypeClassWithFunDeps.purs","end":[5,20]}} \ No newline at end of file
diff --git a/tests/purs/docs/output/TypeClassWithoutMembers/docs.json b/tests/purs/docs/output/TypeClassWithoutMembers/docs.json
new file mode 100644
index 0000000..0e81dcc
--- /dev/null
+++ b/tests/purs/docs/output/TypeClassWithoutMembers/docs.json
@@ -0,0 +1 @@
+{"reExports":[],"name":"TypeClassWithoutMembers","comments":null,"declarations":[]} \ No newline at end of file
diff --git a/tests/purs/docs/output/TypeClassWithoutMembers/externs.json b/tests/purs/docs/output/TypeClassWithoutMembers/externs.json
new file mode 100644
index 0000000..2a6fb21
--- /dev/null
+++ b/tests/purs/docs/output/TypeClassWithoutMembers/externs.json
@@ -0,0 +1 @@
+{"efVersion":"0.12.5","efModuleName":["TypeClassWithoutMembers"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"src/TypeClassWithoutMembers.purs","end":[5,43]},{"exportSourceImportedFrom":["TypeClassWithoutMembersIntermediate"],"exportSourceDefinedIn":["SomeTypeClass"]},{"TypeClassRef":[{"start":[1,1],"name":"src/TypeClassWithoutMembers.purs","end":[5,43]},"SomeClass"]}]},{"ModuleRef":[{"start":[2,5],"name":"src/TypeClassWithoutMembers.purs","end":[2,47]},["TypeClassWithoutMembersIntermediate"]]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["TypeClassWithoutMembersIntermediate"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[],"efSourceSpan":{"start":[1,1],"name":"src/TypeClassWithoutMembers.purs","end":[5,43]}} \ No newline at end of file
diff --git a/tests/purs/docs/output/TypeClassWithoutMembersIntermediate/docs.json b/tests/purs/docs/output/TypeClassWithoutMembersIntermediate/docs.json
new file mode 100644
index 0000000..5af153c
--- /dev/null
+++ b/tests/purs/docs/output/TypeClassWithoutMembersIntermediate/docs.json
@@ -0,0 +1 @@
+{"reExports":[],"name":"TypeClassWithoutMembersIntermediate","comments":null,"declarations":[]} \ No newline at end of file
diff --git a/tests/purs/docs/output/TypeClassWithoutMembersIntermediate/externs.json b/tests/purs/docs/output/TypeClassWithoutMembersIntermediate/externs.json
new file mode 100644
index 0000000..11523fb
--- /dev/null
+++ b/tests/purs/docs/output/TypeClassWithoutMembersIntermediate/externs.json
@@ -0,0 +1 @@
+{"efVersion":"0.12.5","efModuleName":["TypeClassWithoutMembersIntermediate"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"src/TypeClassWithoutMembersIntermediate.purs","end":[5,39]},{"exportSourceImportedFrom":["SomeTypeClass"],"exportSourceDefinedIn":["SomeTypeClass"]},{"TypeClassRef":[{"start":[1,1],"name":"src/TypeClassWithoutMembersIntermediate.purs","end":[5,39]},"SomeClass"]}]},{"ModuleRef":[{"start":[2,5],"name":"src/TypeClassWithoutMembersIntermediate.purs","end":[2,25]},["SomeTypeClass"]]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["SomeTypeClass"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[5,23],"name":"src/TypeClassWithoutMembersIntermediate.purs","end":[5,38]},"SomeClass"]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[],"efSourceSpan":{"start":[1,1],"name":"src/TypeClassWithoutMembersIntermediate.purs","end":[5,39]}} \ No newline at end of file
diff --git a/tests/purs/docs/output/TypeLevelString/docs.json b/tests/purs/docs/output/TypeLevelString/docs.json
new file mode 100644
index 0000000..e074bc2
--- /dev/null
+++ b/tests/purs/docs/output/TypeLevelString/docs.json
@@ -0,0 +1 @@
+{"reExports":[],"name":"TypeLevelString","comments":null,"declarations":[{"children":[{"comments":null,"title":"fooBar","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Prim","TypeError"],"Fail"],"constraintArgs":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","TypeError"],"Text"]},{"annotation":[],"tag":"TypeLevelString","contents":"oops"}]}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["TypeLevelString"],"Bar"]},{"annotation":[],"tag":"TypeConstructor","contents":[["TypeLevelString"],"Foo"]}]}},"sourceSpan":{"start":[9,1],"name":"src/TypeLevelString.purs","end":[9,49]}}],"comments":null,"title":"Foo","info":{"declType":"data","dataDeclType":"data","typeArguments":[]},"sourceSpan":{"start":[5,1],"name":"src/TypeLevelString.purs","end":[5,9]}},{"children":[{"comments":null,"title":"fooBar","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Prim","TypeError"],"Fail"],"constraintArgs":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim","TypeError"],"Text"]},{"annotation":[],"tag":"TypeLevelString","contents":"oops"}]}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["TypeLevelString"],"Bar"]},{"annotation":[],"tag":"TypeConstructor","contents":[["TypeLevelString"],"Foo"]}]}},"sourceSpan":{"start":[9,1],"name":"src/TypeLevelString.purs","end":[9,49]}}],"comments":null,"title":"Bar","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[7,1],"name":"src/TypeLevelString.purs","end":[7,12]}}]} \ No newline at end of file
diff --git a/tests/purs/docs/output/TypeLevelString/externs.json b/tests/purs/docs/output/TypeLevelString/externs.json
new file mode 100644
index 0000000..8dd78c3
--- /dev/null
+++ b/tests/purs/docs/output/TypeLevelString/externs.json
@@ -0,0 +1 @@
+{"efVersion":"0.12.5","efModuleName":["TypeLevelString"],"efExports":[{"TypeRef":[{"start":[1,1],"name":"src/TypeLevelString.purs","end":[9,49]},"Foo",[]]},{"TypeClassRef":[{"start":[1,1],"name":"src/TypeLevelString.purs","end":[9,49]},"Bar"]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"fooBar"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prim","TypeError"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[3,24],"name":"src/TypeLevelString.purs","end":[3,34]},"Fail"]},{"TypeRef":[{"start":[3,36],"name":"src/TypeLevelString.purs","end":[3,40]},"Text",[]]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Foo","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},"edTypeDeclarationKind":{"DataType":{"args":[],"ctors":[]}}}},{"EDType":{"edTypeName":"Bar","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Bar","edTypeSynonymArguments":[["a",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}}},{"EDClass":{"edClassName":"Bar","edClassTypeArguments":[["a",null]],"edClassMembers":[],"edClassConstraints":[],"edFunctionalDependencies":[]}},{"EDInstance":{"edInstanceClassName":[["TypeLevelString"],"Bar"],"edInstanceName":{"Ident":"fooBar"},"edInstanceTypes":[{"annotation":[{"start":[9,46],"name":"src/TypeLevelString.purs","end":[9,49]},[]],"tag":"TypeConstructor","contents":[["TypeLevelString"],"Foo"]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[9,20],"name":"src/TypeLevelString.purs","end":[9,38]},[]],"constraintClass":[["Prim","TypeError"],"Fail"],"constraintArgs":[{"annotation":[{"start":[9,26],"name":"src/TypeLevelString.purs","end":[9,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[9,26],"name":"src/TypeLevelString.purs","end":[9,30]},[]],"tag":"TypeConstructor","contents":[["Prim","TypeError"],"Text"]},{"annotation":[{"start":[9,31],"name":"src/TypeLevelString.purs","end":[9,37]},[]],"tag":"TypeLevelString","contents":"oops"}]}],"constraintData":null}],"edInstanceChain":[[["TypeLevelString"],{"Ident":"fooBar"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"src/TypeLevelString.purs","end":[9,49]}} \ No newline at end of file
diff --git a/tests/purs/docs/output/TypeOpAliases/docs.json b/tests/purs/docs/output/TypeOpAliases/docs.json
new file mode 100644
index 0000000..0cf32cf
--- /dev/null
+++ b/tests/purs/docs/output/TypeOpAliases/docs.json
@@ -0,0 +1 @@
+{"reExports":[],"name":"TypeOpAliases","comments":null,"declarations":[{"children":[],"comments":null,"title":"AltFn","info":{"arguments":[["a",null],["b",null]],"declType":"typeSynonym","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}},"sourceSpan":{"start":[3,1],"name":"src/TypeOpAliases.purs","end":[3,24]}},{"children":[],"comments":null,"title":"type (~>)","info":{"declType":"alias","alias":[["TypeOpAliases"],{"Left":"AltFn"}],"fixity":{"associativity":"infixr","precedence":6}},"sourceSpan":{"start":[5,1],"name":"src/TypeOpAliases.purs","end":[5,26]}},{"children":[],"comments":null,"title":"test1","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["TypeOpAliases"],"~>"]},{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"TypeVar","contents":"b"}]},null]},null]}},"sourceSpan":{"start":[7,1],"name":"src/TypeOpAliases.purs","end":[7,43]}},{"children":[],"comments":null,"title":"test2","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["TypeOpAliases"],"~>"]},{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["TypeOpAliases"],"~>"]},{"annotation":[],"tag":"TypeVar","contents":"b"},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]},null]},null]},null]}},"sourceSpan":{"start":[8,1],"name":"src/TypeOpAliases.purs","end":[8,50]}},{"children":[],"comments":null,"title":"test3","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["TypeOpAliases"],"~>"]},{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["TypeOpAliases"],"~>"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["TypeOpAliases"],"~>"]},{"annotation":[],"tag":"TypeVar","contents":"b"},{"annotation":[],"tag":"TypeVar","contents":"c"}]}},{"annotation":[],"tag":"TypeVar","contents":"d"}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[9,1],"name":"src/TypeOpAliases.purs","end":[9,59]}},{"children":[],"comments":null,"title":"test4","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["TypeOpAliases"],"~>"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["TypeOpAliases"],"~>"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["TypeOpAliases"],"~>"]},{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}},{"annotation":[],"tag":"TypeVar","contents":"c"}]}},{"annotation":[],"tag":"TypeVar","contents":"d"}]},null]},null]},null]},null]}},"sourceSpan":{"start":[10,1],"name":"src/TypeOpAliases.purs","end":[10,61]}},{"children":[{"comments":null,"title":"Tuple","info":{"arguments":[{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"TypeVar","contents":"b"}],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"showTuple","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["TypeOpAliases"],"Show"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"Show"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"Tuple"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[27,1],"name":"src/TypeOpAliases.purs","end":[28,24]}},{"comments":null,"title":"testLEither","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"TestL"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"Either"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"Tuple"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}]}},"sourceSpan":{"start":[39,1],"name":"src/TypeOpAliases.purs","end":[40,27]}},{"comments":null,"title":"testREither","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"TestR"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"Either"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"Tuple"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}},"sourceSpan":{"start":[43,1],"name":"src/TypeOpAliases.purs","end":[44,23]}}],"comments":null,"title":"Tuple","info":{"declType":"data","dataDeclType":"data","typeArguments":[["a",null],["b",null]]},"sourceSpan":{"start":[12,1],"name":"src/TypeOpAliases.purs","end":[12,27]}},{"children":[],"comments":null,"title":"(×)","info":{"declType":"alias","alias":[["TypeOpAliases"],{"Right":{"Right":"Tuple"}}],"fixity":{"associativity":"infixl","precedence":6}},"sourceSpan":{"start":[14,1],"name":"src/TypeOpAliases.purs","end":[14,20]}},{"children":[],"comments":null,"title":"type (×)","info":{"declType":"alias","alias":[["TypeOpAliases"],{"Left":"Tuple"}],"fixity":{"associativity":"infixl","precedence":6}},"sourceSpan":{"start":[15,1],"name":"src/TypeOpAliases.purs","end":[15,25]}},{"children":[{"comments":null,"title":"Left","info":{"arguments":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"Right","info":{"arguments":[{"annotation":[],"tag":"TypeVar","contents":"b"}],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"testLEither","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"TestL"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"Either"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"Tuple"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}]}},"sourceSpan":{"start":[39,1],"name":"src/TypeOpAliases.purs","end":[40,27]}},{"comments":null,"title":"testREither","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"TestR"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"Either"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"Tuple"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}},"sourceSpan":{"start":[43,1],"name":"src/TypeOpAliases.purs","end":[44,23]}}],"comments":null,"title":"Either","info":{"declType":"data","dataDeclType":"data","typeArguments":[["a",null],["b",null]]},"sourceSpan":{"start":[17,1],"name":"src/TypeOpAliases.purs","end":[17,35]}},{"children":[],"comments":null,"title":"type (⊕)","info":{"declType":"alias","alias":[["TypeOpAliases"],{"Left":"Either"}],"fixity":{"associativity":"infixl","precedence":5}},"sourceSpan":{"start":[19,1],"name":"src/TypeOpAliases.purs","end":[19,26]}},{"children":[],"comments":null,"title":"third","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["TypeOpAliases"],"×"]},{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"BinaryNoParensType","contents":[{"annotation":[],"tag":"TypeOp","contents":[["TypeOpAliases"],"×"]},{"annotation":[],"tag":"TypeVar","contents":"b"},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},null]},null]},null]}},"sourceSpan":{"start":[21,1],"name":"src/TypeOpAliases.purs","end":[21,31]}},{"children":[{"comments":null,"title":"show","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}},"sourceSpan":{"start":[25,3],"name":"src/TypeOpAliases.purs","end":[25,22]}},{"comments":null,"title":"showTuple","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["TypeOpAliases"],"Show"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"Show"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"Tuple"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[27,1],"name":"src/TypeOpAliases.purs","end":[28,24]}}],"comments":null,"title":"Show","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[24,1],"name":"src/TypeOpAliases.purs","end":[25,22]}},{"children":[{"comments":null,"title":"testL","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeVar","contents":"a"}},"sourceSpan":{"start":[33,3],"name":"src/TypeOpAliases.purs","end":[33,13]}},{"comments":null,"title":"testLEither","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"TestL"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"Either"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"Tuple"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}]}},"sourceSpan":{"start":[39,1],"name":"src/TypeOpAliases.purs","end":[40,27]}}],"comments":null,"title":"TestL","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[32,1],"name":"src/TypeOpAliases.purs","end":[33,13]}},{"children":[{"comments":null,"title":"testR","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeVar","contents":"a"}},"sourceSpan":{"start":[36,3],"name":"src/TypeOpAliases.purs","end":[36,13]}},{"comments":null,"title":"testREither","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"TestR"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"Either"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"Tuple"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}},"sourceSpan":{"start":[43,1],"name":"src/TypeOpAliases.purs","end":[44,23]}}],"comments":null,"title":"TestR","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[35,1],"name":"src/TypeOpAliases.purs","end":[36,13]}}]} \ No newline at end of file
diff --git a/tests/purs/docs/output/TypeOpAliases/externs.json b/tests/purs/docs/output/TypeOpAliases/externs.json
new file mode 100644
index 0000000..c859ad7
--- /dev/null
+++ b/tests/purs/docs/output/TypeOpAliases/externs.json
@@ -0,0 +1 @@
+{"efVersion":"0.12.5","efModuleName":["TypeOpAliases"],"efExports":[{"ValueRef":[{"start":[1,1],"name":"src/TypeOpAliases.purs","end":[44,23]},{"Ident":"show"}]},{"ValueRef":[{"start":[1,1],"name":"src/TypeOpAliases.purs","end":[44,23]},{"Ident":"testL"}]},{"ValueRef":[{"start":[1,1],"name":"src/TypeOpAliases.purs","end":[44,23]},{"Ident":"testR"}]},{"TypeRef":[{"start":[1,1],"name":"src/TypeOpAliases.purs","end":[44,23]},"AltFn",[]]},{"TypeOpRef":[{"start":[1,1],"name":"src/TypeOpAliases.purs","end":[44,23]},"~>"]},{"ValueRef":[{"start":[1,1],"name":"src/TypeOpAliases.purs","end":[44,23]},{"Ident":"test1"}]},{"ValueRef":[{"start":[1,1],"name":"src/TypeOpAliases.purs","end":[44,23]},{"Ident":"test2"}]},{"ValueRef":[{"start":[1,1],"name":"src/TypeOpAliases.purs","end":[44,23]},{"Ident":"test3"}]},{"ValueRef":[{"start":[1,1],"name":"src/TypeOpAliases.purs","end":[44,23]},{"Ident":"test4"}]},{"TypeRef":[{"start":[1,1],"name":"src/TypeOpAliases.purs","end":[44,23]},"Tuple",["Tuple"]]},{"ValueOpRef":[{"start":[1,1],"name":"src/TypeOpAliases.purs","end":[44,23]},"×"]},{"TypeOpRef":[{"start":[1,1],"name":"src/TypeOpAliases.purs","end":[44,23]},"×"]},{"TypeRef":[{"start":[1,1],"name":"src/TypeOpAliases.purs","end":[44,23]},"Either",["Left","Right"]]},{"TypeOpRef":[{"start":[1,1],"name":"src/TypeOpAliases.purs","end":[44,23]},"⊕"]},{"ValueRef":[{"start":[1,1],"name":"src/TypeOpAliases.purs","end":[44,23]},{"Ident":"third"}]},{"TypeClassRef":[{"start":[1,1],"name":"src/TypeOpAliases.purs","end":[44,23]},"Show"]},{"TypeClassRef":[{"start":[1,1],"name":"src/TypeOpAliases.purs","end":[44,23]},"TestL"]},{"TypeClassRef":[{"start":[1,1],"name":"src/TypeOpAliases.purs","end":[44,23]},"TestR"]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"showTuple"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"testLEither"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"testREither"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[{"efAssociativity":"infixl","efPrecedence":6,"efOperator":"×","efAlias":[["TypeOpAliases"],{"Right":"Tuple"}]}],"efTypeFixities":[{"efTypeAssociativity":"infixr","efTypePrecedence":6,"efTypeOperator":"~>","efTypeAlias":[["TypeOpAliases"],"AltFn"]},{"efTypeAssociativity":"infixl","efTypePrecedence":6,"efTypeOperator":"×","efTypeAlias":[["TypeOpAliases"],"Tuple"]},{"efTypeAssociativity":"infixl","efTypePrecedence":5,"efTypeOperator":"⊕","efTypeAlias":[["TypeOpAliases"],"Either"]}],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"show"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["TypeOpAliases"],"Show"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[25,11],"name":"src/TypeOpAliases.purs","end":[25,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,11],"name":"src/TypeOpAliases.purs","end":[25,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,13],"name":"src/TypeOpAliases.purs","end":[25,15]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[25,11],"name":"src/TypeOpAliases.purs","end":[25,12]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[25,16],"name":"src/TypeOpAliases.purs","end":[25,22]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]},8]}}},{"EDValue":{"edValueName":{"Ident":"testL"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["TypeOpAliases"],"TestL"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[33,12],"name":"src/TypeOpAliases.purs","end":[33,13]},[]],"tag":"TypeVar","contents":"a"}]},7]}}},{"EDValue":{"edValueName":{"Ident":"testR"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["TypeOpAliases"],"TestR"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[36,12],"name":"src/TypeOpAliases.purs","end":[36,13]},[]],"tag":"TypeVar","contents":"a"}]},6]}}},{"EDType":{"edTypeName":"AltFn","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[3,20],"name":"src/TypeOpAliases.purs","end":[3,22]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[3,20],"name":"src/TypeOpAliases.purs","end":[3,22]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[3,20],"name":"src/TypeOpAliases.purs","end":[3,22]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"AltFn","edTypeSynonymArguments":[["a",{"annotation":[{"start":[3,20],"name":"src/TypeOpAliases.purs","end":[3,22]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["b",{"annotation":[{"start":[3,20],"name":"src/TypeOpAliases.purs","end":[3,22]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"edTypeSynonymType":{"annotation":[{"start":[3,18],"name":"src/TypeOpAliases.purs","end":[3,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[3,18],"name":"src/TypeOpAliases.purs","end":[3,24]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[3,20],"name":"src/TypeOpAliases.purs","end":[3,22]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[3,18],"name":"src/TypeOpAliases.purs","end":[3,19]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[3,23],"name":"src/TypeOpAliases.purs","end":[3,24]},[]],"tag":"TypeVar","contents":"b"}]}}},{"EDValue":{"edValueName":{"Ident":"test1"},"edValueType":{"annotation":[{"start":[7,25],"name":"src/TypeOpAliases.purs","end":[7,43]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[7,32],"name":"src/TypeOpAliases.purs","end":[7,43]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"AltFn"]},{"annotation":[{"start":[7,37],"name":"src/TypeOpAliases.purs","end":[7,38]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[7,42],"name":"src/TypeOpAliases.purs","end":[7,43]},[]],"tag":"TypeVar","contents":"b"}]},null]},null]}}},{"EDValue":{"edValueName":{"Ident":"test2"},"edValueType":{"annotation":[{"start":[8,25],"name":"src/TypeOpAliases.purs","end":[8,50]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[8,32],"name":"src/TypeOpAliases.purs","end":[8,50]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[8,32],"name":"src/TypeOpAliases.purs","end":[8,50]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"AltFn"]},{"annotation":[{"start":[8,39],"name":"src/TypeOpAliases.purs","end":[8,40]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"AltFn"]},{"annotation":[{"start":[8,44],"name":"src/TypeOpAliases.purs","end":[8,45]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[8,49],"name":"src/TypeOpAliases.purs","end":[8,50]},[]],"tag":"TypeVar","contents":"c"}]}]},null]},null]},null]}}},{"EDValue":{"edValueName":{"Ident":"test3"},"edValueType":{"annotation":[{"start":[9,25],"name":"src/TypeOpAliases.purs","end":[9,59]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[9,32],"name":"src/TypeOpAliases.purs","end":[9,59]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[9,32],"name":"src/TypeOpAliases.purs","end":[9,59]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[9,32],"name":"src/TypeOpAliases.purs","end":[9,59]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"AltFn"]},{"annotation":[{"start":[9,41],"name":"src/TypeOpAliases.purs","end":[9,42]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"AltFn"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"AltFn"]},{"annotation":[{"start":[9,47],"name":"src/TypeOpAliases.purs","end":[9,48]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[9,52],"name":"src/TypeOpAliases.purs","end":[9,53]},[]],"tag":"TypeVar","contents":"c"}]}]},{"annotation":[{"start":[9,58],"name":"src/TypeOpAliases.purs","end":[9,59]},[]],"tag":"TypeVar","contents":"d"}]}]},null]},null]},null]},null]}}},{"EDValue":{"edValueName":{"Ident":"test4"},"edValueType":{"annotation":[{"start":[10,25],"name":"src/TypeOpAliases.purs","end":[10,61]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[10,32],"name":"src/TypeOpAliases.purs","end":[10,61]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[10,32],"name":"src/TypeOpAliases.purs","end":[10,61]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[10,32],"name":"src/TypeOpAliases.purs","end":[10,61]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"AltFn"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"AltFn"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"AltFn"]},{"annotation":[{"start":[10,43],"name":"src/TypeOpAliases.purs","end":[10,44]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[10,48],"name":"src/TypeOpAliases.purs","end":[10,49]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[10,54],"name":"src/TypeOpAliases.purs","end":[10,55]},[]],"tag":"TypeVar","contents":"c"}]}]},{"annotation":[{"start":[10,60],"name":"src/TypeOpAliases.purs","end":[10,61]},[]],"tag":"TypeVar","contents":"d"}]},null]},null]},null]},null]}}},{"EDType":{"edTypeName":"Tuple","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[12,24],"name":"src/TypeOpAliases.purs","end":[12,25]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[12,26],"name":"src/TypeOpAliases.purs","end":[12,27]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]},"edTypeDeclarationKind":{"DataType":{"args":[["a",{"annotation":[{"start":[12,24],"name":"src/TypeOpAliases.purs","end":[12,25]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["b",{"annotation":[{"start":[12,26],"name":"src/TypeOpAliases.purs","end":[12,27]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"ctors":[["Tuple",[{"annotation":[{"start":[12,24],"name":"src/TypeOpAliases.purs","end":[12,25]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[12,26],"name":"src/TypeOpAliases.purs","end":[12,27]},[]],"tag":"TypeVar","contents":"b"}]]]}}}},{"EDDataConstructor":{"edDataCtorName":"Tuple","edDataCtorOrigin":"data","edDataCtorTypeCtor":"Tuple","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[12,24],"name":"src/TypeOpAliases.purs","end":[12,25]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[12,26],"name":"src/TypeOpAliases.purs","end":[12,27]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"Tuple"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]},"edDataCtorFields":[{"Ident":"value0"},{"Ident":"value1"}]}},{"EDType":{"edTypeName":"Either","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[17,24],"name":"src/TypeOpAliases.purs","end":[17,25]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[17,34],"name":"src/TypeOpAliases.purs","end":[17,35]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]},"edTypeDeclarationKind":{"DataType":{"args":[["a",{"annotation":[{"start":[17,24],"name":"src/TypeOpAliases.purs","end":[17,25]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}],["b",{"annotation":[{"start":[17,34],"name":"src/TypeOpAliases.purs","end":[17,35]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]],"ctors":[["Left",[{"annotation":[{"start":[17,24],"name":"src/TypeOpAliases.purs","end":[17,25]},[]],"tag":"TypeVar","contents":"a"}]],["Right",[{"annotation":[{"start":[17,34],"name":"src/TypeOpAliases.purs","end":[17,35]},[]],"tag":"TypeVar","contents":"b"}]]]}}}},{"EDDataConstructor":{"edDataCtorName":"Left","edDataCtorOrigin":"data","edDataCtorTypeCtor":"Either","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[17,24],"name":"src/TypeOpAliases.purs","end":[17,25]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"Either"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"b"}]}]},null]},null]},"edDataCtorFields":[{"Ident":"value0"}]}},{"EDDataConstructor":{"edDataCtorName":"Right","edDataCtorOrigin":"data","edDataCtorTypeCtor":"Either","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[17,34],"name":"src/TypeOpAliases.purs","end":[17,35]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"Either"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"b"}]}]},null]},null]},"edDataCtorFields":[{"Ident":"value0"}]}},{"EDValue":{"edValueName":{"Ident":"third"},"edValueType":{"annotation":[{"start":[21,9],"name":"src/TypeOpAliases.purs","end":[21,31]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[21,11],"name":"src/TypeOpAliases.purs","end":[21,31]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[21,11],"name":"src/TypeOpAliases.purs","end":[21,31]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[21,18],"name":"src/TypeOpAliases.purs","end":[21,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,18],"name":"src/TypeOpAliases.purs","end":[21,31]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,28],"name":"src/TypeOpAliases.purs","end":[21,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"Tuple"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"Tuple"]},{"annotation":[{"start":[21,18],"name":"src/TypeOpAliases.purs","end":[21,19]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[21,22],"name":"src/TypeOpAliases.purs","end":[21,23]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[21,26],"name":"src/TypeOpAliases.purs","end":[21,27]},[]],"tag":"TypeVar","contents":"c"}]}]},{"annotation":[{"start":[21,30],"name":"src/TypeOpAliases.purs","end":[21,31]},[]],"tag":"TypeVar","contents":"c"}]},0]},1]},2]}}},{"EDType":{"edTypeName":"Show","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[25,13],"name":"src/TypeOpAliases.purs","end":[25,15]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Show","edTypeSynonymArguments":[["a",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["show",{"annotation":[{"start":[25,11],"name":"src/TypeOpAliases.purs","end":[25,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,11],"name":"src/TypeOpAliases.purs","end":[25,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,13],"name":"src/TypeOpAliases.purs","end":[25,15]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[25,11],"name":"src/TypeOpAliases.purs","end":[25,12]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[25,16],"name":"src/TypeOpAliases.purs","end":[25,22]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}}},{"EDClass":{"edClassName":"Show","edClassTypeArguments":[["a",null]],"edClassMembers":[[{"Ident":"show"},{"annotation":[{"start":[25,11],"name":"src/TypeOpAliases.purs","end":[25,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,11],"name":"src/TypeOpAliases.purs","end":[25,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,13],"name":"src/TypeOpAliases.purs","end":[25,15]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[25,11],"name":"src/TypeOpAliases.purs","end":[25,12]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[25,16],"name":"src/TypeOpAliases.purs","end":[25,22]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]],"edClassConstraints":[],"edFunctionalDependencies":[]}},{"EDType":{"edTypeName":"TestL","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"TestL","edTypeSynonymArguments":[["a",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["testL",{"annotation":[{"start":[33,12],"name":"src/TypeOpAliases.purs","end":[33,13]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}}},{"EDClass":{"edClassName":"TestL","edClassTypeArguments":[["a",null]],"edClassMembers":[[{"Ident":"testL"},{"annotation":[{"start":[33,12],"name":"src/TypeOpAliases.purs","end":[33,13]},[]],"tag":"TypeVar","contents":"a"}]],"edClassConstraints":[],"edFunctionalDependencies":[]}},{"EDType":{"edTypeName":"TestR","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"TestR","edTypeSynonymArguments":[["a",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["testR",{"annotation":[{"start":[36,12],"name":"src/TypeOpAliases.purs","end":[36,13]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}}},{"EDClass":{"edClassName":"TestR","edClassTypeArguments":[["a",null]],"edClassMembers":[[{"Ident":"testR"},{"annotation":[{"start":[36,12],"name":"src/TypeOpAliases.purs","end":[36,13]},[]],"tag":"TypeVar","contents":"a"}]],"edClassConstraints":[],"edFunctionalDependencies":[]}},{"EDInstance":{"edInstanceClassName":[["TypeOpAliases"],"Show"],"edInstanceName":{"Ident":"showTuple"},"edInstanceTypes":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"Tuple"]},{"annotation":[{"start":[27,39],"name":"src/TypeOpAliases.purs","end":[27,40]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[27,43],"name":"src/TypeOpAliases.purs","end":[27,44]},[]],"tag":"TypeVar","contents":"b"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[27,23],"name":"src/TypeOpAliases.purs","end":[27,29]},[]],"constraintClass":[["TypeOpAliases"],"Show"],"constraintArgs":[{"annotation":[{"start":[27,28],"name":"src/TypeOpAliases.purs","end":[27,29]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edInstanceChain":[[["TypeOpAliases"],{"Ident":"showTuple"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["TypeOpAliases"],"TestL"],"edInstanceName":{"Ident":"testLEither"},"edInstanceTypes":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"Either"]},{"annotation":[{"start":[39,32],"name":"src/TypeOpAliases.purs","end":[39,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"Tuple"]},{"annotation":[{"start":[39,38],"name":"src/TypeOpAliases.purs","end":[39,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[39,44],"name":"src/TypeOpAliases.purs","end":[39,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}]}],"edInstanceConstraints":[],"edInstanceChain":[[["TypeOpAliases"],{"Ident":"testLEither"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["TypeOpAliases"],"TestR"],"edInstanceName":{"Ident":"testREither"},"edInstanceTypes":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"Either"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["TypeOpAliases"],"Tuple"]},{"annotation":[{"start":[43,32],"name":"src/TypeOpAliases.purs","end":[43,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[43,38],"name":"src/TypeOpAliases.purs","end":[43,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]},{"annotation":[{"start":[43,44],"name":"src/TypeOpAliases.purs","end":[43,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"String"]}]}],"edInstanceConstraints":[],"edInstanceChain":[[["TypeOpAliases"],{"Ident":"testREither"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"src/TypeOpAliases.purs","end":[44,23]}} \ No newline at end of file
diff --git a/tests/purs/docs/output/TypeSynonym/docs.json b/tests/purs/docs/output/TypeSynonym/docs.json
new file mode 100644
index 0000000..3935418
--- /dev/null
+++ b/tests/purs/docs/output/TypeSynonym/docs.json
@@ -0,0 +1 @@
+{"reExports":[],"name":"TypeSynonym","comments":null,"declarations":[{"children":[],"comments":null,"title":"MyInt","info":{"arguments":[],"declType":"typeSynonym","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}},"sourceSpan":{"start":[3,1],"name":"src/TypeSynonym.purs","end":[3,17]}}]} \ No newline at end of file
diff --git a/tests/purs/docs/output/TypeSynonym/externs.json b/tests/purs/docs/output/TypeSynonym/externs.json
new file mode 100644
index 0000000..cb2a4ff
--- /dev/null
+++ b/tests/purs/docs/output/TypeSynonym/externs.json
@@ -0,0 +1 @@
+{"efVersion":"0.12.5","efModuleName":["TypeSynonym"],"efExports":[{"TypeRef":[{"start":[1,1],"name":"src/TypeSynonym.purs","end":[3,17]},"MyInt",[]]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"MyInt","edTypeKind":{"annotation":[{"start":[3,14],"name":"src/TypeSynonym.purs","end":[3,17]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"MyInt","edTypeSynonymArguments":[],"edTypeSynonymType":{"annotation":[{"start":[3,14],"name":"src/TypeSynonym.purs","end":[3,17]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}}}],"efSourceSpan":{"start":[1,1],"name":"src/TypeSynonym.purs","end":[3,17]}} \ No newline at end of file
diff --git a/tests/purs/docs/output/TypeSynonymInstance/docs.json b/tests/purs/docs/output/TypeSynonymInstance/docs.json
new file mode 100644
index 0000000..150bb1d
--- /dev/null
+++ b/tests/purs/docs/output/TypeSynonymInstance/docs.json
@@ -0,0 +1 @@
+{"reExports":[],"name":"TypeSynonymInstance","comments":null,"declarations":[{"children":[{"comments":null,"title":"MyNT","info":{"arguments":[{"annotation":[],"tag":"TypeConstructor","contents":[["TypeSynonym"],"MyInt"]}],"declType":"dataConstructor"},"sourceSpan":null},{"comments":null,"title":"ntMyNT","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Newtype"],"Newtype"]},{"annotation":[],"tag":"TypeConstructor","contents":[["TypeSynonymInstance"],"MyNT"]}]},{"annotation":[],"tag":"TypeWildcard","contents":null}]}},"sourceSpan":{"start":[9,1],"name":"src/TypeSynonymInstance.purs","end":[9,41]}}],"comments":null,"title":"MyNT","info":{"declType":"data","dataDeclType":"newtype","typeArguments":[]},"sourceSpan":{"start":[7,1],"name":"src/TypeSynonymInstance.purs","end":[7,26]}},{"children":[],"comments":null,"title":"foo","info":{"declType":"value","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}},"sourceSpan":{"start":[11,1],"name":"src/TypeSynonymInstance.purs","end":[11,8]}}]} \ No newline at end of file
diff --git a/tests/purs/docs/output/TypeSynonymInstance/externs.json b/tests/purs/docs/output/TypeSynonymInstance/externs.json
new file mode 100644
index 0000000..7c54ce9
--- /dev/null
+++ b/tests/purs/docs/output/TypeSynonymInstance/externs.json
@@ -0,0 +1 @@
+{"efVersion":"0.12.5","efModuleName":["TypeSynonymInstance"],"efExports":[{"TypeRef":[{"start":[2,1],"name":"src/TypeSynonymInstance.purs","end":[11,8]},"MyNT",["MyNT"]]},{"ValueRef":[{"start":[2,1],"name":"src/TypeSynonymInstance.purs","end":[11,8]},{"Ident":"foo"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"ntMyNT"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","Newtype"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[4,22],"name":"src/TypeSynonymInstance.purs","end":[4,35]},"Newtype"]}]},"eiImportedAs":null},{"eiModule":["TypeSynonym"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[5,21],"name":"src/TypeSynonymInstance.purs","end":[5,26]},"MyInt",[]]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"MyNT","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},"edTypeDeclarationKind":{"DataType":{"args":[],"ctors":[["MyNT",[{"annotation":[{"start":[7,21],"name":"src/TypeSynonymInstance.purs","end":[7,26]},[]],"tag":"TypeConstructor","contents":[["TypeSynonym"],"MyInt"]}]]]}}}},{"EDDataConstructor":{"edDataCtorName":"MyNT","edDataCtorOrigin":"newtype","edDataCtorTypeCtor":"MyNT","edDataCtorType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[7,21],"name":"src/TypeSynonymInstance.purs","end":[7,26]},[]],"tag":"TypeConstructor","contents":[["TypeSynonym"],"MyInt"]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["TypeSynonymInstance"],"MyNT"]}]},"edDataCtorFields":[{"Ident":"value0"}]}},{"EDValue":{"edValueName":{"Ident":"foo"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}}},{"EDInstance":{"edInstanceClassName":[["Data","Newtype"],"Newtype"],"edInstanceName":{"Ident":"ntMyNT"},"edInstanceTypes":[{"annotation":[{"start":[9,35],"name":"src/TypeSynonymInstance.purs","end":[9,39]},[]],"tag":"TypeConstructor","contents":[["TypeSynonymInstance"],"MyNT"]},{"annotation":[{"start":[3,14],"name":"src/TypeSynonym.purs","end":[3,17]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}],"edInstanceConstraints":[],"edInstanceChain":[[["TypeSynonymInstance"],{"Ident":"ntMyNT"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[2,1],"name":"src/TypeSynonymInstance.purs","end":[11,8]}} \ No newline at end of file
diff --git a/tests/purs/docs/output/TypeSynonymInstance/index.js b/tests/purs/docs/output/TypeSynonymInstance/index.js
new file mode 100644
index 0000000..3e9a2f1
--- /dev/null
+++ b/tests/purs/docs/output/TypeSynonymInstance/index.js
@@ -0,0 +1,16 @@
+
+// see #3624
+"use strict";
+var Data_Newtype = require("../Data.Newtype/index.js");
+var MyNT = function (x) {
+ return x;
+};
+var ntMyNT = new Data_Newtype.Newtype(function (n) {
+ return n;
+}, MyNT);
+var foo = 0;
+module.exports = {
+ MyNT: MyNT,
+ foo: foo,
+ ntMyNT: ntMyNT
+};
diff --git a/tests/purs/docs/output/UTF8/docs.json b/tests/purs/docs/output/UTF8/docs.json
new file mode 100644
index 0000000..86520fc
--- /dev/null
+++ b/tests/purs/docs/output/UTF8/docs.json
@@ -0,0 +1 @@
+{"reExports":[],"name":"UTF8","comments":null,"declarations":[{"children":[],"comments":"üÜäÄ 😰\n","title":"thing","info":{"declType":"value","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Prelude"],"Unit"]}},"sourceSpan":{"start":[6,1],"name":"src/UTF8.purs","end":[6,14]}}]} \ No newline at end of file
diff --git a/tests/purs/docs/output/UTF8/externs.json b/tests/purs/docs/output/UTF8/externs.json
new file mode 100644
index 0000000..06d3d6c
--- /dev/null
+++ b/tests/purs/docs/output/UTF8/externs.json
@@ -0,0 +1 @@
+{"efVersion":"0.12.5","efModuleName":["UTF8"],"efExports":[{"ValueRef":[{"start":[1,1],"name":"src/UTF8.purs","end":[7,13]},{"Ident":"thing"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[3,17],"name":"src/UTF8.purs","end":[3,21]},"Unit",[]]},{"ValueRef":[{"start":[3,23],"name":"src/UTF8.purs","end":[3,27]},{"Ident":"unit"}]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"thing"},"edValueType":{"annotation":[{"start":[6,10],"name":"src/UTF8.purs","end":[6,14]},[]],"tag":"TypeConstructor","contents":[["Prelude"],"Unit"]}}}],"efSourceSpan":{"start":[1,1],"name":"src/UTF8.purs","end":[7,13]}} \ No newline at end of file
diff --git a/tests/purs/docs/output/Virtual/docs.json b/tests/purs/docs/output/Virtual/docs.json
new file mode 100644
index 0000000..29b2159
--- /dev/null
+++ b/tests/purs/docs/output/Virtual/docs.json
@@ -0,0 +1 @@
+{"reExports":[],"name":"Virtual","comments":null,"declarations":[]} \ No newline at end of file
diff --git a/tests/purs/docs/output/Virtual/externs.json b/tests/purs/docs/output/Virtual/externs.json
new file mode 100644
index 0000000..ee9e378
--- /dev/null
+++ b/tests/purs/docs/output/Virtual/externs.json
@@ -0,0 +1 @@
+{"efVersion":"0.12.5","efModuleName":["Virtual"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"src/Virtual.purs","end":[5,33]},{"exportSourceImportedFrom":["Prelude"],"exportSourceDefinedIn":["Prelude"]},{"TypeRef":[{"start":[1,1],"name":"src/Virtual.purs","end":[5,33]},"Boolean2",["False","True"]]}]},{"ReExportRef":[{"start":[1,1],"name":"src/Virtual.purs","end":[5,33]},{"exportSourceImportedFrom":["Prelude"],"exportSourceDefinedIn":["Prelude"]},{"TypeRef":[{"start":[1,1],"name":"src/Virtual.purs","end":[5,33]},"Unit",["Unit"]]}]},{"ReExportRef":[{"start":[1,1],"name":"src/Virtual.purs","end":[5,33]},{"exportSourceImportedFrom":["Prelude"],"exportSourceDefinedIn":["Prelude"]},{"ValueRef":[{"start":[1,1],"name":"src/Virtual.purs","end":[5,33]},{"Ident":"unit"}]}]},{"ModuleRef":[{"start":[2,5],"name":"src/Virtual.purs","end":[2,26]},["VirtualPrelude"]]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":["VirtualPrelude"]}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[],"efSourceSpan":{"start":[1,1],"name":"src/Virtual.purs","end":[5,33]}} \ No newline at end of file
diff --git a/tests/purs/docs/resolutions.json b/tests/purs/docs/resolutions.json
index c3fced5..dbfb5ea 100644
--- a/tests/purs/docs/resolutions.json
+++ b/tests/purs/docs/resolutions.json
@@ -1,21 +1,10 @@
{
- "canonicalDir": ".",
- "pkgMeta": {
- "dependencies": {
- "purescript-prelude": "./bower_components/purescript-prelude"
- }
+ "purescript-prelude": {
+ "version": "1.0.0",
+ "path": "bower_components/purescript-prelude"
},
- "dependencies": {
- "purescript-prelude": {
- "canonicalDir": "bower_components/purescript-prelude",
- "pkgMeta": {
- "_resolution": {
- "type": "version",
- "tag": "v2.4.0",
- "commit": "21067a4c782f42d08bc877214f85b92ce6769b21"
- }
- },
- "dependencies": {}
- }
+ "purescript-newtype": {
+ "version": "1.0.0",
+ "path": "bower_components/purescript-newtype"
}
}
diff --git a/tests/purs/docs/src/TypeSynonym.purs b/tests/purs/docs/src/TypeSynonym.purs
new file mode 100644
index 0000000..a67fb59
--- /dev/null
+++ b/tests/purs/docs/src/TypeSynonym.purs
@@ -0,0 +1,3 @@
+module TypeSynonym where
+
+type MyInt = Int
diff --git a/tests/purs/docs/src/TypeSynonymInstance.purs b/tests/purs/docs/src/TypeSynonymInstance.purs
new file mode 100644
index 0000000..d832d7e
--- /dev/null
+++ b/tests/purs/docs/src/TypeSynonymInstance.purs
@@ -0,0 +1,11 @@
+-- see #3624
+module TypeSynonymInstance where
+
+import Data.Newtype (class Newtype)
+import TypeSynonym (MyInt)
+
+newtype MyNT = MyNT MyInt
+
+derive instance ntMyNT :: Newtype MyNT _
+
+foo = 0
diff --git a/tests/purs/failing/2616.purs b/tests/purs/failing/2616.purs
index 55ff188..94663b9 100644
--- a/tests/purs/failing/2616.purs
+++ b/tests/purs/failing/2616.purs
@@ -1,6 +1,6 @@
-- @shouldFailWith NoInstanceFound
module Main where
-
+
import Prelude
newtype Foo r = Foo { | r }
diff --git a/tests/purs/failing/3549-a.purs b/tests/purs/failing/3549-a.purs
new file mode 100644
index 0000000..00a295d
--- /dev/null
+++ b/tests/purs/failing/3549-a.purs
@@ -0,0 +1,10 @@
+-- @shouldFailWith UnknownName
+module Main where
+
+import Effect.Console (log)
+
+identity :: forall (a :: Typ) . a -> a
+identity x = x
+
+main = log "Done"
+
diff --git a/tests/purs/failing/3549.purs b/tests/purs/failing/3549.purs
new file mode 100644
index 0000000..1088aa2
--- /dev/null
+++ b/tests/purs/failing/3549.purs
@@ -0,0 +1,11 @@
+-- @shouldFailWith KindsDoNotUnify
+module Main where
+
+import Prelude
+
+import Effect.Console (log)
+
+map' :: forall (f :: Type -> Type -> Type) (a :: Type) (b :: Type) . Functor f => (a -> b) -> f a -> f b
+map' = map
+
+main = log "Done"
diff --git a/tests/purs/failing/ApostropheModuleName.purs b/tests/purs/failing/ApostropheModuleName.purs
new file mode 100644
index 0000000..1530e9c
--- /dev/null
+++ b/tests/purs/failing/ApostropheModuleName.purs
@@ -0,0 +1,7 @@
+-- @shouldFailWith ErrorParsingModule
+-- see #3601
+module Bad'Module where
+
+import Effect.Console (log)
+
+main = log "Done"
diff --git a/tests/purs/failing/AtPatternPrecedence.purs b/tests/purs/failing/AtPatternPrecedence.purs
new file mode 100644
index 0000000..9f21935
--- /dev/null
+++ b/tests/purs/failing/AtPatternPrecedence.purs
@@ -0,0 +1,14 @@
+-- See #3532
+-- @shouldFailWith ArgListLengthsDiffer
+module Main where
+
+import Effect.Console (log)
+
+data X = X String | Y
+
+oops :: X -> String
+-- previously this was parsed as x@(X s)
+oops x@X s = s
+oops Y = "Y"
+
+main = log (oops (X "Done"))
diff --git a/tests/purs/failing/ExportConflictClassAndType.purs b/tests/purs/failing/ExportConflictClassAndType.purs
new file mode 100644
index 0000000..fa6e746
--- /dev/null
+++ b/tests/purs/failing/ExportConflictClassAndType.purs
@@ -0,0 +1,5 @@
+-- @shouldFailWith ExportConflict
+module C (module A, module B) where
+
+import A as A
+import B as B
diff --git a/tests/purs/failing/ExportConflictClassAndType/A.purs b/tests/purs/failing/ExportConflictClassAndType/A.purs
new file mode 100644
index 0000000..48354f7
--- /dev/null
+++ b/tests/purs/failing/ExportConflictClassAndType/A.purs
@@ -0,0 +1,3 @@
+module A where
+
+class X
diff --git a/tests/purs/failing/ExportConflictClassAndType/B.purs b/tests/purs/failing/ExportConflictClassAndType/B.purs
new file mode 100644
index 0000000..3a594f2
--- /dev/null
+++ b/tests/purs/failing/ExportConflictClassAndType/B.purs
@@ -0,0 +1,3 @@
+module B where
+
+data X
diff --git a/tests/purs/failing/ImportHidingModule.purs b/tests/purs/failing/ImportHidingModule.purs
index bda20be..1fa49ce 100644
--- a/tests/purs/failing/ImportHidingModule.purs
+++ b/tests/purs/failing/ImportHidingModule.purs
@@ -1,4 +1,4 @@
--- @shouldFailWith ImportHidingModule
+-- @shouldFailWith ErrorParsingModule
module Main where
import B hiding (module A)
diff --git a/tests/purs/failing/NewtypeMultiArgs.purs b/tests/purs/failing/NewtypeMultiArgs.purs
index b3ceed3..cf5b57d 100644
--- a/tests/purs/failing/NewtypeMultiArgs.purs
+++ b/tests/purs/failing/NewtypeMultiArgs.purs
@@ -1,4 +1,4 @@
--- @shouldFailWith InvalidNewtype
+-- @shouldFailWith ErrorParsingModule
module Main where
import Prelude
diff --git a/tests/purs/failing/NewtypeMultiCtor.purs b/tests/purs/failing/NewtypeMultiCtor.purs
index 04b4cee..b5eaefd 100644
--- a/tests/purs/failing/NewtypeMultiCtor.purs
+++ b/tests/purs/failing/NewtypeMultiCtor.purs
@@ -1,4 +1,4 @@
--- @shouldFailWith InvalidNewtype
+-- @shouldFailWith ErrorParsingModule
module Main where
import Prelude
diff --git a/tests/purs/failing/NonExhaustivePatGuard.purs b/tests/purs/failing/NonExhaustivePatGuard.purs
index cdcfc2f..b49a87c 100644
--- a/tests/purs/failing/NonExhaustivePatGuard.purs
+++ b/tests/purs/failing/NonExhaustivePatGuard.purs
@@ -2,4 +2,4 @@
module Main where
f :: Int -> Int
-f x | 1 <- x = x \ No newline at end of file
+f x | 1 <- x = x
diff --git a/tests/purs/failing/OperatorAt.purs b/tests/purs/failing/OperatorAt.purs
new file mode 100644
index 0000000..b32cfc0
--- /dev/null
+++ b/tests/purs/failing/OperatorAt.purs
@@ -0,0 +1,8 @@
+-- @shouldFailWith ErrorParsingModule
+module Main where
+
+import Prelude
+
+infix 1 const as @
+
+test = 1 @ 2
diff --git a/tests/purs/failing/OperatorBackslash.purs b/tests/purs/failing/OperatorBackslash.purs
new file mode 100644
index 0000000..7a6333f
--- /dev/null
+++ b/tests/purs/failing/OperatorBackslash.purs
@@ -0,0 +1,8 @@
+-- @shouldFailWith ErrorParsingModule
+module Main where
+
+import Prelude
+
+infix 1 const as \
+
+test = 1 \ 2
diff --git a/tests/purs/failing/PrimRow.purs b/tests/purs/failing/PrimRow.purs
index e9dfe05..13a966f 100644
--- a/tests/purs/failing/PrimRow.purs
+++ b/tests/purs/failing/PrimRow.purs
@@ -5,8 +5,6 @@ import Prelude
-- The 'Cons' class is not imported here, so we should not be able to refer to
-- it in the module.
-import Prim.Row ()
-
x :: Cons "hello" Int () ("hello" :: Int)
=> Unit
x = unit
diff --git a/tests/purs/failing/SelfImport.purs b/tests/purs/failing/SelfImport.purs
new file mode 100644
index 0000000..0a07e35
--- /dev/null
+++ b/tests/purs/failing/SelfImport.purs
@@ -0,0 +1,9 @@
+-- @shouldFailWith CycleInModules
+
+module Main where
+
+import Main as M
+
+foo = 0
+
+bar = M.foo
diff --git a/tests/purs/failing/SelfImport/Dummy.purs b/tests/purs/failing/SelfImport/Dummy.purs
new file mode 100644
index 0000000..eb3f59a
--- /dev/null
+++ b/tests/purs/failing/SelfImport/Dummy.purs
@@ -0,0 +1,5 @@
+-- This module only exists so that we perform a full build for the
+-- SelfImport.purs module. If this module didn't exist, we would perform a
+-- single-module fast rebuild, which doesn't perform the `sortModules` step,
+-- and so the error we want to see wouldn't be emitted.
+module Dummy where
diff --git a/tests/purs/failing/TypeClasses2.purs b/tests/purs/failing/TypeClasses2.purs
index 16f6175..df5cb32 100644
--- a/tests/purs/failing/TypeClasses2.purs
+++ b/tests/purs/failing/TypeClasses2.purs
@@ -1,8 +1,6 @@
-- @shouldFailWith NoInstanceFound
module Main where
-import Prelude ()
-
class Show a where
show :: a -> String
diff --git a/tests/purs/failing/Whitespace1.purs b/tests/purs/failing/Whitespace1.purs
new file mode 100644
index 0000000..b73805a
--- /dev/null
+++ b/tests/purs/failing/Whitespace1.purs
@@ -0,0 +1,5 @@
+-- @shouldFailWith ErrorParsingModule
+module Main where
+
+test = do
+ test
diff --git a/tests/purs/layout/AdoIn.purs b/tests/purs/layout/AdoIn.purs
new file mode 100644
index 0000000..ba7a736
--- /dev/null
+++ b/tests/purs/layout/AdoIn.purs
@@ -0,0 +1,13 @@
+module Test where
+
+test = ado
+ baz
+ let foo = bar
+ in bar
+
+test = ado in foo
+
+test = ado
+ foo <- bar $ let a = 42 in a
+ baz <- b
+ in bar
diff --git a/tests/purs/layout/CaseGuards.purs b/tests/purs/layout/CaseGuards.purs
new file mode 100644
index 0000000..6c328ea
--- /dev/null
+++ b/tests/purs/layout/CaseGuards.purs
@@ -0,0 +1,53 @@
+module Test where
+
+-- Including data because of `|` masking
+data Foo
+ = Foo
+ | Bar
+ | Baz
+
+test =
+ case foo of
+ a | b, c ->
+ d
+ a | b, c -> d
+
+test = case a, b of
+ c, d
+ | e ->
+ case e of
+ f | true -> bar
+ | false -> baz
+ | f -> g
+
+test a
+ | false =
+ case false of
+ true | a > 12 -> true
+ | otherwise = true
+
+test = case a of foo | foo \a -> a -> true
+
+test = a `case _ of x | unit # \_ -> true, true -> const` b
+
+test = case a of
+ 12 | do that
+ that -> this
+ | otherwise -> this
+
+test a b = [ case _ of
+ 12 | case a, b of
+ _, 42 -> b
+ _, 12 -> false, b -> true
+ | case a, b of
+ _, 42 -> b
+ _, 12 -> false, b -> true, false ]
+
+test a
+ | case a, b of
+ _, 42 -> b
+ _, 12 -> false, b = true
+ | case a, b of
+ _, 42 -> b
+ _, 12 -> false, b = true
+
diff --git a/tests/purs/layout/CaseWhere.purs b/tests/purs/layout/CaseWhere.purs
new file mode 100644
index 0000000..8af0a6e
--- /dev/null
+++ b/tests/purs/layout/CaseWhere.purs
@@ -0,0 +1,12 @@
+module Test where
+
+test = case foo of
+ Nothing -> a
+ where a = 12
+ Just a -> do
+ what
+ where
+ foo = bar
+
+test = case f of Foo -> do that
+ where foo = 12
diff --git a/tests/purs/layout/ClassHead.purs b/tests/purs/layout/ClassHead.purs
new file mode 100644
index 0000000..92275e2
--- /dev/null
+++ b/tests/purs/layout/ClassHead.purs
@@ -0,0 +1,10 @@
+module Test where
+
+import Foo (class Foo)
+
+class Foo a b c d | a -> b, c -> d where
+ foo :: Foo
+
+class Foo a b c d | a -> b, c -> d
+
+instance foo :: Foo
diff --git a/tests/purs/layout/Commas.purs b/tests/purs/layout/Commas.purs
new file mode 100644
index 0000000..6d70b72
--- /dev/null
+++ b/tests/purs/layout/Commas.purs
@@ -0,0 +1,22 @@
+module Test where
+
+test =
+ [ case do foo, bar of
+ a | b, c -> d, bar
+ ]
+
+test =
+ [ case do foo, bar of a | b, c -> d, bar ]
+
+test =
+ [ do do do foo, bar ]
+
+test =
+ [ \foo -> foo, bar ]
+
+test = foo where
+ bar =
+ case a, b of
+ c, d | d == [case true, w of 1, a -> true, false ] -> d
+ e, d | do what, do that -> d
+
diff --git a/tests/purs/layout/Delimiter.purs b/tests/purs/layout/Delimiter.purs
new file mode 100644
index 0000000..537a1cb
--- /dev/null
+++ b/tests/purs/layout/Delimiter.purs
@@ -0,0 +1,13 @@
+module Test where
+
+test1 = a
+test2 = {
+ b
+}
+test3 = do
+ foo
+ bar (
+ baz
+ ) == 12
+ baz
+test4 = c
diff --git a/tests/purs/layout/DoLet.purs b/tests/purs/layout/DoLet.purs
new file mode 100644
index 0000000..a6420ec
--- /dev/null
+++ b/tests/purs/layout/DoLet.purs
@@ -0,0 +1,15 @@
+module Test where
+
+test = do
+ let foo = bar
+ foo
+
+test = do
+ let foo = bar
+ in baz
+ foo
+
+test = do
+ let foo = bar
+ in baz
+ foo
diff --git a/tests/purs/layout/DoOperator.purs b/tests/purs/layout/DoOperator.purs
new file mode 100644
index 0000000..1d9a82c
--- /dev/null
+++ b/tests/purs/layout/DoOperator.purs
@@ -0,0 +1,8 @@
+module Test where
+
+test = do
+ foo
+ foo do
+ bar
+ <|> bar
+
diff --git a/tests/purs/layout/DoWhere.purs b/tests/purs/layout/DoWhere.purs
new file mode 100644
index 0000000..d76cbe7
--- /dev/null
+++ b/tests/purs/layout/DoWhere.purs
@@ -0,0 +1,6 @@
+module Test where
+
+test =
+ do
+ do do
+ foo where bar = baz
diff --git a/tests/purs/layout/IfThenElseDo.purs b/tests/purs/layout/IfThenElseDo.purs
new file mode 100644
index 0000000..ec82485
--- /dev/null
+++ b/tests/purs/layout/IfThenElseDo.purs
@@ -0,0 +1,10 @@
+module Test where
+
+foo = do
+ if true then
+ false
+ else if false then do
+ that
+ else do
+ what
+ that
diff --git a/tests/purs/layout/InstanceChainElse.purs b/tests/purs/layout/InstanceChainElse.purs
new file mode 100644
index 0000000..b0b80b8
--- /dev/null
+++ b/tests/purs/layout/InstanceChainElse.purs
@@ -0,0 +1,4 @@
+module Test where
+
+instance foo :: Foo Int else bar :: Foo String
+else baz :: Foo Boolean
diff --git a/tests/purs/passing/1110.purs b/tests/purs/passing/1110.purs
index 32ecebc..047adc0 100644
--- a/tests/purs/passing/1110.purs
+++ b/tests/purs/passing/1110.purs
@@ -7,7 +7,7 @@ data X a = X
x :: forall a. X a
x = X
-
+
type Y = { x :: X Int }
test :: forall m. Monad m => m Y
diff --git a/tests/purs/passing/2252.purs b/tests/purs/passing/2252.purs
index 598b379..c551e80 100644
--- a/tests/purs/passing/2252.purs
+++ b/tests/purs/passing/2252.purs
@@ -1,9 +1,9 @@
module Main where
-
+
import Effect.Console (log)
data T a = T
-
+
ti :: T Int
ti = T
diff --git a/tests/purs/passing/3549.purs b/tests/purs/passing/3549.purs
new file mode 100644
index 0000000..69bdcbf
--- /dev/null
+++ b/tests/purs/passing/3549.purs
@@ -0,0 +1,13 @@
+module Main where
+
+import Prelude
+
+import Effect.Console (log)
+
+identity :: forall (a :: Type) . a -> a
+identity x = x
+
+map' :: forall (f :: Type -> Type) (a :: Type) (b :: Type) . Functor f => (a -> b) -> f a -> f b
+map' = map
+
+main = log "Done"
diff --git a/tests/purs/passing/ConstraintOutsideForall.purs b/tests/purs/passing/ConstraintOutsideForall.purs
new file mode 100644
index 0000000..8542461
--- /dev/null
+++ b/tests/purs/passing/ConstraintOutsideForall.purs
@@ -0,0 +1,12 @@
+module Main where
+
+import Effect.Console
+
+class Test a
+
+instance testUnit :: Test Int
+
+test :: Test Int => forall a. a -> a
+test a = a
+
+main = log (test "Done")
diff --git a/tests/purs/passing/DeepCase.purs b/tests/purs/passing/DeepCase.purs
index 687993f..2eb2155 100644
--- a/tests/purs/passing/DeepCase.purs
+++ b/tests/purs/passing/DeepCase.purs
@@ -6,7 +6,7 @@ import Effect.Console (log, logShow)
f x y =
let
g = case y of
- 0.0 -> x
+ 0.0 -> x
x -> 1.0 + x * x
in g + x + y
diff --git a/tests/purs/passing/DeriveWithNestedSynonyms.purs b/tests/purs/passing/DeriveWithNestedSynonyms.purs
index 56a7b45..4f86776 100644
--- a/tests/purs/passing/DeriveWithNestedSynonyms.purs
+++ b/tests/purs/passing/DeriveWithNestedSynonyms.purs
@@ -1,5 +1,5 @@
module Main where
-
+
import Prelude
import Effect.Console (log)
diff --git a/tests/purs/passing/DerivingFunctor.purs b/tests/purs/passing/DerivingFunctor.purs
index e931483..f46c7c8 100644
--- a/tests/purs/passing/DerivingFunctor.purs
+++ b/tests/purs/passing/DerivingFunctor.purs
@@ -27,7 +27,7 @@ main = do
assert $ map show (M1 0 :: MA Int) == M1 0
assert $ map show (M2 [0, 1] :: MA Int) == M2 ["0", "1"]
assert $ map show (M3 {foo: 0, bar: 1, baz: [2, 3]} :: MA Int) == M3 {foo: 0, bar: "1", baz: ["2", "3"]}
- assert $ map show (M4 { myField: 42 }) == M4 { myField: "42" } :: MA String
+ assert $ map show (M4 { myField: 42 }) == (M4 { myField: "42" } :: MA String)
case map show (T \_ -> 42) of
T f -> assert $ f "hello" == "42"
diff --git a/tests/purs/passing/FunctionAndCaseGuards.purs b/tests/purs/passing/FunctionAndCaseGuards.purs
new file mode 100644
index 0000000..ca949ac
--- /dev/null
+++ b/tests/purs/passing/FunctionAndCaseGuards.purs
@@ -0,0 +1,21 @@
+-- See #3443
+module Main where
+
+import Prelude
+import Effect (Effect)
+import Effect.Console (log)
+
+-- this is just a really convoluted `const true`
+test :: Int -> Boolean
+test a
+ | false =
+ case false of
+ true | a > 0 -> true
+ _ -> true
+ | otherwise = true
+
+main :: Effect Unit
+main = do
+ if test 0
+ then log "Done"
+ else pure unit
diff --git a/tests/purs/passing/GenericsRep.purs b/tests/purs/passing/GenericsRep.purs
index a7e9748..3126768 100644
--- a/tests/purs/passing/GenericsRep.purs
+++ b/tests/purs/passing/GenericsRep.purs
@@ -39,5 +39,5 @@ main = do
logShow (X 1 == X 1)
logShow (Z 1 Y == Z 1 Y)
logShow (Z 1 Y == Y)
- logShow (Y == Y :: Y Z)
+ logShow (Y == (Y :: Y Z))
log "Done"
diff --git a/tests/purs/passing/Import/M1.purs b/tests/purs/passing/Import/M1.purs
index 36cdb4b..ec53585 100644
--- a/tests/purs/passing/Import/M1.purs
+++ b/tests/purs/passing/Import/M1.purs
@@ -1,7 +1,5 @@
module M1 where
-import Prelude ()
-
id :: forall a. a -> a
id = \x -> x
diff --git a/tests/purs/passing/Import/M2.purs b/tests/purs/passing/Import/M2.purs
index 7b4883a..a6a9846 100644
--- a/tests/purs/passing/Import/M2.purs
+++ b/tests/purs/passing/Import/M2.purs
@@ -1,6 +1,5 @@
module M2 where
-import Prelude ()
import M1
main = \_ -> foo 42
diff --git a/tests/purs/passing/KindedType.purs b/tests/purs/passing/KindedType.purs
index 13b9817..5898614 100644
--- a/tests/purs/passing/KindedType.purs
+++ b/tests/purs/passing/KindedType.purs
@@ -31,4 +31,11 @@ class Clazz (a :: Type) where
instance clazzString :: Clazz String where
def = "test"
+type Type a = ((a) :: Type)
+
+type TestRecord a = Record (a :: Type a)
+
+test5 :: Test TestRecord
+test5 = { a: "test" }
+
main = log "Done"
diff --git a/tests/purs/passing/Monad.purs b/tests/purs/passing/Monad.purs
index 8bf3c33..de29e7c 100644
--- a/tests/purs/passing/Monad.purs
+++ b/tests/purs/passing/Monad.purs
@@ -3,7 +3,7 @@ module Main where
import Effect.Console (log)
type Monad m = { return :: forall a. a -> m a
- , bind :: forall a b. m a -> (a -> m b) -> m b }
+ , bind :: forall a b. m a -> (a -> m b) -> m b }
data Id a = Id a
@@ -22,8 +22,8 @@ maybe = { return : Just
test :: forall m. Monad m -> m Number
test = \m -> m.bind (m.return 1.0) (\n1 ->
- m.bind (m.return "Test") (\n2 ->
- m.return n1))
+ m.bind (m.return "Test") (\n2 ->
+ m.return n1))
test1 = test id
diff --git a/tests/purs/passing/Rank2Data.purs b/tests/purs/passing/Rank2Data.purs
index d8f2cc3..b35bbd8 100644
--- a/tests/purs/passing/Rank2Data.purs
+++ b/tests/purs/passing/Rank2Data.purs
@@ -3,12 +3,12 @@ module Main where
import Prelude hiding (add)
import Effect.Console (log)
-data Id = Id forall a. a -> a
+data Id = Id (forall a. a -> a)
runId = \id a -> case id of
Id f -> f a
-data Nat = Nat forall r. r -> (r -> r) -> r
+data Nat = Nat (forall r. r -> (r -> r) -> r)
runNat = \nat -> case nat of
Nat f -> f 0.0 (\n -> n + 1.0)
diff --git a/tests/purs/passing/RedefinedFixity/M2.purs b/tests/purs/passing/RedefinedFixity/M2.purs
index 359b514..f7ddf19 100644
--- a/tests/purs/passing/RedefinedFixity/M2.purs
+++ b/tests/purs/passing/RedefinedFixity/M2.purs
@@ -1,5 +1,3 @@
module M2 where
-import Prelude ()
-
import M1
diff --git a/tests/purs/passing/RedefinedFixity/M3.purs b/tests/purs/passing/RedefinedFixity/M3.purs
index f7ac462..cd62cc1 100644
--- a/tests/purs/passing/RedefinedFixity/M3.purs
+++ b/tests/purs/passing/RedefinedFixity/M3.purs
@@ -1,6 +1,4 @@
module M3 where
-import Prelude ()
-
import M1
import M2
diff --git a/tests/purs/passing/StringEscapes.purs b/tests/purs/passing/StringEscapes.purs
index 9194ce7..a40348c 100644
--- a/tests/purs/passing/StringEscapes.purs
+++ b/tests/purs/passing/StringEscapes.purs
@@ -4,9 +4,8 @@ import Prelude ((==), (/=), (<>), discard)
import Test.Assert (assert, assert')
import Effect.Console (log)
-singleCharacter = "\0\b\t\n\v\f\r\"\\" == "\x0\x8\x9\xA\xB\xC\xD\x22\x5C"
-hex = "\x1D306\x2603\x3C6\xE0\x0" == "𝌆☃φà\0"
-decimal = "\119558\9731\966\224\0" == "𝌆☃φà\0"
+singleCharacter = "\t\n\r\"\\" == "\x9\xA\xD\x22\x5C"
+hex = "\x1D306\x2603\x3C6\xE0" == "𝌆☃φà"
surrogatePair = "\xD834\xDF06" == "\x1D306"
highSurrogate = "\xD834"
lowSurrogate = "\xDF06"
@@ -18,7 +17,6 @@ notReplacing = replacement /= highSurrogate
main = do
assert' "single-character escape sequences" singleCharacter
assert' "hex escape sequences" hex
- assert' "decimal escape sequences" decimal
assert' "astral code points are represented as a UTF-16 surrogate pair" surrogatePair
assert' "lone surrogates may be combined into a surrogate pair" loneSurrogates
assert' "lone surrogates may be combined out of order to remain lone surrogates" outOfOrderSurrogates
diff --git a/tests/purs/passing/TypeAnnotationPrecedence.purs b/tests/purs/passing/TypeAnnotationPrecedence.purs
new file mode 100644
index 0000000..d5433bf
--- /dev/null
+++ b/tests/purs/passing/TypeAnnotationPrecedence.purs
@@ -0,0 +1,11 @@
+-- See #3554
+module Main where
+
+import Prelude
+import Effect (Effect)
+import Effect.Console (log)
+import Data.Tuple (Tuple(..), uncurry)
+
+appendAndLog = log <<< uncurry append :: Tuple String String -> Effect Unit
+
+main = appendAndLog (Tuple "Do" "ne")
diff --git a/tests/purs/publish/basic-example/output/Control.Alt/docs.json b/tests/purs/publish/basic-example/output/Control.Alt/docs.json
new file mode 100644
index 0000000..651b08c
--- /dev/null
+++ b/tests/purs/publish/basic-example/output/Control.Alt/docs.json
@@ -0,0 +1 @@
+{"reExports":[],"name":"Control.Alt","comments":null,"declarations":[{"children":[{"comments":null,"title":"alt","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[22,3],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,37]}},{"comments":null,"title":"altArray","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Alt"],"Alt"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}]}},"sourceSpan":{"start":[26,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[27,15]}}],"comments":"The `Alt` type class identifies an associative operation on a type\nconstructor. It is similar to `Semigroup`, except that it applies to\ntypes of kind `* -> *`, like `Array` or `List`, rather than concrete types\n`String` or `Number`.\n\n`Alt` instances are required to satisfy the following laws:\n\n- Associativity: `(x <|> y) <|> z == x <|> (y <|> z)`\n- Distributivity: `f <$> (x <|> y) == (f <$> x) <|> (f <$> y)`\n\nFor example, the `Array` (`[]`) type is an instance of `Alt`, where\n`(<|>)` is defined to be concatenation.\n","title":"Alt","info":{"fundeps":[],"arguments":[["f",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null}]},"sourceSpan":{"start":[21,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,37]}},{"children":[],"comments":null,"title":"(<|>)","info":{"declType":"alias","alias":[["Control","Alt"],{"Right":{"Left":{"Ident":"alt"}}}],"fixity":{"associativity":"infixl","precedence":3}},"sourceSpan":{"start":[24,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[24,20]}}]} \ No newline at end of file
diff --git a/tests/purs/publish/basic-example/output/Control.Alt/externs.json b/tests/purs/publish/basic-example/output/Control.Alt/externs.json
new file mode 100644
index 0000000..8ca42dd
--- /dev/null
+++ b/tests/purs/publish/basic-example/output/Control.Alt/externs.json
@@ -0,0 +1 @@
+{"efVersion":"0.12.5","efModuleName":["Control","Alt"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[27,15]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[27,15]},"Functor"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[27,15]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[27,15]},{"Ident":"map"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[27,15]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[27,15]},{"Ident":"void"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[27,15]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[27,15]},"$>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[27,15]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[27,15]},"<#>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[27,15]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[27,15]},"<$"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[27,15]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[27,15]},"<$>"]}]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[27,15]},"Alt"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[27,15]},{"Ident":"alt"}]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[27,15]},"<|>"]},{"ModuleRef":[{"start":[3,5],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[3,24]},["Data","Functor"]]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"altArray"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","Functor"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[6,22],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[6,35]},"Functor"]},{"ValueRef":[{"start":[6,37],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[6,40]},{"Ident":"map"}]},{"ValueRef":[{"start":[6,42],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[6,46]},{"Ident":"void"}]},{"ValueOpRef":[{"start":[6,48],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[6,52]},"$>"]},{"ValueOpRef":[{"start":[6,54],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[6,59]},"<#>"]},{"ValueOpRef":[{"start":[6,61],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[6,65]},"<$"]},{"ValueOpRef":[{"start":[6,67],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[6,72]},"<$>"]}]},"eiImportedAs":null},{"eiModule":["Data","Semigroup"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[7,24],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[7,30]},{"Ident":"append"}]}]},"eiImportedAs":null}],"efFixities":[{"efAssociativity":"infixl","efPrecedence":3,"efOperator":"<|>","efAlias":[["Control","Alt"],{"Left":{"Ident":"alt"}}]}],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Alt","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[22,20],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,23]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[22,24],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,26]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Alt","edTypeSynonymArguments":[["f",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["alt",{"annotation":[{"start":[22,10],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,37]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[22,20],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,20],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,24],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[22,20],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,20],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,21]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[22,22],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,23]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[22,27],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,27],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,31],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[22,27],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,27],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,28]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[22,29],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,30]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[22,34],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,34],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,35]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[22,36],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,37]},[]],"tag":"TypeVar","contents":"a"}]}]}]},null]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["Functor0",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Functor"],"Functor"]},{"annotation":[{"start":[21,15],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[21,16]},[]],"tag":"TypeVar","contents":"f"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}]}}},{"EDClass":{"edClassName":"Alt","edClassTypeArguments":[["f",null]],"edClassMembers":[[{"Ident":"alt"},{"annotation":[{"start":[22,10],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,37]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[22,20],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,20],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,24],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[22,20],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,20],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,21]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[22,22],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,23]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[22,27],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,27],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,31],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[22,27],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,27],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,28]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[22,29],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,30]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[22,34],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,34],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,35]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[22,36],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,37]},[]],"tag":"TypeVar","contents":"a"}]}]}]},null]}]],"edClassConstraints":[{"constraintAnn":[{"start":[21,7],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[21,16]},[]],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[{"start":[21,15],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[21,16]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null}],"edFunctionalDependencies":[]}},{"EDValue":{"edValueName":{"Ident":"alt"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[22,10],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,37]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Control","Alt"],"Alt"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[22,20],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,20],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,24],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[22,20],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,20],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,21]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[22,22],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,23]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[22,27],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,27],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,31],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[22,27],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,27],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,28]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[22,29],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,30]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[22,34],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,34],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,35]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[22,36],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[22,37]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},4]},5]}}},{"EDInstance":{"edInstanceClassName":[["Control","Alt"],"Alt"],"edInstanceName":{"Ident":"altArray"},"edInstanceTypes":[{"annotation":[{"start":[26,26],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[26,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Control","Alt"],{"Ident":"altArray"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alt.purs","end":[27,15]}} \ No newline at end of file
diff --git a/tests/purs/publish/basic-example/output/Control.Alternative/docs.json b/tests/purs/publish/basic-example/output/Control.Alternative/docs.json
new file mode 100644
index 0000000..4e35245
--- /dev/null
+++ b/tests/purs/publish/basic-example/output/Control.Alternative/docs.json
@@ -0,0 +1 @@
+{"reExports":[],"name":"Control.Alternative","comments":null,"declarations":[{"children":[{"comments":null,"title":"alternativeArray","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Alternative"],"Alternative"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}]}},"sourceSpan":{"start":[27,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]}}],"comments":"The `Alternative` type class has no members of its own; it just specifies\nthat the type constructor has both `Applicative` and `Plus` instances.\n\nTypes which have `Alternative` instances should also satisfy the following\nlaws:\n\n- Distributivity: `(f <|> g) <*> x == (f <*> x) <|> (g <*> x)`\n- Annihilation: `empty <*> f = empty`\n","title":"Alternative","info":{"fundeps":[],"arguments":[["f",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"constraintAnn":[],"constraintClass":[["Control","Plus"],"Plus"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null}]},"sourceSpan":{"start":[25,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[25,47]}}]} \ No newline at end of file
diff --git a/tests/purs/publish/basic-example/output/Control.Alternative/externs.json b/tests/purs/publish/basic-example/output/Control.Alternative/externs.json
new file mode 100644
index 0000000..766c97f
--- /dev/null
+++ b/tests/purs/publish/basic-example/output/Control.Alternative/externs.json
@@ -0,0 +1 @@
+{"efVersion":"0.12.5","efModuleName":["Control","Alternative"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},{"exportSourceImportedFrom":["Control","Alt"],"exportSourceDefinedIn":["Control","Alt"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},"Alt"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},{"exportSourceImportedFrom":["Control","Applicative"],"exportSourceDefinedIn":["Control","Applicative"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},"Applicative"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},{"exportSourceImportedFrom":["Control","Apply"],"exportSourceDefinedIn":["Control","Apply"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},"Apply"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},"Functor"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},{"exportSourceImportedFrom":["Control","Plus"],"exportSourceDefinedIn":["Control","Plus"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},"Plus"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},{"exportSourceImportedFrom":["Control","Alt"],"exportSourceDefinedIn":["Control","Alt"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},{"Ident":"alt"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},{"exportSourceImportedFrom":["Control","Apply"],"exportSourceDefinedIn":["Control","Apply"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},{"Ident":"apply"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},{"exportSourceImportedFrom":["Control","Plus"],"exportSourceDefinedIn":["Control","Plus"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},{"Ident":"empty"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},{"exportSourceImportedFrom":["Control","Applicative"],"exportSourceDefinedIn":["Control","Applicative"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},{"Ident":"liftA1"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},{"Ident":"map"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},{"exportSourceImportedFrom":["Control","Applicative"],"exportSourceDefinedIn":["Control","Applicative"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},{"Ident":"pure"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},{"exportSourceImportedFrom":["Control","Applicative"],"exportSourceDefinedIn":["Control","Applicative"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},{"Ident":"unless"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},{"Ident":"void"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},{"exportSourceImportedFrom":["Control","Applicative"],"exportSourceDefinedIn":["Control","Applicative"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},{"Ident":"when"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},"$>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},{"exportSourceImportedFrom":["Control","Apply"],"exportSourceDefinedIn":["Control","Apply"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},"*>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},"<#>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},"<$"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},"<$>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},{"exportSourceImportedFrom":["Control","Apply"],"exportSourceDefinedIn":["Control","Apply"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},"<*"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},{"exportSourceImportedFrom":["Control","Apply"],"exportSourceDefinedIn":["Control","Apply"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},"<*>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},{"exportSourceImportedFrom":["Control","Alt"],"exportSourceDefinedIn":["Control","Alt"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},"<|>"]}]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},"Alternative"]},{"ModuleRef":[{"start":[3,5],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[3,23]},["Control","Alt"]]},{"ModuleRef":[{"start":[4,5],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[4,31]},["Control","Applicative"]]},{"ModuleRef":[{"start":[5,5],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[5,25]},["Control","Apply"]]},{"ModuleRef":[{"start":[6,5],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[6,24]},["Control","Plus"]]},{"ModuleRef":[{"start":[7,5],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[7,24]},["Data","Functor"]]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"alternativeArray"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Control","Alt"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[10,21],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[10,30]},"Alt"]},{"ValueRef":[{"start":[10,32],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[10,35]},{"Ident":"alt"}]},{"ValueOpRef":[{"start":[10,37],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[10,42]},"<|>"]}]},"eiImportedAs":null},{"eiModule":["Control","Applicative"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[11,29],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[11,46]},"Applicative"]},{"ValueRef":[{"start":[11,48],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[11,52]},{"Ident":"pure"}]},{"ValueRef":[{"start":[11,54],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[11,60]},{"Ident":"liftA1"}]},{"ValueRef":[{"start":[11,62],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[11,68]},{"Ident":"unless"}]},{"ValueRef":[{"start":[11,70],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[11,74]},{"Ident":"when"}]}]},"eiImportedAs":null},{"eiModule":["Control","Apply"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[12,23],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[12,34]},"Apply"]},{"ValueRef":[{"start":[12,36],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[12,41]},{"Ident":"apply"}]},{"ValueOpRef":[{"start":[12,43],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[12,47]},"*>"]},{"ValueOpRef":[{"start":[12,49],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[12,53]},"<*"]},{"ValueOpRef":[{"start":[12,55],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[12,60]},"<*>"]}]},"eiImportedAs":null},{"eiModule":["Control","Plus"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[13,22],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[13,32]},"Plus"]},{"ValueRef":[{"start":[13,34],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[13,39]},{"Ident":"empty"}]}]},"eiImportedAs":null},{"eiModule":["Data","Functor"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[15,22],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[15,35]},"Functor"]},{"ValueRef":[{"start":[15,37],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[15,40]},{"Ident":"map"}]},{"ValueRef":[{"start":[15,42],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[15,46]},{"Ident":"void"}]},{"ValueOpRef":[{"start":[15,48],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[15,52]},"$>"]},{"ValueOpRef":[{"start":[15,54],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[15,59]},"<#>"]},{"ValueOpRef":[{"start":[15,61],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[15,65]},"<$"]},{"ValueOpRef":[{"start":[15,67],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[15,72]},"<$>"]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Alternative","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Alternative","edTypeSynonymArguments":[["f",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["Applicative0",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Control","Applicative"],"Applicative"]},{"annotation":[{"start":[25,20],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[25,21]},[]],"tag":"TypeVar","contents":"f"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["Plus1",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Control","Plus"],"Plus"]},{"annotation":[{"start":[25,28],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[25,29]},[]],"tag":"TypeVar","contents":"f"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}]}}},{"EDClass":{"edClassName":"Alternative","edClassTypeArguments":[["f",null]],"edClassMembers":[],"edClassConstraints":[{"constraintAnn":[{"start":[25,8],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[25,21]},[]],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[{"start":[25,20],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[25,21]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"constraintAnn":[{"start":[25,23],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[25,29]},[]],"constraintClass":[["Control","Plus"],"Plus"],"constraintArgs":[{"annotation":[{"start":[25,28],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[25,29]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null}],"edFunctionalDependencies":[]}},{"EDInstance":{"edInstanceClassName":[["Control","Alternative"],"Alternative"],"edInstanceName":{"Ident":"alternativeArray"},"edInstanceTypes":[{"annotation":[{"start":[27,42],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Control","Alternative"],{"Ident":"alternativeArray"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Alternative.purs","end":[27,47]}} \ No newline at end of file
diff --git a/tests/purs/publish/basic-example/output/Control.Applicative/docs.json b/tests/purs/publish/basic-example/output/Control.Applicative/docs.json
new file mode 100644
index 0000000..c44ba54
--- /dev/null
+++ b/tests/purs/publish/basic-example/output/Control.Applicative/docs.json
@@ -0,0 +1 @@
+{"reExports":[],"name":"Control.Applicative","comments":null,"declarations":[{"children":[{"comments":null,"title":"pure","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]}},"sourceSpan":{"start":[33,3],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[33,29]}},{"comments":null,"title":"applicativeFn","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Applicative"],"Applicative"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}},"sourceSpan":{"start":[35,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[36,15]}},{"comments":null,"title":"applicativeArray","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Applicative"],"Applicative"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}]}},"sourceSpan":{"start":[38,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[39,15]}}],"comments":"The `Applicative` type class extends the [`Apply`](#apply) type class\nwith a `pure` function, which can be used to create values of type `f a`\nfrom values of type `a`.\n\nWhere [`Apply`](#apply) provides the ability to lift functions of two or\nmore arguments to functions whose arguments are wrapped using `f`, and\n[`Functor`](#functor) provides the ability to lift functions of one\nargument, `pure` can be seen as the function which lifts functions of\n_zero_ arguments. That is, `Applicative` functors support a lifting\noperation for any number of function arguments.\n\nInstances must satisfy the following laws in addition to the `Apply`\nlaws:\n\n- Identity: `(pure identity) <*> v = v`\n- Composition: `pure (<<<) <*> f <*> g <*> h = f <*> (g <*> h)`\n- Homomorphism: `(pure f) <*> (pure x) = pure (f x)`\n- Interchange: `u <*> (pure y) = (pure (_ $ y)) <*> u`\n","title":"Applicative","info":{"fundeps":[],"arguments":[["f",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Control","Apply"],"Apply"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null}]},"sourceSpan":{"start":[32,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[33,29]}},{"children":[],"comments":"`liftA1` provides a default implementation of `(<$>)` for any\n[`Applicative`](#applicative) functor, without using `(<$>)` as provided\nby the [`Functor`](#functor)-[`Applicative`](#applicative) superclass\nrelationship.\n\n`liftA1` can therefore be used to write [`Functor`](#functor) instances\nas follows:\n\n```purescript\ninstance functorF :: Functor F where\n map = liftA1\n```\n","title":"liftA1","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[53,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[53,64]}},{"children":[],"comments":"Perform an applicative action unless a condition is true.\n","title":"unless","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]}]},null]}},"sourceSpan":{"start":[62,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[62,65]}},{"children":[],"comments":"Perform an applicative action when a condition is true.\n","title":"when","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]}]},null]}},"sourceSpan":{"start":[57,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[57,63]}}]} \ No newline at end of file
diff --git a/tests/purs/publish/basic-example/output/Control.Applicative/externs.json b/tests/purs/publish/basic-example/output/Control.Applicative/externs.json
new file mode 100644
index 0000000..1db2ad7
--- /dev/null
+++ b/tests/purs/publish/basic-example/output/Control.Applicative/externs.json
@@ -0,0 +1 @@
+{"efVersion":"0.12.5","efModuleName":["Control","Applicative"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[64,26]},{"exportSourceImportedFrom":["Control","Apply"],"exportSourceDefinedIn":["Control","Apply"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[64,26]},"Apply"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[64,26]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[64,26]},"Functor"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[64,26]},{"exportSourceImportedFrom":["Control","Apply"],"exportSourceDefinedIn":["Control","Apply"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[64,26]},{"Ident":"apply"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[64,26]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[64,26]},{"Ident":"map"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[64,26]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[64,26]},{"Ident":"void"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[64,26]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[64,26]},"$>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[64,26]},{"exportSourceImportedFrom":["Control","Apply"],"exportSourceDefinedIn":["Control","Apply"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[64,26]},"*>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[64,26]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[64,26]},"<#>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[64,26]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[64,26]},"<$"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[64,26]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[64,26]},"<$>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[64,26]},{"exportSourceImportedFrom":["Control","Apply"],"exportSourceDefinedIn":["Control","Apply"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[64,26]},"<*"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[64,26]},{"exportSourceImportedFrom":["Control","Apply"],"exportSourceDefinedIn":["Control","Apply"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[64,26]},"<*>"]}]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[64,26]},"Applicative"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[64,26]},{"Ident":"pure"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[64,26]},{"Ident":"liftA1"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[64,26]},{"Ident":"unless"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[64,26]},{"Ident":"when"}]},{"ModuleRef":[{"start":[5,5],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[5,25]},["Control","Apply"]]},{"ModuleRef":[{"start":[6,5],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[6,24]},["Data","Functor"]]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"applicativeFn"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"applicativeArray"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Control","Apply"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[9,23],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[9,34]},"Apply"]},{"ValueRef":[{"start":[9,36],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[9,41]},{"Ident":"apply"}]},{"ValueOpRef":[{"start":[9,43],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[9,47]},"*>"]},{"ValueOpRef":[{"start":[9,49],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[9,53]},"<*"]},{"ValueOpRef":[{"start":[9,55],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[9,60]},"<*>"]}]},"eiImportedAs":null},{"eiModule":["Data","Functor"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[11,22],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[11,35]},"Functor"]},{"ValueRef":[{"start":[11,37],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[11,40]},{"Ident":"map"}]},{"ValueRef":[{"start":[11,42],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[11,46]},{"Ident":"void"}]},{"ValueOpRef":[{"start":[11,48],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[11,52]},"$>"]},{"ValueOpRef":[{"start":[11,54],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[11,59]},"<#>"]},{"ValueOpRef":[{"start":[11,61],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[11,65]},"<$"]},{"ValueOpRef":[{"start":[11,67],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[11,72]},"<$>"]}]},"eiImportedAs":null},{"eiModule":["Data","Unit"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[12,19],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[12,23]},"Unit",[]]},{"ValueRef":[{"start":[12,25],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[12,29]},{"Ident":"unit"}]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Applicative","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[33,26],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[33,29]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[33,23],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[33,25]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[33,23],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[33,25]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Applicative","edTypeSynonymArguments":[["f",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["pure",{"annotation":[{"start":[33,11],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[33,29]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[33,21],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[33,29]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[33,21],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[33,29]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[33,23],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[33,25]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[33,21],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[33,22]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[33,26],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[33,29]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[33,26],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[33,27]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[33,28],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[33,29]},[]],"tag":"TypeVar","contents":"a"}]}]},null]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["Apply0",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Control","Apply"],"Apply"]},{"annotation":[{"start":[32,13],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[32,14]},[]],"tag":"TypeVar","contents":"f"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}]}}},{"EDClass":{"edClassName":"Applicative","edClassTypeArguments":[["f",null]],"edClassMembers":[[{"Ident":"pure"},{"annotation":[{"start":[33,11],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[33,29]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[33,21],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[33,29]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[33,21],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[33,29]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[33,23],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[33,25]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[33,21],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[33,22]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[33,26],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[33,29]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[33,26],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[33,27]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[33,28],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[33,29]},[]],"tag":"TypeVar","contents":"a"}]}]},null]}]],"edClassConstraints":[{"constraintAnn":[{"start":[32,7],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[32,14]},[]],"constraintClass":[["Control","Apply"],"Apply"],"constraintArgs":[{"annotation":[{"start":[32,13],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[32,14]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null}],"edFunctionalDependencies":[]}},{"EDValue":{"edValueName":{"Ident":"pure"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[33,11],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[33,29]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[33,21],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[33,29]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[33,21],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[33,29]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[33,23],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[33,25]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[33,21],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[33,22]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[33,26],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[33,29]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[33,26],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[33,27]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[33,28],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[33,29]},[]],"tag":"TypeVar","contents":"a"}]}]}]},0]},1]}}},{"EDValue":{"edValueName":{"Ident":"liftA1"},"edValueType":{"annotation":[{"start":[53,11],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[53,64]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[53,18],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[53,64]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[53,18],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[53,64]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[53,25],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[53,64]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[53,25],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[53,38]},[]],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[{"start":[53,37],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[53,38]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[53,42],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[53,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,42],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[53,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,51],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[53,53]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[53,43],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[53,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,43],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[53,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,45],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[53,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[53,43],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[53,44]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[53,48],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[53,49]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[53,54],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[53,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,54],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[53,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,58],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[53,60]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[53,54],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[53,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,54],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[53,55]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[53,56],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[53,57]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[53,61],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[53,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,61],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[53,62]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[53,63],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[53,64]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},6]},7]},8]}}},{"EDValue":{"edValueName":{"Ident":"unless"},"edValueType":{"annotation":[{"start":[62,11],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[62,65]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[62,21],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[62,65]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[62,21],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[62,34]},[]],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[{"start":[62,33],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[62,34]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[62,38],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[62,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[62,38],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[62,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[62,46],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[62,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[62,38],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[62,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]},{"annotation":[{"start":[62,49],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[62,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[62,49],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[62,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[62,56],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[62,58]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[62,49],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[62,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[62,49],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[62,50]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[62,51],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[62,55]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]},{"annotation":[{"start":[62,59],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[62,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[62,59],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[62,60]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[62,61],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[62,65]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]}]},2]}}},{"EDValue":{"edValueName":{"Ident":"when"},"edValueType":{"annotation":[{"start":[57,9],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[57,63]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[57,19],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[57,63]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[57,19],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[57,32]},[]],"constraintClass":[["Control","Applicative"],"Applicative"],"constraintArgs":[{"annotation":[{"start":[57,31],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[57,32]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[57,36],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[57,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[57,36],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[57,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[57,44],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[57,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[57,36],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[57,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]},{"annotation":[{"start":[57,47],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[57,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[57,47],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[57,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[57,54],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[57,56]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[57,47],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[57,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[57,47],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[57,48]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[57,49],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[57,53]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]},{"annotation":[{"start":[57,57],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[57,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[57,57],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[57,58]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[57,59],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[57,63]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}]}]}]},4]}}},{"EDInstance":{"edInstanceClassName":[["Control","Applicative"],"Applicative"],"edInstanceName":{"Ident":"applicativeFn"},"edInstanceTypes":[{"annotation":[{"start":[35,40],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[35,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[35,40],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[35,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[35,45],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[35,46]},[]],"tag":"TypeVar","contents":"r"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Control","Applicative"],{"Ident":"applicativeFn"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Applicative"],"Applicative"],"edInstanceName":{"Ident":"applicativeArray"},"edInstanceTypes":[{"annotation":[{"start":[38,42],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[38,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Control","Applicative"],{"Ident":"applicativeArray"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs","end":[64,26]}} \ No newline at end of file
diff --git a/tests/purs/publish/basic-example/output/Control.Apply/docs.json b/tests/purs/publish/basic-example/output/Control.Apply/docs.json
new file mode 100644
index 0000000..c6399cd
--- /dev/null
+++ b/tests/purs/publish/basic-example/output/Control.Apply/docs.json
@@ -0,0 +1 @@
+{"reExports":[],"name":"Control.Apply","comments":null,"declarations":[{"children":[{"comments":null,"title":"apply","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]}},"sourceSpan":{"start":[36,3],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,48]}},{"comments":null,"title":"applyFn","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Apply"],"Apply"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}},"sourceSpan":{"start":[40,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[41,26]}},{"comments":null,"title":"applyArray","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Apply"],"Apply"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}]}},"sourceSpan":{"start":[43,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[44,21]}}],"comments":"The `Apply` class provides the `(<*>)` which is used to apply a function\nto an argument under a type constructor.\n\n`Apply` can be used to lift functions of two or more arguments to work on\nvalues wrapped with the type constructor `f`. It might also be understood\nin terms of the `lift2` function:\n\n```purescript\nlift2 :: forall f a b c. Apply f => (a -> b -> c) -> f a -> f b -> f c\nlift2 f a b = f <$> a <*> b\n```\n\n`(<*>)` is recovered from `lift2` as `lift2 ($)`. That is, `(<*>)` lifts\nthe function application operator `($)` to arguments wrapped with the\ntype constructor `f`.\n\nInstances must satisfy the following law in addition to the `Functor`\nlaws:\n\n- Associative composition: `(<<<) <$> f <*> g <*> h = f <*> (g <*> h)`\n\nFormally, `Apply` represents a strong lax semi-monoidal endofunctor.\n","title":"Apply","info":{"fundeps":[],"arguments":[["f",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null}]},"sourceSpan":{"start":[35,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,48]}},{"children":[],"comments":null,"title":"(<*>)","info":{"declType":"alias","alias":[["Control","Apply"],{"Right":{"Left":{"Ident":"apply"}}}],"fixity":{"associativity":"infixl","precedence":4}},"sourceSpan":{"start":[38,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[38,22]}},{"children":[],"comments":"Combine two effectful actions, keeping only the result of the first.\n","title":"applyFirst","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Apply"],"Apply"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[49,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[49,57]}},{"children":[],"comments":null,"title":"(<*)","info":{"declType":"alias","alias":[["Control","Apply"],{"Right":{"Left":{"Ident":"applyFirst"}}}],"fixity":{"associativity":"infixl","precedence":4}},"sourceSpan":{"start":[52,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[52,26]}},{"children":[],"comments":"Combine two effectful actions, keeping only the result of the second.\n","title":"applySecond","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Apply"],"Apply"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[55,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[55,58]}},{"children":[],"comments":null,"title":"(*>)","info":{"declType":"alias","alias":[["Control","Apply"],{"Right":{"Left":{"Ident":"applySecond"}}}],"fixity":{"associativity":"infixl","precedence":4}},"sourceSpan":{"start":[58,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[58,27]}},{"children":[],"comments":"Lift a function of two arguments to a function which accepts and returns\nvalues wrapped with the type constructor `f`.\n","title":"lift2","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Apply"],"Apply"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}]}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[62,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[62,71]}},{"children":[],"comments":"Lift a function of three arguments to a function which accepts and returns\nvalues wrapped with the type constructor `f`.\n","title":"lift3","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Apply"],"Apply"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"d"}]}]}]}]}]}]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[67,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,85]}},{"children":[],"comments":"Lift a function of four arguments to a function which accepts and returns\nvalues wrapped with the type constructor `f`.\n","title":"lift4","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Apply"],"Apply"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]}]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"d"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"e"}]}]}]}]}]}]}]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[72,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,99]}},{"children":[],"comments":"Lift a function of five arguments to a function which accepts and returns\nvalues wrapped with the type constructor `f`.\n","title":"lift5","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["g",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Apply"],"Apply"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"g"}]}]}]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"d"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"e"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"g"}]}]}]}]}]}]}]}]},null]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[77,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,113]}}]} \ No newline at end of file
diff --git a/tests/purs/publish/basic-example/output/Control.Apply/externs.json b/tests/purs/publish/basic-example/output/Control.Apply/externs.json
new file mode 100644
index 0000000..03f0473
--- /dev/null
+++ b/tests/purs/publish/basic-example/output/Control.Apply/externs.json
@@ -0,0 +1 @@
+{"efVersion":"0.12.5","efModuleName":["Control","Apply"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[78,52]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[78,52]},"Functor"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[78,52]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[78,52]},{"Ident":"map"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[78,52]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[78,52]},{"Ident":"void"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[78,52]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[78,52]},"$>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[78,52]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[78,52]},"<#>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[78,52]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[78,52]},"<$"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[78,52]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[78,52]},"<$>"]}]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[78,52]},"Apply"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[78,52]},{"Ident":"apply"}]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[78,52]},"<*>"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[78,52]},{"Ident":"applyFirst"}]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[78,52]},"<*"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[78,52]},{"Ident":"applySecond"}]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[78,52]},"*>"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[78,52]},{"Ident":"lift2"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[78,52]},{"Ident":"lift3"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[78,52]},{"Ident":"lift4"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[78,52]},{"Ident":"lift5"}]},{"ModuleRef":[{"start":[6,5],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[6,24]},["Data","Functor"]]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"applyFn"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"applyArray"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","Functor"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[9,22],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[9,35]},"Functor"]},{"ValueRef":[{"start":[9,37],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[9,40]},{"Ident":"map"}]},{"ValueRef":[{"start":[9,42],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[9,46]},{"Ident":"void"}]},{"ValueOpRef":[{"start":[9,48],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[9,52]},"$>"]},{"ValueOpRef":[{"start":[9,54],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[9,59]},"<#>"]},{"ValueOpRef":[{"start":[9,61],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[9,65]},"<$"]},{"ValueOpRef":[{"start":[9,67],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[9,72]},"<$>"]}]},"eiImportedAs":null},{"eiModule":["Data","Function"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[10,23],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[10,28]},{"Ident":"const"}]}]},"eiImportedAs":null},{"eiModule":["Control","Category"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[11,26],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[11,34]},{"Ident":"identity"}]}]},"eiImportedAs":null}],"efFixities":[{"efAssociativity":"infixl","efPrecedence":4,"efOperator":"<*>","efAlias":[["Control","Apply"],{"Left":{"Ident":"apply"}}]},{"efAssociativity":"infixl","efPrecedence":4,"efOperator":"<*","efAlias":[["Control","Apply"],{"Left":{"Ident":"applyFirst"}}]},{"efAssociativity":"infixl","efPrecedence":4,"efOperator":"*>","efAlias":[["Control","Apply"],{"Left":{"Ident":"applySecond"}}]}],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Apply","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[36,24],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,34]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[36,29],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,31]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[36,35],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,37]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Apply","edTypeSynonymArguments":[["f",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["apply",{"annotation":[{"start":[36,12],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,48]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[36,19],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,48]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[36,24],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,24],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,35],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[36,24],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,24],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,25]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[36,27],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,27],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,29],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[36,27],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,28]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[36,32],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,33]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[36,38],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,38],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,42],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[36,38],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,38],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,39]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[36,40],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,41]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[36,45],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,45],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,46]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[36,47],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,48]},[]],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["Functor0",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Functor"],"Functor"]},{"annotation":[{"start":[35,15],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[35,16]},[]],"tag":"TypeVar","contents":"f"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}]}}},{"EDClass":{"edClassName":"Apply","edClassTypeArguments":[["f",null]],"edClassMembers":[[{"Ident":"apply"},{"annotation":[{"start":[36,12],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,48]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[36,19],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,48]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[36,24],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,24],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,35],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[36,24],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,24],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,25]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[36,27],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,27],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,29],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[36,27],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,28]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[36,32],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,33]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[36,38],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,38],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,42],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[36,38],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,38],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,39]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[36,40],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,41]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[36,45],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,45],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,46]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[36,47],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,48]},[]],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]}]],"edClassConstraints":[{"constraintAnn":[{"start":[35,7],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[35,16]},[]],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[{"start":[35,15],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[35,16]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null}],"edFunctionalDependencies":[]}},{"EDValue":{"edValueName":{"Ident":"apply"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[36,12],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,48]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[36,19],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,48]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Control","Apply"],"Apply"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[36,24],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,24],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,35],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[36,24],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,24],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,25]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[36,27],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,27],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,33]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,29],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[36,27],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,28]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[36,32],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,33]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[36,38],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,38],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,42],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[36,38],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,38],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,39]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[36,40],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,41]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[36,45],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[36,45],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,46]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[36,47],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[36,48]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},16]},17]},18]}}},{"EDValue":{"edValueName":{"Ident":"applyFirst"},"edValueType":{"annotation":[{"start":[49,15],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[49,57]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[49,22],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[49,57]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[49,22],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[49,57]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[49,29],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[49,57]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[49,29],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[49,36]},[]],"constraintClass":[["Control","Apply"],"Apply"],"constraintArgs":[{"annotation":[{"start":[49,35],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[49,36]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[49,40],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[49,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,40],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[49,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,44],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[49,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[49,40],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[49,43]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,40],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[49,41]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[49,42],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[49,43]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[49,47],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[49,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,47],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[49,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,51],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[49,53]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[49,47],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[49,50]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,47],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[49,48]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[49,49],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[49,50]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[49,54],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[49,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,54],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[49,55]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[49,56],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[49,57]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},19]},20]},21]}}},{"EDValue":{"edValueName":{"Ident":"applySecond"},"edValueType":{"annotation":[{"start":[55,16],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[55,58]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[55,23],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[55,58]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[55,23],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[55,58]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[55,30],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[55,58]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[55,30],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[55,37]},[]],"constraintClass":[["Control","Apply"],"Apply"],"constraintArgs":[{"annotation":[{"start":[55,36],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[55,37]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[55,41],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[55,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,41],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[55,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,45],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[55,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[55,41],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[55,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,41],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[55,42]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[55,43],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[55,44]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[55,48],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[55,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,48],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[55,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,52],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[55,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[55,48],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[55,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,48],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[55,49]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[55,50],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[55,51]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[55,55],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[55,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[55,55],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[55,56]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[55,57],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[55,58]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},25]},26]},27]}}},{"EDValue":{"edValueName":{"Ident":"lift2"},"edValueType":{"annotation":[{"start":[62,10],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[62,71]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[62,17],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[62,71]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[62,17],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[62,71]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[62,17],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[62,71]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[62,26],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[62,71]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[62,26],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[62,33]},[]],"constraintClass":[["Control","Apply"],"Apply"],"constraintArgs":[{"annotation":[{"start":[62,32],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[62,33]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[62,37],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[62,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[62,37],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[62,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[62,51],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[62,53]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[62,38],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[62,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[62,38],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[62,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[62,40],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[62,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[62,38],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[62,39]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[62,43],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[62,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[62,43],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[62,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[62,45],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[62,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[62,43],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[62,44]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[62,48],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[62,49]},[]],"tag":"TypeVar","contents":"c"}]}]}]},{"annotation":[{"start":[62,54],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[62,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[62,54],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[62,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[62,58],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[62,60]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[62,54],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[62,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[62,54],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[62,55]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[62,56],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[62,57]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[62,61],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[62,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[62,61],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[62,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[62,65],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[62,67]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[62,61],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[62,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[62,61],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[62,62]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[62,63],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[62,64]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[62,68],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[62,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[62,68],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[62,69]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[62,70],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[62,71]},[]],"tag":"TypeVar","contents":"c"}]}]}]}]}]},31]},32]},33]},34]}}},{"EDValue":{"edValueName":{"Ident":"lift3"},"edValueType":{"annotation":[{"start":[67,10],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,85]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[67,17],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,85]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[67,17],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,85]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[67,17],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,85]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[67,17],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,85]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[67,28],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,85]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[67,28],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,35]},[]],"constraintClass":[["Control","Apply"],"Apply"],"constraintArgs":[{"annotation":[{"start":[67,34],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,35]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[67,39],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,85]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,39],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,85]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,58],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,60]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[67,40],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,40],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,42],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[67,40],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,41]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[67,45],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,45],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,47],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[67,45],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,46]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[67,50],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,50],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,52],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,54]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[67,50],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,51]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[67,55],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,56]},[]],"tag":"TypeVar","contents":"d"}]}]}]}]},{"annotation":[{"start":[67,61],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,85]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,61],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,85]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,65],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,67]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[67,61],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,61],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,62]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[67,63],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,64]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[67,68],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,85]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,68],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,85]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,72],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,74]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[67,68],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,68],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,69]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[67,70],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,71]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[67,75],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,85]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,75],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,85]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,79],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,81]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[67,75],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,75],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,76]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[67,77],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,78]},[]],"tag":"TypeVar","contents":"c"}]}]},{"annotation":[{"start":[67,82],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,85]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[67,82],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,83]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[67,84],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[67,85]},[]],"tag":"TypeVar","contents":"d"}]}]}]}]}]}]},39]},40]},41]},42]},43]}}},{"EDValue":{"edValueName":{"Ident":"lift4"},"edValueType":{"annotation":[{"start":[72,10],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,99]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[72,17],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,99]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[72,17],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,99]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[72,17],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,99]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[72,17],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,99]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[72,17],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,99]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[72,30],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,99]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[72,30],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,37]},[]],"constraintClass":[["Control","Apply"],"Apply"],"constraintArgs":[{"annotation":[{"start":[72,36],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,37]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[72,41],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,99]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,41],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,99]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,65],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,67]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[72,42],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,42],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,44],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[72,42],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,43]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[72,47],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,47],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,49],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,51]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[72,47],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,48]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[72,52],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,52],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,54],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,56]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[72,52],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,53]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[72,57],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,57],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,59],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,61]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[72,57],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,58]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[72,62],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,63]},[]],"tag":"TypeVar","contents":"e"}]}]}]}]}]},{"annotation":[{"start":[72,68],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,99]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,68],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,99]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,72],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,74]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[72,68],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,68],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,69]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[72,70],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,71]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[72,75],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,99]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,75],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,99]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,79],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,81]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[72,75],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,75],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,76]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[72,77],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,78]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[72,82],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,99]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,82],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,99]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,86],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,88]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[72,82],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,85]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,82],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,83]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[72,84],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,85]},[]],"tag":"TypeVar","contents":"c"}]}]},{"annotation":[{"start":[72,89],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,99]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,89],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,99]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,93],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,95]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[72,89],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,92]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,89],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,90]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[72,91],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,92]},[]],"tag":"TypeVar","contents":"d"}]}]},{"annotation":[{"start":[72,96],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,99]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[72,96],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,97]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[72,98],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[72,99]},[]],"tag":"TypeVar","contents":"e"}]}]}]}]}]}]}]},49]},50]},51]},52]},53]},54]}}},{"EDValue":{"edValueName":{"Ident":"lift5"},"edValueType":{"annotation":[{"start":[77,10],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,113]},[]],"tag":"ForAll","contents":["g",{"annotation":[{"start":[77,17],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,113]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[77,17],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,113]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[77,17],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,113]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[77,17],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,113]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[77,17],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,113]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[77,17],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,113]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[77,32],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,113]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[77,32],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,39]},[]],"constraintClass":[["Control","Apply"],"Apply"],"constraintArgs":[{"annotation":[{"start":[77,38],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,39]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[77,43],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,113]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,43],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,113]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,72],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,74]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[77,44],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,44],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,46],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[77,44],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,45]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[77,49],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,49],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,51],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,53]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[77,49],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,50]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[77,54],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,54],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,56],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,58]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[77,54],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,55]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[77,59],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,59],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,61],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,63]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[77,59],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,60]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[77,64],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,64],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,66],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,68]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[77,64],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,65]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[77,69],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,70]},[]],"tag":"TypeVar","contents":"g"}]}]}]}]}]}]},{"annotation":[{"start":[77,75],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,113]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,75],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,113]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,79],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,81]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[77,75],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,78]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,75],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,76]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[77,77],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,78]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[77,82],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,113]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,82],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,113]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,86],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,88]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[77,82],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,85]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,82],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,83]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[77,84],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,85]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[77,89],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,113]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,89],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,113]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,93],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,95]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[77,89],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,92]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,89],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,90]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[77,91],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,92]},[]],"tag":"TypeVar","contents":"c"}]}]},{"annotation":[{"start":[77,96],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,113]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,96],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,113]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,100],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,102]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[77,96],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,99]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,96],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,97]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[77,98],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,99]},[]],"tag":"TypeVar","contents":"d"}]}]},{"annotation":[{"start":[77,103],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,113]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,103],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,113]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,107],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,109]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[77,103],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,106]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,103],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,104]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[77,105],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,106]},[]],"tag":"TypeVar","contents":"e"}]}]},{"annotation":[{"start":[77,110],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,113]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,110],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,111]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[77,112],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[77,113]},[]],"tag":"TypeVar","contents":"g"}]}]}]}]}]}]}]}]},61]},62]},63]},64]},65]},66]},67]}}},{"EDInstance":{"edInstanceClassName":[["Control","Apply"],"Apply"],"edInstanceName":{"Ident":"applyFn"},"edInstanceTypes":[{"annotation":[{"start":[40,28],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[40,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[40,28],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[40,32]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[40,33],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[40,34]},[]],"tag":"TypeVar","contents":"r"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Control","Apply"],{"Ident":"applyFn"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Apply"],"Apply"],"edInstanceName":{"Ident":"applyArray"},"edInstanceTypes":[{"annotation":[{"start":[43,30],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[43,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Control","Apply"],{"Ident":"applyArray"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs","end":[78,52]}} \ No newline at end of file
diff --git a/tests/purs/publish/basic-example/output/Control.Biapplicative/docs.json b/tests/purs/publish/basic-example/output/Control.Biapplicative/docs.json
new file mode 100644
index 0000000..dbe047e
--- /dev/null
+++ b/tests/purs/publish/basic-example/output/Control.Biapplicative/docs.json
@@ -0,0 +1 @@
+{"reExports":[],"name":"Control.Biapplicative","comments":null,"declarations":[{"children":[{"comments":null,"title":"bipure","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"w"},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]}},"sourceSpan":{"start":[8,3],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,40]}}],"comments":"`Biapplicative` captures type constructors of two arguments which support lifting of\nfunctions of zero or more arguments, in the sense of `Applicative`.\n","title":"Biapplicative","info":{"fundeps":[],"arguments":[["w",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Control","Biapply"],"Biapply"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"w"}],"constraintData":null}]},"sourceSpan":{"start":[7,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,40]}}]} \ No newline at end of file
diff --git a/tests/purs/publish/basic-example/output/Control.Biapplicative/externs.json b/tests/purs/publish/basic-example/output/Control.Biapplicative/externs.json
new file mode 100644
index 0000000..dd3d382
--- /dev/null
+++ b/tests/purs/publish/basic-example/output/Control.Biapplicative/externs.json
@@ -0,0 +1 @@
+{"efVersion":"0.12.5","efModuleName":["Control","Biapplicative"],"efExports":[{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,40]},{"Ident":"bipure"}]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,40]},"Biapplicative"]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Control","Biapply"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[3,25],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[3,38]},"Biapply"]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"bipure"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["w",{"annotation":[{"start":[8,13],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,40]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[8,20],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,40]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Control","Biapplicative"],"Biapplicative"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"w"}],"constraintData":null},{"annotation":[{"start":[8,25],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[8,25],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[8,27],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[8,25],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,26]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[8,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[8,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[8,32],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[8,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,31]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[8,35],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[8,35],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[8,35],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,36]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[8,37],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,38]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[8,39],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,40]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},0]},1]},2]}}},{"EDType":{"edTypeName":"Biapplicative","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[8,35],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,38]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[8,27],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,29]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[8,35],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,40]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[8,32],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,34]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[8,32],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,34]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Biapplicative","edTypeSynonymArguments":[["w",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["bipure",{"annotation":[{"start":[8,13],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,40]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[8,20],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,40]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[8,25],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[8,25],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[8,27],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[8,25],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,26]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[8,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[8,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[8,32],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[8,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,31]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[8,35],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[8,35],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[8,35],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,36]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[8,37],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,38]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[8,39],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,40]},[]],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["Biapply0",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Control","Biapply"],"Biapply"]},{"annotation":[{"start":[7,15],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[7,16]},[]],"tag":"TypeVar","contents":"w"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}]}}},{"EDClass":{"edClassName":"Biapplicative","edClassTypeArguments":[["w",null]],"edClassMembers":[[{"Ident":"bipure"},{"annotation":[{"start":[8,13],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,40]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[8,20],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,40]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[8,25],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[8,25],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[8,27],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[8,25],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,26]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[8,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[8,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[8,32],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[8,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,31]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[8,35],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[8,35],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[8,35],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,36]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[8,37],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,38]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[8,39],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,40]},[]],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]}]],"edClassConstraints":[{"constraintAnn":[{"start":[7,7],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[7,16]},[]],"constraintClass":[["Control","Biapply"],"Biapply"],"constraintArgs":[{"annotation":[{"start":[7,15],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[7,16]},[]],"tag":"TypeVar","contents":"w"}],"constraintData":null}],"edFunctionalDependencies":[]}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapplicative.purs","end":[8,40]}} \ No newline at end of file
diff --git a/tests/purs/publish/basic-example/output/Control.Biapply/docs.json b/tests/purs/publish/basic-example/output/Control.Biapply/docs.json
new file mode 100644
index 0000000..e590b54
--- /dev/null
+++ b/tests/purs/publish/basic-example/output/Control.Biapply/docs.json
@@ -0,0 +1 @@
+{"reExports":[],"name":"Control.Biapply","comments":null,"declarations":[{"children":[],"comments":"A convenience operator which can be used to apply the result of `bipure` in\nthe style of `Applicative`:\n\n```purescript\nbipure f g <<$>> x <<*>> y\n```\n","title":"(<<$>>)","info":{"declType":"alias","alias":[["Control","Category"],{"Right":{"Left":{"Ident":"identity"}}}],"fixity":{"associativity":"infixl","precedence":4}},"sourceSpan":{"start":[13,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[13,27]}},{"children":[{"comments":null,"title":"biapply","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"w"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]}}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"w"},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"w"},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[18,3],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,67]}}],"comments":"`Biapply` captures type constructors of two arguments which support lifting of\nfunctions of one or more arguments, in the sense of `Apply`.\n","title":"Biapply","info":{"fundeps":[],"arguments":[["w",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Data","Bifunctor"],"Bifunctor"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"w"}],"constraintData":null}]},"sourceSpan":{"start":[17,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,67]}},{"children":[],"comments":null,"title":"(<<*>>)","info":{"declType":"alias","alias":[["Control","Biapply"],{"Right":{"Left":{"Ident":"biapply"}}}],"fixity":{"associativity":"infixl","precedence":4}},"sourceSpan":{"start":[20,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[20,26]}},{"children":[],"comments":"Keep the results of the second computation.\n","title":"biapplyFirst","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["w",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Biapply"],"Biapply"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"w"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"w"},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"w"},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"w"},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]}]}]}]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[23,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[23,71]}},{"children":[],"comments":null,"title":"(*>>)","info":{"declType":"alias","alias":[["Control","Biapply"],{"Right":{"Left":{"Ident":"biapplyFirst"}}}],"fixity":{"associativity":"infixl","precedence":4}},"sourceSpan":{"start":[26,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[26,29]}},{"children":[],"comments":"Keep the results of the first computation.\n","title":"biapplySecond","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["w",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Biapply"],"Biapply"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"w"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"w"},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"w"},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"w"},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]}]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[29,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[29,72]}},{"children":[],"comments":null,"title":"(<<*)","info":{"declType":"alias","alias":[["Control","Biapply"],{"Right":{"Left":{"Ident":"biapplySecond"}}}],"fixity":{"associativity":"infixl","precedence":4}},"sourceSpan":{"start":[32,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[32,30]}},{"children":[],"comments":"Lift a function of two arguments.\n","title":"bilift2","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["w",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Biapply"],"Biapply"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"w"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeVar","contents":"f"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"w"},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"w"},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"w"},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"f"}]}]}]}]}]}]},null]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[35,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[42,11]}},{"children":[],"comments":"Lift a function of three arguments.\n","title":"bilift3","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["h",{"annotation":[],"tag":"ForAll","contents":["g",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["e",{"annotation":[],"tag":"ForAll","contents":["d",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["w",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Biapply"],"Biapply"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"w"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"d"}]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"e"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"g"}]},{"annotation":[],"tag":"TypeVar","contents":"h"}]}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"w"},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"e"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"w"},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeVar","contents":"f"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"w"},{"annotation":[],"tag":"TypeVar","contents":"c"}]},{"annotation":[],"tag":"TypeVar","contents":"g"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"w"},{"annotation":[],"tag":"TypeVar","contents":"d"}]},{"annotation":[],"tag":"TypeVar","contents":"h"}]}]}]}]}]}]}]},null]},null]},null]},null]},null]},null]},null]},null]},null]}},"sourceSpan":{"start":[46,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[54,11]}}]} \ No newline at end of file
diff --git a/tests/purs/publish/basic-example/output/Control.Biapply/externs.json b/tests/purs/publish/basic-example/output/Control.Biapply/externs.json
new file mode 100644
index 0000000..6e25617
--- /dev/null
+++ b/tests/purs/publish/basic-example/output/Control.Biapply/externs.json
@@ -0,0 +1 @@
+{"efVersion":"0.12.5","efModuleName":["Control","Biapply"],"efExports":[{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[55,54]},{"Ident":"biapply"}]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[55,54]},"<<$>>"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[55,54]},"Biapply"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[55,54]},"<<*>>"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[55,54]},{"Ident":"biapplyFirst"}]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[55,54]},"*>>"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[55,54]},{"Ident":"biapplySecond"}]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[55,54]},"<<*"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[55,54]},{"Ident":"bilift2"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[55,54]},{"Ident":"bilift3"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","Function"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[3,23],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[3,28]},{"Ident":"const"}]},{"ValueRef":[{"start":[3,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[3,38]},{"Ident":"identity"}]}]},"eiImportedAs":null},{"eiModule":["Data","Bifunctor"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[5,24],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[5,39]},"Bifunctor"]},{"ValueRef":[{"start":[5,41],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[5,46]},{"Ident":"bimap"}]}]},"eiImportedAs":null}],"efFixities":[{"efAssociativity":"infixl","efPrecedence":4,"efOperator":"<<$>>","efAlias":[["Control","Category"],{"Left":{"Ident":"identity"}}]},{"efAssociativity":"infixl","efPrecedence":4,"efOperator":"<<*>>","efAlias":[["Control","Biapply"],{"Left":{"Ident":"biapply"}}]},{"efAssociativity":"infixl","efPrecedence":4,"efOperator":"*>>","efAlias":[["Control","Biapply"],{"Left":{"Ident":"biapplyFirst"}}]},{"efAssociativity":"infixl","efPrecedence":4,"efOperator":"<<*","efAlias":[["Control","Biapply"],{"Left":{"Ident":"biapplySecond"}}]}],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"biapply"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["w",{"annotation":[{"start":[18,14],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,67]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[18,21],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,67]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[18,21],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,67]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[18,21],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,67]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Control","Biapply"],"Biapply"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"w"}],"constraintData":null},{"annotation":[{"start":[18,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,50],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[18,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,31]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[18,33],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,33],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,35],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[18,33],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,34]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[18,38],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,39]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[18,42],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,42],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,44],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[18,42],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,43]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[18,47],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,48]},[]],"tag":"TypeVar","contents":"d"}]}]}]},{"annotation":[{"start":[18,53],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,53],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,59],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,61]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[18,53],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,53],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,53],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,54]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[18,55],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,56]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[18,57],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,58]},[]],"tag":"TypeVar","contents":"c"}]}]},{"annotation":[{"start":[18,62],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,62],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,62],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,63]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[18,64],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,65]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[18,66],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,67]},[]],"tag":"TypeVar","contents":"d"}]}]}]}]},0]},1]},2]},3]},4]}}},{"EDType":{"edTypeName":"Biapply","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[18,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,40]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[18,35],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,37]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[18,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,49]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[18,44],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,46]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[18,50],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,52]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Biapply","edTypeSynonymArguments":[["w",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["biapply",{"annotation":[{"start":[18,14],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,67]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[18,21],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,67]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[18,21],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,67]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[18,21],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,67]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[18,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,50],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[18,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,31]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[18,33],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,33],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,35],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[18,33],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,34]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[18,38],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,39]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[18,42],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,42],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,44],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[18,42],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,43]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[18,47],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,48]},[]],"tag":"TypeVar","contents":"d"}]}]}]},{"annotation":[{"start":[18,53],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,53],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,59],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,61]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[18,53],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,53],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,53],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,54]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[18,55],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,56]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[18,57],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,58]},[]],"tag":"TypeVar","contents":"c"}]}]},{"annotation":[{"start":[18,62],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,62],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,62],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,63]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[18,64],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,65]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[18,66],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,67]},[]],"tag":"TypeVar","contents":"d"}]}]}]},null]},null]},null]},null]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["Bifunctor0",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Bifunctor"],"Bifunctor"]},{"annotation":[{"start":[17,17],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[17,18]},[]],"tag":"TypeVar","contents":"w"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}]}}},{"EDClass":{"edClassName":"Biapply","edClassTypeArguments":[["w",null]],"edClassMembers":[[{"Ident":"biapply"},{"annotation":[{"start":[18,14],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,67]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[18,21],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,67]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[18,21],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,67]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[18,21],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,67]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[18,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,50],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,52]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[18,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,40]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,30],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,31]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[18,33],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,33],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,35],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[18,33],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,34]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[18,38],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,39]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[18,42],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,42],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,48]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,44],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[18,42],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,43]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[18,47],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,48]},[]],"tag":"TypeVar","contents":"d"}]}]}]},{"annotation":[{"start":[18,53],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,53],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,59],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,61]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[18,53],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,53],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,56]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,53],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,54]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[18,55],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,56]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[18,57],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,58]},[]],"tag":"TypeVar","contents":"c"}]}]},{"annotation":[{"start":[18,62],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,62],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,62],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,63]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[18,64],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,65]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[18,66],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[18,67]},[]],"tag":"TypeVar","contents":"d"}]}]}]},null]},null]},null]},null]}]],"edClassConstraints":[{"constraintAnn":[{"start":[17,7],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[17,18]},[]],"constraintClass":[["Data","Bifunctor"],"Bifunctor"],"constraintArgs":[{"annotation":[{"start":[17,17],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[17,18]},[]],"tag":"TypeVar","contents":"w"}],"constraintData":null}],"edFunctionalDependencies":[]}},{"EDValue":{"edValueName":{"Ident":"biapplyFirst"},"edValueType":{"annotation":[{"start":[23,17],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[23,71]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[23,24],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[23,71]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[23,24],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[23,71]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[23,24],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[23,71]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[23,24],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[23,71]},[]],"tag":"ForAll","contents":["w",{"annotation":[{"start":[23,35],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[23,71]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[23,35],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[23,44]},[]],"constraintClass":[["Control","Biapply"],"Biapply"],"constraintArgs":[{"annotation":[{"start":[23,43],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[23,44]},[]],"tag":"TypeVar","contents":"w"}],"constraintData":null},{"annotation":[{"start":[23,48],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[23,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,48],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[23,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,54],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[23,56]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[23,48],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[23,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,48],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[23,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,48],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[23,49]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[23,50],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[23,51]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[23,52],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[23,53]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[23,57],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[23,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,57],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[23,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,63],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[23,65]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[23,57],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[23,62]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,57],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[23,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,57],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[23,58]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[23,59],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[23,60]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[23,61],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[23,62]},[]],"tag":"TypeVar","contents":"d"}]}]},{"annotation":[{"start":[23,66],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[23,71]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,66],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[23,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[23,66],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[23,67]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[23,68],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[23,69]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[23,70],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[23,71]},[]],"tag":"TypeVar","contents":"d"}]}]}]}]},5]},6]},7]},8]},9]}}},{"EDValue":{"edValueName":{"Ident":"biapplySecond"},"edValueType":{"annotation":[{"start":[29,18],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[29,72]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[29,25],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[29,72]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[29,25],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[29,72]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[29,25],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[29,72]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[29,25],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[29,72]},[]],"tag":"ForAll","contents":["w",{"annotation":[{"start":[29,36],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[29,72]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[29,36],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[29,45]},[]],"constraintClass":[["Control","Biapply"],"Biapply"],"constraintArgs":[{"annotation":[{"start":[29,44],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[29,45]},[]],"tag":"TypeVar","contents":"w"}],"constraintData":null},{"annotation":[{"start":[29,49],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[29,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[29,49],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[29,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[29,55],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[29,57]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[29,49],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[29,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[29,49],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[29,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[29,49],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[29,50]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[29,51],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[29,52]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[29,53],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[29,54]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[29,58],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[29,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[29,58],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[29,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[29,64],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[29,66]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[29,58],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[29,63]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[29,58],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[29,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[29,58],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[29,59]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[29,60],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[29,61]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[29,62],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[29,63]},[]],"tag":"TypeVar","contents":"d"}]}]},{"annotation":[{"start":[29,67],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[29,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[29,67],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[29,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[29,67],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[29,68]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[29,69],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[29,70]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[29,71],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[29,72]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},15]},16]},17]},18]},19]}}},{"EDValue":{"edValueName":{"Ident":"bilift2"},"edValueType":{"annotation":[{"start":[36,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[42,11]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[36,13],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[42,11]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[36,13],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[42,11]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[36,13],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[42,11]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[36,13],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[42,11]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[36,13],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[42,11]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[36,13],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[42,11]},[]],"tag":"ForAll","contents":["w",{"annotation":[{"start":[37,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[42,11]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[37,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[37,15]},[]],"constraintClass":[["Control","Biapply"],"Biapply"],"constraintArgs":[{"annotation":[{"start":[37,14],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[37,15]},[]],"tag":"TypeVar","contents":"w"}],"constraintData":null},{"annotation":[{"start":[38,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[42,11]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[42,11]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[39,3],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[39,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[38,7],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[38,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,7],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[38,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,9],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[38,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[38,7],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[38,8]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[38,12],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[38,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,12],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[38,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,14],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[38,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[38,12],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[38,13]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[38,17],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[38,18]},[]],"tag":"TypeVar","contents":"c"}]}]}]},{"annotation":[{"start":[39,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[42,11]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[39,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[42,11]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[40,3],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[40,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[39,7],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[39,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[39,7],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[39,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[39,9],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[39,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[39,7],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[39,8]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[39,12],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[39,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[39,12],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[39,18]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[39,14],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[39,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[39,12],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[39,13]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[39,17],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[39,18]},[]],"tag":"TypeVar","contents":"f"}]}]}]},{"annotation":[{"start":[40,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[42,11]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[40,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[42,11]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[41,3],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[41,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[40,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[40,11]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[40,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[40,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[40,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[40,7]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[40,8],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[40,9]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[40,10],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[40,11]},[]],"tag":"TypeVar","contents":"d"}]}]},{"annotation":[{"start":[41,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[42,11]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[41,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[42,11]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[42,3],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[42,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[41,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[41,11]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[41,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[41,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[41,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[41,7]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[41,8],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[41,9]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[41,10],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[41,11]},[]],"tag":"TypeVar","contents":"e"}]}]},{"annotation":[{"start":[42,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[42,11]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[42,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[42,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[42,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[42,7]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[42,8],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[42,9]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[42,10],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[42,11]},[]],"tag":"TypeVar","contents":"f"}]}]}]}]}]}]},25]},26]},27]},28]},29]},30]},31]}}},{"EDValue":{"edValueName":{"Ident":"bilift3"},"edValueType":{"annotation":[{"start":[47,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[54,11]},[]],"tag":"ForAll","contents":["h",{"annotation":[{"start":[47,13],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[54,11]},[]],"tag":"ForAll","contents":["g",{"annotation":[{"start":[47,13],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[54,11]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[47,13],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[54,11]},[]],"tag":"ForAll","contents":["e",{"annotation":[{"start":[47,13],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[54,11]},[]],"tag":"ForAll","contents":["d",{"annotation":[{"start":[47,13],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[54,11]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[47,13],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[54,11]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[47,13],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[54,11]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[47,13],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[54,11]},[]],"tag":"ForAll","contents":["w",{"annotation":[{"start":[48,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[54,11]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[48,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[48,15]},[]],"constraintClass":[["Control","Biapply"],"Biapply"],"constraintArgs":[{"annotation":[{"start":[48,14],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[48,15]},[]],"tag":"TypeVar","contents":"w"}],"constraintData":null},{"annotation":[{"start":[49,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[54,11]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[54,11]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,3],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[50,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[49,7],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[49,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,7],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[49,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,9],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[49,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[49,7],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[49,8]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[49,12],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[49,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,12],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[49,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,14],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[49,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[49,12],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[49,13]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[49,17],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[49,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,17],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[49,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,19],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[49,21]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[49,17],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[49,18]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[49,22],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[49,23]},[]],"tag":"TypeVar","contents":"d"}]}]}]}]},{"annotation":[{"start":[50,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[54,11]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[54,11]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,3],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[51,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[50,7],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[50,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,7],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[50,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,9],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[50,11]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[50,7],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[50,8]},[]],"tag":"TypeVar","contents":"e"}]},{"annotation":[{"start":[50,12],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[50,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,12],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[50,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,14],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[50,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[50,12],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[50,13]},[]],"tag":"TypeVar","contents":"f"}]},{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[50,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[50,23]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,19],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[50,21]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[50,17],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[50,18]},[]],"tag":"TypeVar","contents":"g"}]},{"annotation":[{"start":[50,22],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[50,23]},[]],"tag":"TypeVar","contents":"h"}]}]}]}]},{"annotation":[{"start":[51,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[54,11]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[54,11]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,3],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[52,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[51,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[51,11]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[51,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[51,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[51,7]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[51,8],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[51,9]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[51,10],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[51,11]},[]],"tag":"TypeVar","contents":"e"}]}]},{"annotation":[{"start":[52,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[54,11]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[54,11]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,3],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[53,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[52,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[52,11]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[52,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[52,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[52,7]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[52,8],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[52,9]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[52,10],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[52,11]},[]],"tag":"TypeVar","contents":"f"}]}]},{"annotation":[{"start":[53,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[54,11]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[54,11]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,3],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[54,5]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[53,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[53,11]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[53,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[53,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[53,7]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[53,8],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[53,9]},[]],"tag":"TypeVar","contents":"c"}]},{"annotation":[{"start":[53,10],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[53,11]},[]],"tag":"TypeVar","contents":"g"}]}]},{"annotation":[{"start":[54,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[54,11]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[54,9]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[54,6],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[54,7]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[54,8],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[54,9]},[]],"tag":"TypeVar","contents":"d"}]},{"annotation":[{"start":[54,10],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[54,11]},[]],"tag":"TypeVar","contents":"h"}]}]}]}]}]}]}]},39]},40]},41]},42]},43]},44]},45]},46]},47]}}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-bifunctors/src/Control/Biapply.purs","end":[55,54]}} \ No newline at end of file
diff --git a/tests/purs/publish/basic-example/output/Control.Bind/docs.json b/tests/purs/publish/basic-example/output/Control.Bind/docs.json
new file mode 100644
index 0000000..85f6f4e
--- /dev/null
+++ b/tests/purs/publish/basic-example/output/Control.Bind/docs.json
@@ -0,0 +1 @@
+{"reExports":[],"name":"Control.Bind","comments":null,"declarations":[{"children":[{"comments":null,"title":"bind","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]}},"sourceSpan":{"start":[49,3],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,47]}},{"comments":null,"title":"bindFn","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Bind"],"Bind"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"r"}]}]}},"sourceSpan":{"start":[63,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[64,25]}},{"comments":null,"title":"bindArray","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Bind"],"Bind"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}]}},"sourceSpan":{"start":[66,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[67,19]}}],"comments":"The `Bind` type class extends the [`Apply`](#apply) type class with a\n\"bind\" operation `(>>=)` which composes computations in sequence, using\nthe return value of one computation to determine the next computation.\n\nThe `>>=` operator can also be expressed using `do` notation, as follows:\n\n```purescript\nx >>= f = do y <- x\n f y\n```\n\nwhere the function argument of `f` is given the name `y`.\n\nInstances must satisfy the following law in addition to the `Apply`\nlaws:\n\n- Associativity: `(x >>= f) >>= g = x >>= (\\k -> f k >>= g)`\n\nAssociativity tells us that we can regroup operations which use `do`\nnotation so that we can unambiguously write, for example:\n\n```purescript\ndo x <- m1\n y <- m2 x\n m3 x y\n```\n","title":"Bind","info":{"fundeps":[],"arguments":[["m",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Control","Apply"],"Apply"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null}]},"sourceSpan":{"start":[48,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,47]}},{"children":[],"comments":null,"title":"(>>=)","info":{"declType":"alias","alias":[["Control","Bind"],{"Right":{"Left":{"Ident":"bind"}}}],"fixity":{"associativity":"infixl","precedence":1}},"sourceSpan":{"start":[51,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[51,21]}},{"children":[],"comments":"`bindFlipped` is `bind` with its arguments reversed. For example:\n\n```purescript\nprint =<< random\n```\n","title":"bindFlipped","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Bind"],"Bind"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[58,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[58,64]}},{"children":[],"comments":null,"title":"(=<<)","info":{"declType":"alias","alias":[["Control","Bind"],{"Right":{"Left":{"Ident":"bindFlipped"}}}],"fixity":{"associativity":"infixr","precedence":1}},"sourceSpan":{"start":[61,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[61,28]}},{"children":[{"comments":null,"title":"discard","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Bind"],"Bind"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"f"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]}]},null]},null]}},"sourceSpan":{"start":[77,3],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,60]}},{"comments":null,"title":"discardUnit","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Bind"],"Discard"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}},"sourceSpan":{"start":[79,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[80,17]}}],"comments":"A class for types whose values can safely be discarded\nin a `do` notation block.\n\nAn example is the `Unit` type, since there is only one\npossible value which can be returned.\n","title":"Discard","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[76,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,60]}},{"children":[],"comments":"Collapse two applications of a monadic type constructor into one.\n","title":"join","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Bind"],"Bind"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]},null]}},"sourceSpan":{"start":[83,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[83,45]}},{"children":[],"comments":"Forwards Kleisli composition.\n\nFor example:\n\n```purescript\nimport Data.Array (head, tail)\n\nthird = tail >=> tail >=> head\n```\n","title":"composeKleisli","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Bind"],"Bind"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}]}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[95,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[95,81]}},{"children":[],"comments":null,"title":"(>=>)","info":{"declType":"alias","alias":[["Control","Bind"],{"Right":{"Left":{"Ident":"composeKleisli"}}}],"fixity":{"associativity":"infixr","precedence":1}},"sourceSpan":{"start":[98,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[98,31]}},{"children":[],"comments":"Backwards Kleisli composition.\n","title":"composeKleisliFlipped","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Bind"],"Bind"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"b"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}]}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[101,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[101,88]}},{"children":[],"comments":null,"title":"(<=<)","info":{"declType":"alias","alias":[["Control","Bind"],{"Right":{"Left":{"Ident":"composeKleisliFlipped"}}}],"fixity":{"associativity":"infixr","precedence":1}},"sourceSpan":{"start":[104,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[104,38]}},{"children":[],"comments":"Execute a monadic action if a condition holds.\n\nFor example:\n\n```purescript\nmain = ifM ((< 0.5) <$> random)\n (trace \"Heads\")\n (trace \"Tails\")\n```\n","title":"ifM","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Bind"],"Bind"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]}]}]},null]},null]}},"sourceSpan":{"start":[115,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[115,60]}}]} \ No newline at end of file
diff --git a/tests/purs/publish/basic-example/output/Control.Bind/externs.json b/tests/purs/publish/basic-example/output/Control.Bind/externs.json
new file mode 100644
index 0000000..edda8a0
--- /dev/null
+++ b/tests/purs/publish/basic-example/output/Control.Bind/externs.json
@@ -0,0 +1 @@
+{"efVersion":"0.12.5","efModuleName":["Control","Bind"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},{"exportSourceImportedFrom":["Control","Applicative"],"exportSourceDefinedIn":["Control","Applicative"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},"Applicative"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},{"exportSourceImportedFrom":["Control","Apply"],"exportSourceDefinedIn":["Control","Apply"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},"Apply"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},"Functor"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},{"exportSourceImportedFrom":["Control","Apply"],"exportSourceDefinedIn":["Control","Apply"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},{"Ident":"apply"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},{"exportSourceImportedFrom":["Control","Applicative"],"exportSourceDefinedIn":["Control","Applicative"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},{"Ident":"liftA1"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},{"Ident":"map"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},{"exportSourceImportedFrom":["Control","Applicative"],"exportSourceDefinedIn":["Control","Applicative"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},{"Ident":"pure"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},{"exportSourceImportedFrom":["Control","Applicative"],"exportSourceDefinedIn":["Control","Applicative"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},{"Ident":"unless"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},{"Ident":"void"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},{"exportSourceImportedFrom":["Control","Applicative"],"exportSourceDefinedIn":["Control","Applicative"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},{"Ident":"when"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},"$>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},{"exportSourceImportedFrom":["Control","Apply"],"exportSourceDefinedIn":["Control","Apply"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},"*>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},"<#>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},"<$"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},"<$>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},{"exportSourceImportedFrom":["Control","Apply"],"exportSourceDefinedIn":["Control","Apply"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},"<*"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},{"exportSourceImportedFrom":["Control","Apply"],"exportSourceDefinedIn":["Control","Apply"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},"<*>"]}]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},"Bind"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},{"Ident":"bind"}]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},">>="]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},{"Ident":"bindFlipped"}]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},"=<<"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},"Discard"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},{"Ident":"discard"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},{"Ident":"join"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},{"Ident":"composeKleisli"}]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},">=>"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},{"Ident":"composeKleisliFlipped"}]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},"<=<"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]},{"Ident":"ifM"}]},{"ModuleRef":[{"start":[9,5],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[9,24]},["Data","Functor"]]},{"ModuleRef":[{"start":[10,5],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[10,25]},["Control","Apply"]]},{"ModuleRef":[{"start":[11,5],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[11,31]},["Control","Applicative"]]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"bindFn"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"bindArray"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"discardUnit"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Control","Applicative"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[14,29],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[14,46]},"Applicative"]},{"ValueRef":[{"start":[14,48],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[14,54]},{"Ident":"liftA1"}]},{"ValueRef":[{"start":[14,56],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[14,60]},{"Ident":"pure"}]},{"ValueRef":[{"start":[14,62],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[14,68]},{"Ident":"unless"}]},{"ValueRef":[{"start":[14,70],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[14,74]},{"Ident":"when"}]}]},"eiImportedAs":null},{"eiModule":["Control","Apply"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[15,23],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[15,34]},"Apply"]},{"ValueRef":[{"start":[15,36],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[15,41]},{"Ident":"apply"}]},{"ValueOpRef":[{"start":[15,43],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[15,47]},"*>"]},{"ValueOpRef":[{"start":[15,49],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[15,53]},"<*"]},{"ValueOpRef":[{"start":[15,55],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[15,60]},"<*>"]}]},"eiImportedAs":null},{"eiModule":["Control","Category"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[16,26],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[16,34]},{"Ident":"identity"}]}]},"eiImportedAs":null},{"eiModule":["Data","Function"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[18,23],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[18,27]},{"Ident":"flip"}]}]},"eiImportedAs":null},{"eiModule":["Data","Functor"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[19,22],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[19,35]},"Functor"]},{"ValueRef":[{"start":[19,37],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[19,40]},{"Ident":"map"}]},{"ValueRef":[{"start":[19,42],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[19,46]},{"Ident":"void"}]},{"ValueOpRef":[{"start":[19,48],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[19,52]},"$>"]},{"ValueOpRef":[{"start":[19,54],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[19,59]},"<#>"]},{"ValueOpRef":[{"start":[19,61],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[19,65]},"<$"]},{"ValueOpRef":[{"start":[19,67],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[19,72]},"<$>"]}]},"eiImportedAs":null},{"eiModule":["Data","Unit"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[20,19],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[20,23]},"Unit",[]]}]},"eiImportedAs":null}],"efFixities":[{"efAssociativity":"infixl","efPrecedence":1,"efOperator":">>=","efAlias":[["Control","Bind"],{"Left":{"Ident":"bind"}}]},{"efAssociativity":"infixr","efPrecedence":1,"efOperator":"=<<","efAlias":[["Control","Bind"],{"Left":{"Ident":"bindFlipped"}}]},{"efAssociativity":"infixr","efPrecedence":1,"efOperator":">=>","efAlias":[["Control","Bind"],{"Left":{"Ident":"composeKleisli"}}]},{"efAssociativity":"infixr","efPrecedence":1,"efOperator":"<=<","efAlias":[["Control","Bind"],{"Left":{"Ident":"composeKleisliFlipped"}}]}],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Bind","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[49,23],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,26]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[49,33],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,35]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[49,27],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,29]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Bind","edTypeSynonymArguments":[["m",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["bind",{"annotation":[{"start":[49,11],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,47]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[49,18],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,47]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[49,23],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,23],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,27],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[49,23],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,23],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,24]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[49,25],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,26]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[49,30],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,30],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,41],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[49,31],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,31],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,33],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[49,31],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,32]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[49,36],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,36],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,37]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[49,38],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,39]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[49,44],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,44],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,45]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[49,46],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,47]},[]],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["Apply0",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Control","Apply"],"Apply"]},{"annotation":[{"start":[48,13],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[48,14]},[]],"tag":"TypeVar","contents":"m"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}]}}},{"EDClass":{"edClassName":"Bind","edClassTypeArguments":[["m",null]],"edClassMembers":[[{"Ident":"bind"},{"annotation":[{"start":[49,11],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,47]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[49,18],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,47]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[49,23],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,23],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,27],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[49,23],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,23],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,24]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[49,25],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,26]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[49,30],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,30],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,41],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[49,31],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,31],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,33],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[49,31],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,32]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[49,36],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,36],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,37]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[49,38],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,39]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[49,44],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,44],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,45]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[49,46],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,47]},[]],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]}]],"edClassConstraints":[{"constraintAnn":[{"start":[48,7],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[48,14]},[]],"constraintClass":[["Control","Apply"],"Apply"],"constraintArgs":[{"annotation":[{"start":[48,13],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[48,14]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null}],"edFunctionalDependencies":[]}},{"EDValue":{"edValueName":{"Ident":"bind"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[49,11],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,47]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[49,18],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,47]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Control","Bind"],"Bind"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[49,23],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,23],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,27],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[49,23],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,23],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,24]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[49,25],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,26]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[49,30],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,30],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,41],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,43]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[49,31],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,31],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,33],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[49,31],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,32]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[49,36],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,36],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,37]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[49,38],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,39]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[49,44],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[49,44],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,45]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[49,46],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[49,47]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},23]},24]},25]}}},{"EDValue":{"edValueName":{"Ident":"bindFlipped"},"edValueType":{"annotation":[{"start":[58,16],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[58,64]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[58,23],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[58,64]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[58,23],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[58,64]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[58,30],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[58,64]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[58,30],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[58,36]},[]],"constraintClass":[["Control","Bind"],"Bind"],"constraintArgs":[{"annotation":[{"start":[58,35],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[58,36]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[58,40],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[58,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,40],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[58,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,51],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[58,53]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[58,41],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[58,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,41],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[58,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,43],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[58,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[58,41],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[58,42]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[58,46],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[58,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,46],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[58,47]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[58,48],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[58,49]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[58,54],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[58,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,54],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[58,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,58],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[58,60]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[58,54],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[58,57]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,54],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[58,55]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[58,56],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[58,57]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[58,61],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[58,64]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,61],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[58,62]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[58,63],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[58,64]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},26]},27]},28]}}},{"EDType":{"edTypeName":"Discard","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[77,26],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,32]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Discard","edTypeSynonymArguments":[["a",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["discard",{"annotation":[{"start":[77,14],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,60]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[77,21],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,60]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[77,26],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,60]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[77,26],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,32]},[]],"constraintClass":[["Control","Bind"],"Bind"],"constraintArgs":[{"annotation":[{"start":[77,31],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,32]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[77,36],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,36],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,40],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[77,36],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,36],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,37]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[77,38],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,39]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[77,43],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,43],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,54],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,56]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[77,44],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,44],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,46],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[77,44],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,45]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[77,49],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,49],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,50]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[77,51],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,52]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[77,57],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,57],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,58]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[77,59],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,60]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},null]},null]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}}},{"EDClass":{"edClassName":"Discard","edClassTypeArguments":[["a",null]],"edClassMembers":[[{"Ident":"discard"},{"annotation":[{"start":[77,14],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,60]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[77,21],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,60]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[77,26],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,60]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[77,26],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,32]},[]],"constraintClass":[["Control","Bind"],"Bind"],"constraintArgs":[{"annotation":[{"start":[77,31],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,32]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[77,36],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,36],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,40],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[77,36],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,36],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,37]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[77,38],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,39]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[77,43],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,43],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,54],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,56]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[77,44],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,44],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,46],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[77,44],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,45]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[77,49],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,49],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,50]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[77,51],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,52]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[77,57],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,57],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,58]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[77,59],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,60]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},null]},null]}]],"edClassConstraints":[],"edFunctionalDependencies":[]}},{"EDValue":{"edValueName":{"Ident":"discard"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[77,14],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,60]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[77,21],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,60]},[]],"tag":"ForAll","contents":["f",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Control","Bind"],"Discard"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[77,26],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,60]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[77,26],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,32]},[]],"constraintClass":[["Control","Bind"],"Bind"],"constraintArgs":[{"annotation":[{"start":[77,31],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,32]},[]],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[{"start":[77,36],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,36],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,40],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[77,36],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,36],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,37]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[77,38],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,39]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[77,43],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,43],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,54],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,56]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[77,44],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,44],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,46],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[77,44],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,45]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[77,49],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,49],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,50]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[77,51],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,52]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[77,57],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[77,57],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,58]},[]],"tag":"TypeVar","contents":"f"},{"annotation":[{"start":[77,59],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[77,60]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]}]},0]},1]},2]}}},{"EDValue":{"edValueName":{"Ident":"join"},"edValueType":{"annotation":[{"start":[83,9],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[83,45]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[83,16],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[83,45]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[83,21],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[83,45]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[83,21],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[83,27]},[]],"constraintClass":[["Control","Bind"],"Bind"],"constraintArgs":[{"annotation":[{"start":[83,26],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[83,27]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[83,31],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[83,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,31],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[83,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,39],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[83,41]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[83,31],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[83,38]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,31],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[83,32]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[83,34],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[83,37]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,34],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[83,35]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[83,36],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[83,37]},[]],"tag":"TypeVar","contents":"a"}]}]}]},{"annotation":[{"start":[83,42],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[83,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[83,42],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[83,43]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[83,44],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[83,45]},[]],"tag":"TypeVar","contents":"a"}]}]}]},56]},57]}}},{"EDValue":{"edValueName":{"Ident":"composeKleisli"},"edValueType":{"annotation":[{"start":[95,19],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[95,81]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[95,26],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[95,81]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[95,26],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[95,81]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[95,26],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[95,81]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[95,35],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[95,81]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[95,35],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[95,41]},[]],"constraintClass":[["Control","Bind"],"Bind"],"constraintArgs":[{"annotation":[{"start":[95,40],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[95,41]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[95,45],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[95,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[95,45],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[95,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[95,56],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[95,58]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[95,46],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[95,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[95,46],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[95,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[95,48],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[95,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[95,46],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[95,47]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[95,51],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[95,54]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[95,51],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[95,52]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[95,53],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[95,54]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[95,59],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[95,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[95,59],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[95,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[95,70],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[95,72]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[95,60],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[95,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[95,60],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[95,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[95,62],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[95,64]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[95,60],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[95,61]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[95,65],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[95,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[95,65],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[95,66]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[95,67],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[95,68]},[]],"tag":"TypeVar","contents":"c"}]}]}]},{"annotation":[{"start":[95,73],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[95,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[95,73],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[95,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[95,75],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[95,77]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[95,73],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[95,74]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[95,78],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[95,81]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[95,78],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[95,79]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[95,80],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[95,81]},[]],"tag":"TypeVar","contents":"c"}]}]}]}]}]},40]},41]},42]},43]}}},{"EDValue":{"edValueName":{"Ident":"composeKleisliFlipped"},"edValueType":{"annotation":[{"start":[101,26],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[101,88]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[101,33],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[101,88]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[101,33],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[101,88]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[101,33],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[101,88]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[101,42],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[101,88]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[101,42],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[101,48]},[]],"constraintClass":[["Control","Bind"],"Bind"],"constraintArgs":[{"annotation":[{"start":[101,47],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[101,48]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[101,52],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[101,88]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,52],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[101,88]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,63],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[101,65]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[101,53],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[101,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,53],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[101,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,55],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[101,57]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[101,53],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[101,54]},[]],"tag":"TypeVar","contents":"b"}]},{"annotation":[{"start":[101,58],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[101,61]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,58],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[101,59]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[101,60],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[101,61]},[]],"tag":"TypeVar","contents":"c"}]}]}]},{"annotation":[{"start":[101,66],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[101,88]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,66],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[101,88]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,77],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[101,79]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[101,67],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[101,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,67],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[101,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,69],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[101,71]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[101,67],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[101,68]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[101,72],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[101,75]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,72],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[101,73]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[101,74],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[101,75]},[]],"tag":"TypeVar","contents":"b"}]}]}]},{"annotation":[{"start":[101,80],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[101,88]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,80],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[101,88]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,82],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[101,84]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[101,80],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[101,81]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[101,85],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[101,88]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[101,85],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[101,86]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[101,87],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[101,88]},[]],"tag":"TypeVar","contents":"c"}]}]}]}]}]},32]},33]},34]},35]}}},{"EDValue":{"edValueName":{"Ident":"ifM"},"edValueType":{"annotation":[{"start":[115,8],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[115,60]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[115,15],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[115,60]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[115,20],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[115,60]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[115,20],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[115,26]},[]],"constraintClass":[["Control","Bind"],"Bind"],"constraintArgs":[{"annotation":[{"start":[115,25],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[115,26]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[115,30],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[115,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[115,30],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[115,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[115,40],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[115,42]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[115,30],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[115,39]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[115,30],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[115,31]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[115,32],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[115,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},{"annotation":[{"start":[115,43],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[115,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[115,43],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[115,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[115,47],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[115,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[115,43],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[115,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[115,43],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[115,44]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[115,45],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[115,46]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[115,50],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[115,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[115,50],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[115,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[115,54],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[115,56]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[115,50],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[115,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[115,50],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[115,51]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[115,52],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[115,53]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[115,57],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[115,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[115,57],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[115,58]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[115,59],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[115,60]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]}]},52]},53]}}},{"EDInstance":{"edInstanceClassName":[["Control","Bind"],"Bind"],"edInstanceName":{"Ident":"bindFn"},"edInstanceTypes":[{"annotation":[{"start":[63,26],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[63,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[63,26],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[63,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[63,31],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[63,32]},[]],"tag":"TypeVar","contents":"r"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Control","Bind"],{"Ident":"bindFn"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Bind"],"Bind"],"edInstanceName":{"Ident":"bindArray"},"edInstanceTypes":[{"annotation":[{"start":[66,28],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[66,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Control","Bind"],{"Ident":"bindArray"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Bind"],"Discard"],"edInstanceName":{"Ident":"discardUnit"},"edInstanceTypes":[{"annotation":[{"start":[79,33],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[79,37]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Control","Bind"],{"Ident":"discardUnit"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs","end":[116,57]}} \ No newline at end of file
diff --git a/tests/purs/publish/basic-example/output/Control.Category/docs.json b/tests/purs/publish/basic-example/output/Control.Category/docs.json
new file mode 100644
index 0000000..9b10ec2
--- /dev/null
+++ b/tests/purs/publish/basic-example/output/Control.Category/docs.json
@@ -0,0 +1 @@
+{"reExports":[],"name":"Control.Category","comments":null,"declarations":[{"children":[{"comments":null,"title":"identity","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["t",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"a"},{"annotation":[],"tag":"TypeVar","contents":"t"}]},{"annotation":[],"tag":"TypeVar","contents":"t"}]},null]}},"sourceSpan":{"start":[17,3],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[17,30]}},{"comments":null,"title":"categoryFn","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Category"],"Category"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]}]}},"sourceSpan":{"start":[19,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[20,17]}}],"comments":"`Category`s consist of objects and composable morphisms between them, and\nas such are [`Semigroupoids`](#semigroupoid), but unlike `semigroupoids`\nmust have an identity element.\n\nInstances must satisfy the following law in addition to the\n`Semigroupoid` law:\n\n- Identity: `identity <<< p = p <<< identity = p`\n","title":"Category","info":{"fundeps":[],"arguments":[["a",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Control","Semigroupoid"],"Semigroupoid"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"a"}],"constraintData":null}]},"sourceSpan":{"start":[16,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[17,30]}}]} \ No newline at end of file
diff --git a/tests/purs/publish/basic-example/output/Control.Category/externs.json b/tests/purs/publish/basic-example/output/Control.Category/externs.json
new file mode 100644
index 0000000..7df9bac
--- /dev/null
+++ b/tests/purs/publish/basic-example/output/Control.Category/externs.json
@@ -0,0 +1 @@
+{"efVersion":"0.12.5","efModuleName":["Control","Category"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[20,17]},{"exportSourceImportedFrom":["Control","Semigroupoid"],"exportSourceDefinedIn":["Control","Semigroupoid"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[20,17]},"Semigroupoid"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[20,17]},{"exportSourceImportedFrom":["Control","Semigroupoid"],"exportSourceDefinedIn":["Control","Semigroupoid"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[20,17]},{"Ident":"compose"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[20,17]},{"exportSourceImportedFrom":["Control","Semigroupoid"],"exportSourceDefinedIn":["Control","Semigroupoid"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[20,17]},"<<<"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[20,17]},{"exportSourceImportedFrom":["Control","Semigroupoid"],"exportSourceDefinedIn":["Control","Semigroupoid"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[20,17]},">>>"]}]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[20,17]},"Category"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[20,17]},{"Ident":"identity"}]},{"ModuleRef":[{"start":[3,5],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[3,32]},["Control","Semigroupoid"]]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"categoryFn"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Control","Semigroupoid"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[6,30],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[6,48]},"Semigroupoid"]},{"ValueRef":[{"start":[6,50],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[6,57]},{"Ident":"compose"}]},{"ValueOpRef":[{"start":[6,59],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[6,64]},"<<<"]},{"ValueOpRef":[{"start":[6,66],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[6,71]},">>>"]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Category","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[17,25],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[17,28]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[17,25],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[17,30]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Category","edTypeSynonymArguments":[["a",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["identity",{"annotation":[{"start":[17,15],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[17,30]},[]],"tag":"ForAll","contents":["t",{"annotation":[{"start":[17,25],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[17,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,25],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[17,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,25],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[17,26]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[17,27],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[17,28]},[]],"tag":"TypeVar","contents":"t"}]},{"annotation":[{"start":[17,29],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[17,30]},[]],"tag":"TypeVar","contents":"t"}]},null]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["Semigroupoid0",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Control","Semigroupoid"],"Semigroupoid"]},{"annotation":[{"start":[16,20],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[16,21]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}]}}},{"EDClass":{"edClassName":"Category","edClassTypeArguments":[["a",null]],"edClassMembers":[[{"Ident":"identity"},{"annotation":[{"start":[17,15],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[17,30]},[]],"tag":"ForAll","contents":["t",{"annotation":[{"start":[17,25],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[17,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,25],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[17,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,25],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[17,26]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[17,27],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[17,28]},[]],"tag":"TypeVar","contents":"t"}]},{"annotation":[{"start":[17,29],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[17,30]},[]],"tag":"TypeVar","contents":"t"}]},null]}]],"edClassConstraints":[{"constraintAnn":[{"start":[16,7],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[16,21]},[]],"constraintClass":[["Control","Semigroupoid"],"Semigroupoid"],"constraintArgs":[{"annotation":[{"start":[16,20],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[16,21]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null}],"edFunctionalDependencies":[]}},{"EDValue":{"edValueName":{"Ident":"identity"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[17,15],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[17,30]},[]],"tag":"ForAll","contents":["t",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Control","Category"],"Category"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"a"}],"constraintData":null},{"annotation":[{"start":[17,25],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[17,30]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,25],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[17,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[17,25],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[17,26]},[]],"tag":"TypeVar","contents":"a"},{"annotation":[{"start":[17,27],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[17,28]},[]],"tag":"TypeVar","contents":"t"}]},{"annotation":[{"start":[17,29],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[17,30]},[]],"tag":"TypeVar","contents":"t"}]}]},0]},1]}}},{"EDInstance":{"edInstanceClassName":[["Control","Category"],"Category"],"edInstanceName":{"Ident":"categoryFn"},"edInstanceTypes":[{"annotation":[{"start":[19,33],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[19,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Control","Category"],{"Ident":"categoryFn"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-prelude/src/Control/Category.purs","end":[20,17]}} \ No newline at end of file
diff --git a/tests/purs/publish/basic-example/output/Control.Comonad/docs.json b/tests/purs/publish/basic-example/output/Control.Comonad/docs.json
new file mode 100644
index 0000000..eb53426
--- /dev/null
+++ b/tests/purs/publish/basic-example/output/Control.Comonad/docs.json
@@ -0,0 +1 @@
+{"reExports":[],"name":"Control.Comonad","comments":null,"declarations":[{"children":[{"comments":null,"title":"extract","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"w"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},null]}},"sourceSpan":{"start":[21,3],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]}}],"comments":"`Comonad` extends the `Extend` class with the `extract` function\nwhich extracts a value, discarding the comonadic context.\n\n`Comonad` is the dual of `Monad`, and `extract` is the dual of `pure`.\n\nLaws:\n\n- Left Identity: `extract <<= xs = xs`\n- Right Identity: `extract (f <<= xs) = f xs`\n","title":"Comonad","info":{"fundeps":[],"arguments":[["w",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Control","Extend"],"Extend"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"w"}],"constraintData":null}]},"sourceSpan":{"start":[20,1],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]}}]} \ No newline at end of file
diff --git a/tests/purs/publish/basic-example/output/Control.Comonad/externs.json b/tests/purs/publish/basic-example/output/Control.Comonad/externs.json
new file mode 100644
index 0000000..3d053ac
--- /dev/null
+++ b/tests/purs/publish/basic-example/output/Control.Comonad/externs.json
@@ -0,0 +1 @@
+{"efVersion":"0.12.5","efModuleName":["Control","Comonad"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},{"exportSourceImportedFrom":["Control","Extend"],"exportSourceDefinedIn":["Control","Extend"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},"Extend"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},"Functor"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},{"exportSourceImportedFrom":["Control","Extend"],"exportSourceDefinedIn":["Control","Extend"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},{"Ident":"duplicate"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},{"exportSourceImportedFrom":["Control","Extend"],"exportSourceDefinedIn":["Control","Extend"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},{"Ident":"extend"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},{"Ident":"map"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},{"Ident":"void"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},"$>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},"<#>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},"<$"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},"<$>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},{"exportSourceImportedFrom":["Control","Extend"],"exportSourceDefinedIn":["Control","Extend"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},"<<="]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},{"exportSourceImportedFrom":["Control","Extend"],"exportSourceDefinedIn":["Control","Extend"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},"=<="]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},{"exportSourceImportedFrom":["Control","Extend"],"exportSourceDefinedIn":["Control","Extend"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},"=>="]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},{"exportSourceImportedFrom":["Control","Extend"],"exportSourceDefinedIn":["Control","Extend"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},"=>>"]}]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},"Comonad"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},{"Ident":"extract"}]},{"ModuleRef":[{"start":[3,5],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[3,26]},["Control","Extend"]]},{"ModuleRef":[{"start":[4,5],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[4,24]},["Data","Functor"]]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Control","Extend"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[7,24],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[7,36]},"Extend"]},{"ValueRef":[{"start":[7,38],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[7,47]},{"Ident":"duplicate"}]},{"ValueRef":[{"start":[7,49],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[7,55]},{"Ident":"extend"}]},{"ValueOpRef":[{"start":[7,57],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[7,62]},"<<="]},{"ValueOpRef":[{"start":[7,64],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[7,69]},"=<="]},{"ValueOpRef":[{"start":[7,71],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[7,76]},"=>="]},{"ValueOpRef":[{"start":[7,78],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[7,83]},"=>>"]}]},"eiImportedAs":null},{"eiModule":["Data","Functor"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[9,22],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[9,35]},"Functor"]},{"ValueRef":[{"start":[9,37],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[9,40]},{"Ident":"map"}]},{"ValueRef":[{"start":[9,42],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[9,46]},{"Ident":"void"}]},{"ValueOpRef":[{"start":[9,48],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[9,52]},"$>"]},{"ValueOpRef":[{"start":[9,54],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[9,59]},"<#>"]},{"ValueOpRef":[{"start":[9,61],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[9,65]},"<$"]},{"ValueOpRef":[{"start":[9,67],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[9,72]},"<$>"]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Comonad","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[21,24],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,27]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[21,28],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,30]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[21,28],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,30]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Comonad","edTypeSynonymArguments":[["w",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["extract",{"annotation":[{"start":[21,14],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[21,24],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,24],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,28],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[21,24],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,27]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,24],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,25]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[21,26],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,27]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[21,31],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},[]],"tag":"TypeVar","contents":"a"}]},null]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["Extend0",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Control","Extend"],"Extend"]},{"annotation":[{"start":[20,14],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[20,15]},[]],"tag":"TypeVar","contents":"w"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}]}}},{"EDClass":{"edClassName":"Comonad","edClassTypeArguments":[["w",null]],"edClassMembers":[[{"Ident":"extract"},{"annotation":[{"start":[21,14],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[21,24],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,24],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,28],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[21,24],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,27]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,24],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,25]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[21,26],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,27]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[21,31],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},[]],"tag":"TypeVar","contents":"a"}]},null]}]],"edClassConstraints":[{"constraintAnn":[{"start":[20,7],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[20,15]},[]],"constraintClass":[["Control","Extend"],"Extend"],"constraintArgs":[{"annotation":[{"start":[20,14],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[20,15]},[]],"tag":"TypeVar","contents":"w"}],"constraintData":null}],"edFunctionalDependencies":[]}},{"EDValue":{"edValueName":{"Ident":"extract"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["w",{"annotation":[{"start":[21,14],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Control","Comonad"],"Comonad"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"w"}],"constraintData":null},{"annotation":[{"start":[21,24],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,24],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,28],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[21,24],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,27]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,24],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,25]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[21,26],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,27]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[21,31],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]},[]],"tag":"TypeVar","contents":"a"}]}]},0]},1]}}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Comonad.purs","end":[21,32]}} \ No newline at end of file
diff --git a/tests/purs/publish/basic-example/output/Control.Extend/docs.json b/tests/purs/publish/basic-example/output/Control.Extend/docs.json
new file mode 100644
index 0000000..0835a9b
--- /dev/null
+++ b/tests/purs/publish/basic-example/output/Control.Extend/docs.json
@@ -0,0 +1 @@
+{"reExports":[],"name":"Control.Extend","comments":null,"declarations":[{"children":[{"comments":null,"title":"extend","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"w"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"w"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"w"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]}},"sourceSpan":{"start":[25,3],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,49]}},{"comments":null,"title":"extendFn","info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"w"}],"constraintData":null}],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Extend"],"Extend"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"w"}]}]}},"sourceSpan":{"start":[27,1],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[28,38]}},{"comments":null,"title":"extendArray","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Extend"],"Extend"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}]}},"sourceSpan":{"start":[32,1],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[33,23]}}],"comments":"The `Extend` class defines the extension operator `(<<=)`\nwhich extends a local context-dependent computation to\na global computation.\n\n`Extend` is the dual of `Bind`, and `(<<=)` is the dual of\n`(>>=)`.\n\nLaws:\n\n- Associativity: `extend f <<< extend g = extend (f <<< extend g)`\n","title":"Extend","info":{"fundeps":[],"arguments":[["w",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"w"}],"constraintData":null}]},"sourceSpan":{"start":[24,1],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,49]}},{"children":[],"comments":null,"title":"(<<=)","info":{"declType":"alias","alias":[["Control","Extend"],{"Right":{"Left":{"Ident":"extend"}}}],"fixity":{"associativity":"infixr","precedence":1}},"sourceSpan":{"start":[35,1],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[35,23]}},{"children":[],"comments":"A version of `extend` with its arguments flipped.\n","title":"extendFlipped","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["w",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Extend"],"Extend"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"w"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"w"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"w"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"w"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[38,1],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[38,68]}},{"children":[],"comments":null,"title":"(=>>)","info":{"declType":"alias","alias":[["Control","Extend"],{"Right":{"Left":{"Ident":"extendFlipped"}}}],"fixity":{"associativity":"infixl","precedence":1}},"sourceSpan":{"start":[41,1],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[41,30]}},{"children":[],"comments":"Forwards co-Kleisli composition.\n","title":"composeCoKleisli","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["w",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Extend"],"Extend"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"w"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"w"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"w"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"w"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[44,1],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[44,85]}},{"children":[],"comments":null,"title":"(=>=)","info":{"declType":"alias","alias":[["Control","Extend"],{"Right":{"Left":{"Ident":"composeCoKleisli"}}}],"fixity":{"associativity":"infixr","precedence":1}},"sourceSpan":{"start":[47,1],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[47,33]}},{"children":[],"comments":"Backwards co-Kleisli composition.\n","title":"composeCoKleisliFlipped","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["c",{"annotation":[],"tag":"ForAll","contents":["w",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Extend"],"Extend"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"w"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"w"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"w"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"w"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeVar","contents":"c"}]}]}]}]},null]},null]},null]},null]}},"sourceSpan":{"start":[50,1],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[50,92]}},{"children":[],"comments":null,"title":"(=<=)","info":{"declType":"alias","alias":[["Control","Extend"],{"Right":{"Left":{"Ident":"composeCoKleisliFlipped"}}}],"fixity":{"associativity":"infixr","precedence":1}},"sourceSpan":{"start":[53,1],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[53,40]}},{"children":[],"comments":"Duplicate a comonadic context.\n\n`duplicate` is dual to `Control.Bind.join`.\n","title":"duplicate","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["w",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Extend"],"Extend"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"w"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"w"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"w"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"w"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]}]},null]},null]}},"sourceSpan":{"start":[58,1],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[58,52]}}]} \ No newline at end of file
diff --git a/tests/purs/publish/basic-example/output/Control.Extend/externs.json b/tests/purs/publish/basic-example/output/Control.Extend/externs.json
new file mode 100644
index 0000000..9dfd6c5
--- /dev/null
+++ b/tests/purs/publish/basic-example/output/Control.Extend/externs.json
@@ -0,0 +1 @@
+{"efVersion":"0.12.5","efModuleName":["Control","Extend"],"efExports":[{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[59,28]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[59,28]},"Functor"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[59,28]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[59,28]},{"Ident":"map"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[59,28]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[59,28]},{"Ident":"void"}]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[59,28]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[59,28]},"$>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[59,28]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[59,28]},"<#>"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[59,28]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[59,28]},"<$"]}]},{"ReExportRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[59,28]},{"exportSourceImportedFrom":["Data","Functor"],"exportSourceDefinedIn":["Data","Functor"]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[59,28]},"<$>"]}]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[59,28]},"Extend"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[59,28]},{"Ident":"extend"}]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[59,28]},"<<="]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[59,28]},{"Ident":"extendFlipped"}]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[59,28]},"=>>"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[59,28]},{"Ident":"composeCoKleisli"}]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[59,28]},"=>="]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[59,28]},{"Ident":"composeCoKleisliFlipped"}]},{"ValueOpRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[59,28]},"=<="]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[59,28]},{"Ident":"duplicate"}]},{"ModuleRef":[{"start":[6,5],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[6,24]},["Data","Functor"]]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"extendFn"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"extendArray"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Control","Category"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[9,26],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[9,34]},{"Ident":"identity"}]}]},"eiImportedAs":null},{"eiModule":["Data","Functor"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[11,22],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[11,35]},"Functor"]},{"ValueRef":[{"start":[11,37],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[11,40]},{"Ident":"map"}]},{"ValueRef":[{"start":[11,42],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[11,46]},{"Ident":"void"}]},{"ValueOpRef":[{"start":[11,48],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[11,52]},"$>"]},{"ValueOpRef":[{"start":[11,54],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[11,59]},"<#>"]},{"ValueOpRef":[{"start":[11,61],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[11,65]},"<$"]},{"ValueOpRef":[{"start":[11,67],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[11,72]},"<$>"]}]},"eiImportedAs":null},{"eiModule":["Data","Semigroup"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[12,24],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[12,39]},"Semigroup"]},{"ValueOpRef":[{"start":[12,41],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[12,45]},"<>"]}]},"eiImportedAs":null}],"efFixities":[{"efAssociativity":"infixr","efPrecedence":1,"efOperator":"<<=","efAlias":[["Control","Extend"],{"Left":{"Ident":"extend"}}]},{"efAssociativity":"infixl","efPrecedence":1,"efOperator":"=>>","efAlias":[["Control","Extend"],{"Left":{"Ident":"extendFlipped"}}]},{"efAssociativity":"infixr","efPrecedence":1,"efOperator":"=>=","efAlias":[["Control","Extend"],{"Left":{"Ident":"composeCoKleisli"}}]},{"efAssociativity":"infixr","efPrecedence":1,"efOperator":"=<=","efAlias":[["Control","Extend"],{"Left":{"Ident":"composeCoKleisliFlipped"}}]}],"efTypeFixities":[],"efDeclarations":[{"EDType":{"edTypeName":"Extend","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[25,26],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,29]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[25,30],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,32]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[25,30],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,32]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Extend","edTypeSynonymArguments":[["w",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["extend",{"annotation":[{"start":[25,13],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,49]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[25,20],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,49]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[25,25],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,25],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,36],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[25,26],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,26],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,30],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,32]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[25,26],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,29]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,26],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,27]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[25,28],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,29]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[25,33],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,34]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[25,39],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,39],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,43],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[25,39],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,39],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,40]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[25,41],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,42]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[25,46],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,46],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,47]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[25,48],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,49]},[]],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["Functor0",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Data","Functor"],"Functor"]},{"annotation":[{"start":[24,15],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[24,16]},[]],"tag":"TypeVar","contents":"w"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}]}}},{"EDClass":{"edClassName":"Extend","edClassTypeArguments":[["w",null]],"edClassMembers":[[{"Ident":"extend"},{"annotation":[{"start":[25,13],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,49]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[25,20],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,49]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[25,25],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,25],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,36],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[25,26],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,26],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,30],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,32]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[25,26],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,29]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,26],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,27]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[25,28],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,29]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[25,33],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,34]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[25,39],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,39],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,43],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[25,39],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,39],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,40]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[25,41],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,42]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[25,46],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,46],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,47]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[25,48],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,49]},[]],"tag":"TypeVar","contents":"b"}]}]}]},null]},null]}]],"edClassConstraints":[{"constraintAnn":[{"start":[24,7],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[24,16]},[]],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[{"start":[24,15],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[24,16]},[]],"tag":"TypeVar","contents":"w"}],"constraintData":null}],"edFunctionalDependencies":[]}},{"EDValue":{"edValueName":{"Ident":"extend"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["w",{"annotation":[{"start":[25,13],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,49]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[25,20],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,49]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Control","Extend"],"Extend"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"w"}],"constraintData":null},{"annotation":[{"start":[25,25],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,25],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,36],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[25,26],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,26],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,30],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,32]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[25,26],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,29]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,26],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,27]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[25,28],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,29]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[25,33],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,34]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[25,39],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,39],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,43],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,45]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[25,39],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,39],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,40]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[25,41],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,42]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[25,46],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,49]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[25,46],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,47]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[25,48],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[25,49]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},16]},17]},18]}}},{"EDValue":{"edValueName":{"Ident":"extendFlipped"},"edValueType":{"annotation":[{"start":[38,18],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[38,68]},[]],"tag":"ForAll","contents":["w",{"annotation":[{"start":[38,25],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[38,68]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[38,25],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[38,68]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[38,32],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[38,68]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[38,32],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[38,40]},[]],"constraintClass":[["Control","Extend"],"Extend"],"constraintArgs":[{"annotation":[{"start":[38,39],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[38,40]},[]],"tag":"TypeVar","contents":"w"}],"constraintData":null},{"annotation":[{"start":[38,44],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[38,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,44],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[38,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,48],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[38,50]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[38,44],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[38,47]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,44],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[38,45]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[38,46],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[38,47]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[38,51],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[38,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,51],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[38,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,62],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[38,64]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[38,52],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[38,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,52],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[38,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,56],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[38,58]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[38,52],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[38,55]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,52],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[38,53]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[38,54],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[38,55]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[38,59],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[38,60]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[38,65],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[38,68]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[38,65],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[38,66]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[38,67],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[38,68]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]},19]},20]},21]}}},{"EDValue":{"edValueName":{"Ident":"composeCoKleisli"},"edValueType":{"annotation":[{"start":[44,21],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[44,85]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[44,28],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[44,85]},[]],"tag":"ForAll","contents":["w",{"annotation":[{"start":[44,28],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[44,85]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[44,28],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[44,85]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[44,37],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[44,85]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[44,37],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[44,45]},[]],"constraintClass":[["Control","Extend"],"Extend"],"constraintArgs":[{"annotation":[{"start":[44,44],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[44,45]},[]],"tag":"TypeVar","contents":"w"}],"constraintData":null},{"annotation":[{"start":[44,49],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[44,85]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[44,49],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[44,85]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[44,60],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[44,62]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[44,50],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[44,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[44,50],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[44,58]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[44,54],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[44,56]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[44,50],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[44,53]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[44,50],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[44,51]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[44,52],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[44,53]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[44,57],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[44,58]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[44,63],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[44,85]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[44,63],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[44,85]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[44,74],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[44,76]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[44,64],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[44,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[44,64],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[44,72]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[44,68],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[44,70]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[44,64],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[44,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[44,64],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[44,65]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[44,66],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[44,67]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[44,71],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[44,72]},[]],"tag":"TypeVar","contents":"c"}]}]},{"annotation":[{"start":[44,77],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[44,85]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[44,77],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[44,85]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[44,81],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[44,83]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[44,77],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[44,80]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[44,77],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[44,78]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[44,79],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[44,80]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[44,84],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[44,85]},[]],"tag":"TypeVar","contents":"c"}]}]}]}]},37]},38]},39]},40]}}},{"EDValue":{"edValueName":{"Ident":"composeCoKleisliFlipped"},"edValueType":{"annotation":[{"start":[50,28],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[50,92]},[]],"tag":"ForAll","contents":["c",{"annotation":[{"start":[50,35],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[50,92]},[]],"tag":"ForAll","contents":["w",{"annotation":[{"start":[50,35],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[50,92]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[50,35],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[50,92]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[50,44],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[50,92]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[50,44],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[50,52]},[]],"constraintClass":[["Control","Extend"],"Extend"],"constraintArgs":[{"annotation":[{"start":[50,51],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[50,52]},[]],"tag":"TypeVar","contents":"w"}],"constraintData":null},{"annotation":[{"start":[50,56],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[50,92]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,56],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[50,92]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,67],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[50,69]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[50,57],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[50,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,57],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[50,65]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,61],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[50,63]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[50,57],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[50,60]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,57],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[50,58]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[50,59],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[50,60]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[50,64],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[50,65]},[]],"tag":"TypeVar","contents":"c"}]}]},{"annotation":[{"start":[50,70],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[50,92]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,70],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[50,92]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,81],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[50,83]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[50,71],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[50,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,71],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[50,79]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,75],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[50,77]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[50,71],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[50,74]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,71],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[50,72]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[50,73],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[50,74]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[50,78],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[50,79]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[50,84],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[50,92]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,84],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[50,92]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,88],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[50,90]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[50,84],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[50,87]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[50,84],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[50,85]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[50,86],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[50,87]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[50,91],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[50,92]},[]],"tag":"TypeVar","contents":"c"}]}]}]}]},29]},30]},31]},32]}}},{"EDValue":{"edValueName":{"Ident":"duplicate"},"edValueType":{"annotation":[{"start":[58,14],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[58,52]},[]],"tag":"ForAll","contents":["w",{"annotation":[{"start":[58,21],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[58,52]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[58,26],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[58,52]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[58,26],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[58,34]},[]],"constraintClass":[["Control","Extend"],"Extend"],"constraintArgs":[{"annotation":[{"start":[58,33],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[58,34]},[]],"tag":"TypeVar","contents":"w"}],"constraintData":null},{"annotation":[{"start":[58,38],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[58,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,38],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[58,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,42],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[58,44]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[58,38],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[58,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,38],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[58,39]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[58,40],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[58,41]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[58,45],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[58,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,45],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[58,46]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[58,48],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[58,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[58,48],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[58,49]},[]],"tag":"TypeVar","contents":"w"},{"annotation":[{"start":[58,50],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[58,51]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},25]},26]}}},{"EDInstance":{"edInstanceClassName":[["Control","Extend"],"Extend"],"edInstanceName":{"Ident":"extendFn"},"edInstanceTypes":[{"annotation":[{"start":[27,45],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[27,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[27,45],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[27,49]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[27,50],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[27,51]},[]],"tag":"TypeVar","contents":"w"}]}],"edInstanceConstraints":[{"constraintAnn":[{"start":[27,22],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[27,33]},[]],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintArgs":[{"annotation":[{"start":[27,32],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[27,33]},[]],"tag":"TypeVar","contents":"w"}],"constraintData":null}],"edInstanceChain":[[["Control","Extend"],{"Ident":"extendFn"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Extend"],"Extend"],"edInstanceName":{"Ident":"extendArray"},"edInstanceTypes":[{"annotation":[{"start":[32,32],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[32,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Array"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Control","Extend"],{"Ident":"extendArray"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Extend.purs","end":[59,28]}} \ No newline at end of file
diff --git a/tests/purs/publish/basic-example/output/Control.Lazy/docs.json b/tests/purs/publish/basic-example/output/Control.Lazy/docs.json
new file mode 100644
index 0000000..b7ba8fc
--- /dev/null
+++ b/tests/purs/publish/basic-example/output/Control.Lazy/docs.json
@@ -0,0 +1 @@
+{"reExports":[],"name":"Control.Lazy","comments":null,"declarations":[{"children":[{"comments":null,"title":"defer","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]},{"annotation":[],"tag":"TypeVar","contents":"l"}]}}]},{"annotation":[],"tag":"TypeVar","contents":"l"}]}},"sourceSpan":{"start":[11,3],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[11,28]}},{"comments":null,"title":"lazyFn","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Lazy"],"Lazy"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]}},"sourceSpan":{"start":[13,1],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[14,27]}},{"comments":null,"title":"lazyUnit","info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Lazy"],"Lazy"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]}},"sourceSpan":{"start":[16,1],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[17,17]}}],"comments":"The `Lazy` class represents types which allow evaluation of values\nto be _deferred_.\n\nUsually, this means that a type contains a function arrow which can\nbe used to delay evaluation.\n","title":"Lazy","info":{"fundeps":[],"arguments":[["l",null]],"declType":"typeClass","superclasses":[]},"sourceSpan":{"start":[10,1],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[11,28]}},{"children":[],"comments":"`fix` defines a value as the fixed point of a function.\n\nThe `Lazy` instance allows us to generate the result lazily.\n","title":"fix","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["l",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Lazy"],"Lazy"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"l"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeVar","contents":"l"}]},{"annotation":[],"tag":"TypeVar","contents":"l"}]}}]},{"annotation":[],"tag":"TypeVar","contents":"l"}]}]},null]}},"sourceSpan":{"start":[22,1],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[22,41]}}]} \ No newline at end of file
diff --git a/tests/purs/publish/basic-example/output/Control.Lazy/externs.json b/tests/purs/publish/basic-example/output/Control.Lazy/externs.json
new file mode 100644
index 0000000..4b9aa4b
--- /dev/null
+++ b/tests/purs/publish/basic-example/output/Control.Lazy/externs.json
@@ -0,0 +1 @@
+{"efVersion":"0.12.5","efModuleName":["Control","Lazy"],"efExports":[{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[25,26]},{"Ident":"defer"}]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[25,26]},"Lazy"]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[25,26]},{"Ident":"fix"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"lazyFn"}]},{"TypeInstanceRef":[{"start":[0,0],"name":"<generated>","end":[0,0]},{"Ident":"lazyUnit"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Data","Unit"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[3,19],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[3,23]},"Unit",[]]},{"ValueRef":[{"start":[3,25],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[3,29]},{"Ident":"unit"}]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"defer"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["l",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Control","Lazy"],"Lazy"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"l"}],"constraintData":null},{"annotation":[{"start":[11,12],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[11,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,12],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[11,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,24],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[11,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[11,13],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[11,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,13],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[11,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,18],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[11,20]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[11,13],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[11,17]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]},{"annotation":[{"start":[11,21],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[11,22]},[]],"tag":"TypeVar","contents":"l"}]}]},{"annotation":[{"start":[11,27],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[11,28]},[]],"tag":"TypeVar","contents":"l"}]}]},4]}}},{"EDType":{"edTypeName":"Lazy","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[11,18],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[11,20]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Lazy","edTypeSynonymArguments":[["l",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["defer",{"annotation":[{"start":[11,12],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[11,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,12],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[11,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,24],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[11,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[11,13],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[11,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,13],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[11,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,18],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[11,20]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[11,13],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[11,17]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]},{"annotation":[{"start":[11,21],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[11,22]},[]],"tag":"TypeVar","contents":"l"}]}]},{"annotation":[{"start":[11,27],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[11,28]},[]],"tag":"TypeVar","contents":"l"}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}}},{"EDClass":{"edClassName":"Lazy","edClassTypeArguments":[["l",null]],"edClassMembers":[[{"Ident":"defer"},{"annotation":[{"start":[11,12],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[11,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,12],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[11,28]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,24],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[11,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[11,13],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[11,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,13],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[11,22]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[11,18],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[11,20]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[11,13],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[11,17]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}]},{"annotation":[{"start":[11,21],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[11,22]},[]],"tag":"TypeVar","contents":"l"}]}]},{"annotation":[{"start":[11,27],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[11,28]},[]],"tag":"TypeVar","contents":"l"}]}]],"edClassConstraints":[],"edFunctionalDependencies":[]}},{"EDValue":{"edValueName":{"Ident":"fix"},"edValueType":{"annotation":[{"start":[22,8],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[22,41]},[]],"tag":"ForAll","contents":["l",{"annotation":[{"start":[22,18],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[22,41]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[22,18],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[22,24]},[]],"constraintClass":[["Control","Lazy"],"Lazy"],"constraintArgs":[{"annotation":[{"start":[22,23],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[22,24]},[]],"tag":"TypeVar","contents":"l"}],"constraintData":null},{"annotation":[{"start":[22,28],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[22,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,28],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[22,41]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,37],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[22,39]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[22,29],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[22,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,29],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[22,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[22,31],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[22,33]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[22,29],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[22,30]},[]],"tag":"TypeVar","contents":"l"}]},{"annotation":[{"start":[22,34],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[22,35]},[]],"tag":"TypeVar","contents":"l"}]}]},{"annotation":[{"start":[22,40],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[22,41]},[]],"tag":"TypeVar","contents":"l"}]}]},5]}}},{"EDInstance":{"edInstanceClassName":[["Control","Lazy"],"Lazy"],"edInstanceName":{"Ident":"lazyFn"},"edInstanceTypes":[{"annotation":[{"start":[13,26],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[13,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[13,26],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[13,32]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[13,28],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[13,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[13,26],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[13,27]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[13,31],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[13,32]},[]],"tag":"TypeVar","contents":"b"}]}],"edInstanceConstraints":[],"edInstanceChain":[[["Control","Lazy"],{"Ident":"lazyFn"}]],"edInstanceChainIndex":0}},{"EDInstance":{"edInstanceClassName":[["Control","Lazy"],"Lazy"],"edInstanceName":{"Ident":"lazyUnit"},"edInstanceTypes":[{"annotation":[{"start":[16,27],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[16,31]},[]],"tag":"TypeConstructor","contents":[["Data","Unit"],"Unit"]}],"edInstanceConstraints":[],"edInstanceChain":[[["Control","Lazy"],{"Ident":"lazyUnit"}]],"edInstanceChainIndex":0}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-control/src/Control/Lazy.purs","end":[25,26]}} \ No newline at end of file
diff --git a/tests/purs/publish/basic-example/output/Control.Monad.Gen.Class/docs.json b/tests/purs/publish/basic-example/output/Control.Monad.Gen.Class/docs.json
new file mode 100644
index 0000000..d814e3e
--- /dev/null
+++ b/tests/purs/publish/basic-example/output/Control.Monad.Gen.Class/docs.json
@@ -0,0 +1 @@
+{"reExports":[],"name":"Control.Monad.Gen.Class","comments":null,"declarations":[{"children":[{"comments":"Chooses an integer in the specified (inclusive) range.\n","title":"chooseInt","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]}},"sourceSpan":{"start":[12,3],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[12,35]}},{"comments":"Chooses an floating point number in the specified (inclusive) range.\n","title":"chooseFloat","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}]}]}},"sourceSpan":{"start":[15,3],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[15,46]}},{"comments":"Chooses a random boolean value.\n","title":"chooseBool","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}},"sourceSpan":{"start":[18,3],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[18,26]}},{"comments":"Modifies the size state for a random generator.\n","title":"resize","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad","Gen","Class"],"Size"]}]},{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad","Gen","Class"],"Size"]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}]},null]}},"sourceSpan":{"start":[21,3],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,51]}},{"comments":"Runs a generator, passing in the current size state.\n","title":"sized","info":{"declType":"typeClassMember","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeConstructor","contents":[["Control","Monad","Gen","Class"],"Size"]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]}}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},null]}},"sourceSpan":{"start":[24,3],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,42]}}],"comments":"A class for random generator implementations.\n\nInstances should provide implementations for the generation functions\nthat return choices with uniform probability.\n","title":"MonadGen","info":{"fundeps":[],"arguments":[["m",null]],"declType":"typeClass","superclasses":[{"constraintAnn":[],"constraintClass":[["Control","Monad"],"Monad"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null}]},"sourceSpan":{"start":[9,1],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,42]}},{"children":[],"comments":null,"title":"Size","info":{"arguments":[],"declType":"typeSynonym","type":{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}},"sourceSpan":{"start":[26,1],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[26,16]}}]} \ No newline at end of file
diff --git a/tests/purs/publish/basic-example/output/Control.Monad.Gen.Class/externs.json b/tests/purs/publish/basic-example/output/Control.Monad.Gen.Class/externs.json
new file mode 100644
index 0000000..b354450
--- /dev/null
+++ b/tests/purs/publish/basic-example/output/Control.Monad.Gen.Class/externs.json
@@ -0,0 +1 @@
+{"efVersion":"0.12.5","efModuleName":["Control","Monad","Gen","Class"],"efExports":[{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[26,16]},{"Ident":"chooseBool"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[26,16]},{"Ident":"chooseFloat"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[26,16]},{"Ident":"chooseInt"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[26,16]},{"Ident":"resize"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[26,16]},{"Ident":"sized"}]},{"TypeClassRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[26,16]},"MonadGen"]},{"TypeRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[26,16]},"Size",[]]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"chooseBool"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Control","Monad","Gen","Class"],"MonadGen"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[18,17],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[18,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,17],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[18,18]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[18,19],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[18,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}]},6]}}},{"EDValue":{"edValueName":{"Ident":"chooseFloat"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Control","Monad","Gen","Class"],"MonadGen"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[15,18],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[15,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,18],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[15,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,25],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[15,27]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[15,18],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[15,24]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[{"start":[15,28],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[15,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,28],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[15,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,35],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[15,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[15,28],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[15,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[{"start":[15,38],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[15,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,38],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[15,39]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[15,40],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[15,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}]}]}]},5]}}},{"EDValue":{"edValueName":{"Ident":"chooseInt"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Control","Monad","Gen","Class"],"MonadGen"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[12,16],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[12,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,16],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[12,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,20],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[12,22]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[12,16],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[12,19]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[12,23],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[12,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,23],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[12,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,27],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[12,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[12,23],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[12,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[12,30],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[12,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,30],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[12,31]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[12,32],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[12,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]}]},4]}}},{"EDValue":{"edValueName":{"Ident":"resize"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[21,13],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,51]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Control","Monad","Gen","Class"],"MonadGen"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[21,23],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,23],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,38],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[21,24],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,24],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,29],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[26,13],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[26,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[26,13],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[26,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]},{"annotation":[{"start":[21,41],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,41],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,45],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[21,41],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,41],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,42]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[21,43],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,44]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[21,48],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,48],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,49]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[21,50],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,51]},[]],"tag":"TypeVar","contents":"a"}]}]}]}]},2]},3]}}},{"EDValue":{"edValueName":{"Ident":"sized"},"edValueType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[24,12],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,42]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[0,0],"name":"","end":[0,0]},[]],"constraintClass":[["Control","Monad","Gen","Class"],"MonadGen"],"constraintArgs":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[24,22],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,22],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,36],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[24,23],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,23],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,28],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[26,13],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[26,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[24,31],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,31],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,32]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[24,33],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,34]},[]],"tag":"TypeVar","contents":"a"}]}]}]},{"annotation":[{"start":[24,39],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,39],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,40]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[24,41],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,42]},[]],"tag":"TypeVar","contents":"a"}]}]}]},0]},1]}}},{"EDType":{"edTypeName":"MonadGen","edTypeKind":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[12,30],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[12,35]},[]],"tag":"FunKind","contents":[{"annotation":[{"start":[12,32],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[12,35]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},{"annotation":[{"start":[12,27],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[12,29]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]}]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"MonadGen","edTypeSynonymArguments":[["m",null]],"edTypeSynonymType":{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["chooseInt",{"annotation":[{"start":[12,16],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[12,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,16],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[12,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,20],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[12,22]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[12,16],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[12,19]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[12,23],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[12,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,23],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[12,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,27],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[12,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[12,23],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[12,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[12,30],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[12,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,30],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[12,31]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[12,32],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[12,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["chooseFloat",{"annotation":[{"start":[15,18],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[15,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,18],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[15,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,25],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[15,27]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[15,18],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[15,24]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[{"start":[15,28],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[15,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,28],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[15,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,35],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[15,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[15,28],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[15,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[{"start":[15,38],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[15,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,38],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[15,39]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[15,40],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[15,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["chooseBool",{"annotation":[{"start":[18,17],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[18,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,17],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[18,18]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[18,19],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[18,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["resize",{"annotation":[{"start":[21,13],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,51]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[21,23],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,23],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,38],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[21,24],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,24],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,29],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[21,24],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,28]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","Gen","Class"],"Size"]}]},{"annotation":[{"start":[21,32],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,36]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","Gen","Class"],"Size"]}]}]},{"annotation":[{"start":[21,41],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,41],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,45],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[21,41],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,41],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,42]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[21,43],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,44]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[21,48],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,48],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,49]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[21,50],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,51]},[]],"tag":"TypeVar","contents":"a"}]}]}]},null]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["sized",{"annotation":[{"start":[24,12],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,42]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[24,22],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,22],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,36],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[24,23],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,23],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,28],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[24,23],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,27]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","Gen","Class"],"Size"]}]},{"annotation":[{"start":[24,31],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,31],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,32]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[24,33],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,34]},[]],"tag":"TypeVar","contents":"a"}]}]}]},{"annotation":[{"start":[24,39],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,39],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,40]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[24,41],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,42]},[]],"tag":"TypeVar","contents":"a"}]}]},null]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"RCons","contents":["Monad0",{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Record"]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"TypeConstructor","contents":[["Control","Monad"],"Monad"]},{"annotation":[{"start":[9,13],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[9,14]},[]],"tag":"TypeVar","contents":"m"}]}]},{"annotation":[{"start":[0,0],"name":"","end":[0,0]},[]],"tag":"REmpty"}]}]}]}]}]}]}]}}},{"EDClass":{"edClassName":"MonadGen","edClassTypeArguments":[["m",null]],"edClassMembers":[[{"Ident":"chooseInt"},{"annotation":[{"start":[12,16],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[12,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,16],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[12,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,20],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[12,22]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[12,16],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[12,19]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[12,23],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[12,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,23],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[12,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,27],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[12,29]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[12,23],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[12,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]},{"annotation":[{"start":[12,30],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[12,35]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[12,30],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[12,31]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[12,32],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[12,35]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}]}]}]}],[{"Ident":"chooseFloat"},{"annotation":[{"start":[15,18],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[15,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,18],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[15,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,25],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[15,27]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[15,18],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[15,24]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[{"start":[15,28],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[15,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,28],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[15,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,35],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[15,37]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[15,28],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[15,34]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]},{"annotation":[{"start":[15,38],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[15,46]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[15,38],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[15,39]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[15,40],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[15,46]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Number"]}]}]}]}],[{"Ident":"chooseBool"},{"annotation":[{"start":[18,17],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[18,26]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,17],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[18,18]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[18,19],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[18,26]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Boolean"]}]}],[{"Ident":"resize"},{"annotation":[{"start":[21,13],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,51]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[21,23],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,23],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,38],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,40]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[21,24],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,24],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,36]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,29],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,31]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[21,24],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,28]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","Gen","Class"],"Size"]}]},{"annotation":[{"start":[21,32],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,36]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","Gen","Class"],"Size"]}]}]},{"annotation":[{"start":[21,41],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,41],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,45],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,47]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[21,41],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,44]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,41],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,42]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[21,43],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,44]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[21,48],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,51]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[21,48],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,49]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[21,50],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[21,51]},[]],"tag":"TypeVar","contents":"a"}]}]}]},null]}],[{"Ident":"sized"},{"annotation":[{"start":[24,12],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,42]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[24,22],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,22],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,36],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,38]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[24,23],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,23],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,28],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,30]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[24,23],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,27]},[]],"tag":"TypeConstructor","contents":[["Control","Monad","Gen","Class"],"Size"]}]},{"annotation":[{"start":[24,31],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,34]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,31],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,32]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[24,33],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,34]},[]],"tag":"TypeVar","contents":"a"}]}]}]},{"annotation":[{"start":[24,39],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,42]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[24,39],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,40]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[24,41],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[24,42]},[]],"tag":"TypeVar","contents":"a"}]}]},null]}]],"edClassConstraints":[{"constraintAnn":[{"start":[9,7],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[9,14]},[]],"constraintClass":[["Control","Monad"],"Monad"],"constraintArgs":[{"annotation":[{"start":[9,13],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[9,14]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null}],"edFunctionalDependencies":[]}},{"EDType":{"edTypeName":"Size","edTypeKind":{"annotation":[{"start":[26,13],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[26,16]},[]],"tag":"NamedKind","contents":[["Prim"],"Type"]},"edTypeDeclarationKind":"TypeSynonym"}},{"EDTypeSynonym":{"edTypeSynonymName":"Size","edTypeSynonymArguments":[],"edTypeSynonymType":{"annotation":[{"start":[26,13],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[26,16]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Int"]}}}],"efSourceSpan":{"start":[1,1],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Class.purs","end":[26,16]}} \ No newline at end of file
diff --git a/tests/purs/publish/basic-example/output/Control.Monad.Gen.Common/docs.json b/tests/purs/publish/basic-example/output/Control.Monad.Gen.Common/docs.json
new file mode 100644
index 0000000..672d68e
--- /dev/null
+++ b/tests/purs/publish/basic-example/output/Control.Monad.Gen.Common/docs.json
@@ -0,0 +1 @@
+{"reExports":[],"name":"Control.Monad.Gen.Common","comments":null,"declarations":[{"children":[],"comments":"Creates a generator that outputs `Either` values, choosing a value from a\n`Left` or the `Right` with even probability.\n","title":"genEither","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Monad","Gen","Class"],"MonadGen"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[18,1],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[18,70]}},{"children":[],"comments":"Creates a generator that outputs `Identity` values, choosing a value from\nanother generator for the inner value.\n","title":"genIdentity","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Identity"],"Identity"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]}]},null]},null]}},"sourceSpan":{"start":[23,1],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[23,62]}},{"children":[],"comments":"Creates a generator that outputs `Maybe` values, choosing a value from\nanother generator for the inner value. The generator has a 75% chance of\nreturning a `Just` over a `Nothing`.\n","title":"genMaybe","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Monad","Gen","Class"],"MonadGen"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Maybe"],"Maybe"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]}]},null]},null]}},"sourceSpan":{"start":[29,1],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[29,57]}},{"children":[],"comments":"Creates a generator that outputs `Tuple` values, choosing values from a\npair of generators for each slot in the tuple.\n","title":"genTuple","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["b",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Apply"],"Apply"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","Tuple"],"Tuple"]},{"annotation":[],"tag":"TypeVar","contents":"a"}]},{"annotation":[],"tag":"TypeVar","contents":"b"}]}}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[38,1],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[38,65]}},{"children":[],"comments":"Creates a generator that outputs `NonEmpty` values, choosing values from a\ngenerator for each of the items.\n\nThe size of the value will be determined by the current size state\nfor the generator. To generate a value of a particular size, use the\n`resize` function from the `MonadGen` class first.\n","title":"genNonEmpty","info":{"declType":"value","type":{"annotation":[],"tag":"ForAll","contents":["f",{"annotation":[],"tag":"ForAll","contents":["a",{"annotation":[],"tag":"ForAll","contents":["m",{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Monad","Rec","Class"],"MonadRec"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Control","Monad","Gen","Class"],"MonadGen"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[],"tag":"ConstrainedType","contents":[{"constraintAnn":[],"constraintClass":[["Data","Unfoldable"],"Unfoldable"],"constraintArgs":[{"annotation":[],"tag":"TypeVar","contents":"f"}],"constraintData":null},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeVar","contents":"m"},{"annotation":[],"tag":"ParensInType","contents":{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeApp","contents":[{"annotation":[],"tag":"TypeConstructor","contents":[["Data","NonEmpty"],"NonEmpty"]},{"annotation":[],"tag":"TypeVar","contents":"f"}]},{"annotation":[],"tag":"TypeVar","contents":"a"}]}}]}]}]}]}]},null]},null]},null]}},"sourceSpan":{"start":[47,1],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[53,22]}}]} \ No newline at end of file
diff --git a/tests/purs/publish/basic-example/output/Control.Monad.Gen.Common/externs.json b/tests/purs/publish/basic-example/output/Control.Monad.Gen.Common/externs.json
new file mode 100644
index 0000000..5da53f4
--- /dev/null
+++ b/tests/purs/publish/basic-example/output/Control.Monad.Gen.Common/externs.json
@@ -0,0 +1 @@
+{"efVersion":"0.12.5","efModuleName":["Control","Monad","Gen","Common"],"efExports":[{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[54,67]},{"Ident":"genEither"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[54,67]},{"Ident":"genIdentity"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[54,67]},{"Ident":"genMaybe"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[54,67]},{"Ident":"genTuple"}]},{"ValueRef":[{"start":[1,1],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[54,67]},{"Ident":"genNonEmpty"}]}],"efImports":[{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":["Prim"]},{"eiModule":["Prim"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Prelude"],"eiImportType":{"Implicit":[]},"eiImportedAs":null},{"eiModule":["Control","Apply"],"eiImportType":{"Explicit":[{"ValueRef":[{"start":[5,23],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[5,28]},{"Ident":"lift2"}]}]},"eiImportedAs":null},{"eiModule":["Control","Monad","Gen"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[6,27],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[6,41]},"MonadGen"]},{"ValueRef":[{"start":[6,43],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[6,49]},{"Ident":"resize"}]},{"ValueRef":[{"start":[6,51],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[6,57]},{"Ident":"choose"}]},{"ValueRef":[{"start":[6,59],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[6,70]},{"Ident":"chooseFloat"}]},{"ValueRef":[{"start":[6,72],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[6,82]},{"Ident":"unfoldable"}]}]},"eiImportedAs":null},{"eiModule":["Control","Monad","Rec","Class"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[7,33],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[7,47]},"MonadRec"]}]},"eiImportedAs":null},{"eiModule":["Data","Either"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[9,21],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[9,31]},"Either",null]}]},"eiImportedAs":null},{"eiModule":["Data","Identity"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[10,23],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[10,35]},"Identity",null]}]},"eiImportedAs":null},{"eiModule":["Data","Maybe"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[11,20],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[11,29]},"Maybe",null]}]},"eiImportedAs":null},{"eiModule":["Data","NonEmpty"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[12,23],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[12,31]},"NonEmpty",[]]},{"ValueOpRef":[{"start":[12,33],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[12,37]},":|"]}]},"eiImportedAs":null},{"eiModule":["Data","Tuple"],"eiImportType":{"Explicit":[{"TypeRef":[{"start":[13,20],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[13,29]},"Tuple",null]}]},"eiImportedAs":null},{"eiModule":["Data","Unfoldable"],"eiImportType":{"Explicit":[{"TypeClassRef":[{"start":[14,25],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[14,41]},"Unfoldable"]}]},"eiImportedAs":null}],"efFixities":[],"efTypeFixities":[],"efDeclarations":[{"EDValue":{"edValueName":{"Ident":"genEither"},"edValueType":{"annotation":[{"start":[18,14],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[18,70]},[]],"tag":"ForAll","contents":["b",{"annotation":[{"start":[18,21],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[18,70]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[18,21],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[18,70]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[18,28],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[18,70]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[18,28],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[18,38]},[]],"constraintClass":[["Control","Monad","Gen","Class"],"MonadGen"],"constraintArgs":[{"annotation":[{"start":[18,37],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[18,38]},[]],"tag":"TypeVar","contents":"m"}],"constraintData":null},{"annotation":[{"start":[18,42],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[18,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,42],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[18,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,46],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[18,48]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[18,42],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[18,45]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,42],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[18,43]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[18,44],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[18,45]},[]],"tag":"TypeVar","contents":"a"}]}]},{"annotation":[{"start":[18,49],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[18,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,49],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[18,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,53],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[18,55]},[]],"tag":"TypeConstructor","contents":[["Prim"],"Function"]},{"annotation":[{"start":[18,49],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[18,52]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,49],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[18,50]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[18,51],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[18,52]},[]],"tag":"TypeVar","contents":"b"}]}]},{"annotation":[{"start":[18,56],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[18,70]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,56],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[18,57]},[]],"tag":"TypeVar","contents":"m"},{"annotation":[{"start":[18,59],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[18,69]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,59],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[18,67]},[]],"tag":"TypeApp","contents":[{"annotation":[{"start":[18,59],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[18,65]},[]],"tag":"TypeConstructor","contents":[["Data","Either"],"Either"]},{"annotation":[{"start":[18,66],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[18,67]},[]],"tag":"TypeVar","contents":"a"}]},{"annotation":[{"start":[18,68],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[18,69]},[]],"tag":"TypeVar","contents":"b"}]}]}]}]}]},26]},27]},28]}}},{"EDValue":{"edValueName":{"Ident":"genIdentity"},"edValueType":{"annotation":[{"start":[23,16],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[23,62]},[]],"tag":"ForAll","contents":["a",{"annotation":[{"start":[23,23],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[23,62]},[]],"tag":"ForAll","contents":["m",{"annotation":[{"start":[23,28],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[23,62]},[]],"tag":"ConstrainedType","contents":[{"constraintAnn":[{"start":[23,28],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[23,37]},[]],"constraintClass":[["Data","Functor"],"Functor"],"constraintArgs":[{"annotation":[{"start":[23,36],"name":"../../../support/bower_components/purescript-gen/src/Control/Monad/Gen/Common.purs","end":[23,37]}