interface Expression : Type -> TypeExpression c => Expression v => Expression (SendStatement c v)Expression t => Expression (Ellipsis t)Expression f => All Expression as => Expression e => Expression (CallExpression f as e)Expression BadExpressionExpression IdentifierExpression BasicLiteralAll Statement sts => GoType (FunctionType ts ps rs) => Expression (FunctionLiteral ts ps rs sts)GoType t => All Expression es => Expression (CompositLiteral t es)Expression e => Expression (ParenExpression e)Expression e => Expression (SelectorExpression e)GoType t => Expression e => Expression (CastExpression t e)GoType t => All Expression es => Expression (MakeExpression t es)Expression e => Expression i => Expression (IndexExpression e i)Expression e => All Expression is => Expression (IndexListExpression e is)Expression e => Expression l => Expression h => Expression m => Expression (SliceExpression e l h m)Expression e => GoType t => Expression (TypeAssertExpression e t)Expression e => Expression (StarExpression e)Expression e => Expression (UnaryExpression e)Expression x => Expression y => Expression (BinaryExpression x y)Expression k => Expression v => Expression (KeyValueExpression k v)interface Statement : Type -> TypeStatement BadStatementDeclaration t => Statement (DeclarationStatement t)Statement EmptyStatementStatement t => Statement (LabeledStatement t)Expression e => Statement (ExpressionStatement e)Expression e => Statement (IncDecStatement e o)All Expression ls => All Expression rs => NonEmpty ls => NonEmpty rs => Statement (AssignmentStatement ls rs)Expression f => All Expression as => Expression e => Statement (GoStatement f as e)Expression f => All Expression as => Expression e => Statement (DeferStatement f as e)All Expression rs => Statement (ReturnStatement rs)Statement (BranchStatement kw)All Statement sts => Statement (BlockStatement sts)Statement i => Expression c => All Statement sts => Statement (IfStatement i c sts e)All Expression es => NonEmpty sts => All Statement sts => Statement (CaseClause es sts)Statement i => Expression e => All Statement sts => All IsCaseClause sts => Statement (SwitchStatement i e sts)Statement i => Statement a => All Statement sts => Statement (TypeSwitchStatement i a sts)IsSendStatement s => All Statement sts => Statement (CommClause s sts)All Statement sts => Statement (SelectStatement sts)Statement i => Expression c => Statement p => All Statement sts => Statement (ForStatement i c p sts)Expression k => Expression v => AssignOrDefine a => Expression e => All Statement sts => Statement (KeyValueRangeStatement k v a e sts)Expression v => AssignOrDefine a => Expression e => All Statement sts => Statement (ValueRangeStatement v a e sts)Expression e => All Statement sts => Statement (RangeStatement e sts)interface Specification : Type -> TypeSpecification ImportSpecGoType t => All Expression es => Specification (ValueSpec t es)GoType t => Specification (TypeSpec ts t)interface Declaration : Type -> TypeDeclaration BadDeclarationNonEmpty xs => All Specification xs => Declaration (GenericDeclaration t xs)All Statement sts => Declaration (FuncDeclaration rcs ts ps rs sts)interface GoType : Type -> TypeGoType TypeIdentifierExpression l => GoType e => GoType (ArrayType l e)GoType (StructType ts)GoType (FunctionType ts ps rs)GoType (InterfaceType ts)GoType k => GoType v => GoType (MapType k v)GoType e => GoType (ChanType e)GoType BadTyperecord Comment : Type.text : Comment -> String.text : Comment -> Stringtext : Comment -> Stringrecord CommentGroup : TypeMkCommentGroup : List1 Comment -> CommentGroup.comments : CommentGroup -> List1 Comment.comments : CommentGroup -> List1 Commentcomments : CommentGroup -> List1 Commentrecord Field : (t : Type) -> {auto 0 _ : GoType t} -> TypeMkField : Maybe CommentGroup -> List Identifier -> Maybe t -> Maybe BasicLiteral -> Maybe CommentGroup -> Field t.comment : Field t -> Maybe CommentGroup.doc : Field t -> Maybe CommentGroup.names : Field t -> List Identifier.tag : Field t -> Maybe BasicLiteral.type : Field t -> Maybe t.doc : Field t -> Maybe CommentGroupdoc : Field t -> Maybe CommentGroup.names : Field t -> List Identifiernames : Field t -> List Identifier.type : Field t -> Maybe ttype : Field t -> Maybe t.tag : Field t -> Maybe BasicLiteraltag : Field t -> Maybe BasicLiteral.comment : Field t -> Maybe CommentGroupcomment : Field t -> Maybe CommentGroupdata FieldList : List Type -> Typerecord TypeIdentifier : TypeMkTypeIdentifier : Maybe Identifier -> Identifier -> TypeIdentifier.name : TypeIdentifier -> Identifier.package : TypeIdentifier -> Maybe Identifier.package : TypeIdentifier -> Maybe Identifierpackage : TypeIdentifier -> Maybe Identifier.name : TypeIdentifier -> Identifiername : TypeIdentifier -> Identifierrecord ArrayType : Type -> Type -> TypeMkArrayType : Maybe l -> e -> ArrayType l eExpression l => GoType e => GoType (ArrayType l e).length : ArrayType l e -> Maybe llength : ArrayType l e -> Maybe l.element : ArrayType l e -> eelement : ArrayType l e -> erecord StructType : List Type -> TypeMkStructType : FieldList ts -> StructType ts.fields : StructType ts -> FieldList tsGoType (StructType ts).fields : StructType ts -> FieldList tsfields : StructType ts -> FieldList tsrecord FunctionType : List Type -> List Type -> List Type -> TypeMkFunctionType : FieldList ts -> FieldList ps -> FieldList rs -> FunctionType ts ps rs.params : FunctionType ts ps rs -> FieldList ps.results : FunctionType ts ps rs -> FieldList rs.typeParams : FunctionType ts ps rs -> FieldList tsAll Statement sts => GoType (FunctionType ts ps rs) => Expression (FunctionLiteral ts ps rs sts)GoType (FunctionType ts ps rs).typeParams : FunctionType ts ps rs -> FieldList tstypeParams : FunctionType ts ps rs -> FieldList ts.params : FunctionType ts ps rs -> FieldList psparams : FunctionType ts ps rs -> FieldList ps.results : FunctionType ts ps rs -> FieldList rsresults : FunctionType ts ps rs -> FieldList rsrecord InterfaceType : List Type -> TypeMkInterfaceType : FieldList ts -> InterfaceType ts.methods : InterfaceType ts -> FieldList tsGoType (InterfaceType ts).methods : InterfaceType ts -> FieldList tsmethods : InterfaceType ts -> FieldList tsrecord MapType : Type -> Type -> Type.key : MapType k v -> kkey : MapType k v -> k.value : MapType k v -> vvalue : MapType k v -> vdata ChanDirection : Typerecord ChanType : Type -> TypeMkChanType : ChanDirection -> e -> ChanType e.direction : ChanType e -> ChanDirection.value : ChanType e -> e.direction : ChanType e -> ChanDirectiondirection : ChanType e -> ChanDirection.value : ChanType e -> evalue : ChanType e -> edata BadStatement : Typerecord DeclarationStatement : Type -> Type.declaration : DeclarationStatement t -> tDeclaration t => Statement (DeclarationStatement t).declaration : DeclarationStatement t -> tdeclaration : DeclarationStatement t -> trecord EmptyStatement : TypeMkEmptyStatement : Bool -> EmptyStatement.isImplicit : EmptyStatement -> Bool.isImplicit : EmptyStatement -> BoolisImplicit : EmptyStatement -> Boolrecord LabeledStatement : Type -> TypeMkLabeledStatement : Identifier -> t -> LabeledStatement t.label : LabeledStatement t -> Identifier.statement : LabeledStatement t -> tStatement t => Statement (LabeledStatement t).label : LabeledStatement t -> Identifierlabel : LabeledStatement t -> Identifier.statement : LabeledStatement t -> tstatement : LabeledStatement t -> trecord ExpressionStatement : Type -> TypeMkExpressionStatement : Maybe CommentGroup -> e -> Maybe CommentGroup -> ExpressionStatement e.comment : ExpressionStatement e -> Maybe CommentGroup.doc : ExpressionStatement e -> Maybe CommentGroup.expression : ExpressionStatement e -> eExpression e => Statement (ExpressionStatement e).doc : ExpressionStatement e -> Maybe CommentGroupdoc : ExpressionStatement e -> Maybe CommentGroup.expression : ExpressionStatement e -> eexpression : ExpressionStatement e -> e.comment : ExpressionStatement e -> Maybe CommentGroupcomment : ExpressionStatement e -> Maybe CommentGrouprecord SendStatement : Type -> Type -> TypeMkSendStatement : c -> v -> SendStatement c v.chan : SendStatement c v -> c.value : SendStatement c v -> vExpression c => Expression v => Expression (SendStatement c v).chan : SendStatement c v -> cchan : SendStatement c v -> c.value : SendStatement c v -> vvalue : SendStatement c v -> vdata IncOrDec : Operator -> Typerecord IncDecStatement : Type -> Operator -> TypeMkIncDecStatement : e -> IncOrDec o -> IncDecStatement e o.expression : IncDecStatement e o -> e.token : IncDecStatement e o -> IncOrDec oExpression e => Statement (IncDecStatement e o).expression : IncDecStatement e o -> eexpression : IncDecStatement e o -> e.token : IncDecStatement e o -> IncOrDec otoken : IncDecStatement e o -> IncOrDec orecord AssignmentStatement : List Type -> List Type -> TypeMkAssignmentStatement : Maybe CommentGroup -> HList ls -> Operator -> HList rs -> Maybe CommentGroup -> AssignmentStatement ls rs.comment : AssignmentStatement ls rs -> Maybe CommentGroup.doc : AssignmentStatement ls rs -> Maybe CommentGroup.left : AssignmentStatement ls rs -> HList ls.right : AssignmentStatement ls rs -> HList rs.token : AssignmentStatement ls rs -> OperatorAll Expression ls => All Expression rs => NonEmpty ls => NonEmpty rs => Statement (AssignmentStatement ls rs).doc : AssignmentStatement ls rs -> Maybe CommentGroupdoc : AssignmentStatement ls rs -> Maybe CommentGroup.left : AssignmentStatement ls rs -> HList lsleft : AssignmentStatement ls rs -> HList ls.token : AssignmentStatement ls rs -> Operatortoken : AssignmentStatement ls rs -> Operator.right : AssignmentStatement ls rs -> HList rsright : AssignmentStatement ls rs -> HList rs.comment : AssignmentStatement ls rs -> Maybe CommentGroupcomment : AssignmentStatement ls rs -> Maybe CommentGrouprecord Ellipsis : Type -> TypeMkEllipsis : Maybe t -> Ellipsis t.elementType : Ellipsis t -> Maybe tExpression t => Expression (Ellipsis t).elementType : Ellipsis t -> Maybe telementType : Ellipsis t -> Maybe trecord CallExpression : Type -> List Type -> Type -> TypeMkCallExpression : f -> HList as -> Maybe (Ellipsis e) -> CallExpression f as e.args : CallExpression f as e -> HList as.ellipsis : CallExpression f as e -> Maybe (Ellipsis e).function : CallExpression f as e -> fExpression f => All Expression as => Expression e => Expression (CallExpression f as e).function : CallExpression f as e -> ffunction : CallExpression f as e -> f.args : CallExpression f as e -> HList asargs : CallExpression f as e -> HList as.ellipsis : CallExpression f as e -> Maybe (Ellipsis e)ellipsis : CallExpression f as e -> Maybe (Ellipsis e)record GoStatement : Type -> List Type -> Type -> TypeMkGoStatement : CallExpression f as e -> GoStatement f as e.call : GoStatement f as e -> CallExpression f as eExpression f => All Expression as => Expression e => Statement (GoStatement f as e).call : GoStatement f as e -> CallExpression f as ecall : GoStatement f as e -> CallExpression f as erecord DeferStatement : Type -> List Type -> Type -> TypeMkDeferStatement : CallExpression f as e -> DeferStatement f as e.call : DeferStatement f as e -> CallExpression f as eExpression f => All Expression as => Expression e => Statement (DeferStatement f as e).call : DeferStatement f as e -> CallExpression f as ecall : DeferStatement f as e -> CallExpression f as erecord ReturnStatement : List Type -> TypeMkReturnStatement : Maybe CommentGroup -> HList rs -> ReturnStatement rs.doc : ReturnStatement rs -> Maybe CommentGroup.results : ReturnStatement rs -> HList rsAll Expression rs => Statement (ReturnStatement rs).doc : ReturnStatement rs -> Maybe CommentGroupdoc : ReturnStatement rs -> Maybe CommentGroup.results : ReturnStatement rs -> HList rsresults : ReturnStatement rs -> HList rsdata BranchStatementToken : Keyword -> Typerecord BranchStatement : Keyword -> TypeMkBranchStatement : BranchStatementToken kw -> Maybe Identifier -> BranchStatement kw.label : BranchStatement kw -> Maybe Identifier.token : BranchStatement kw -> BranchStatementToken kwStatement (BranchStatement kw).token : BranchStatement kw -> BranchStatementToken kwtoken : BranchStatement kw -> BranchStatementToken kw.label : BranchStatement kw -> Maybe Identifierlabel : BranchStatement kw -> Maybe Identifierrecord BlockStatement : List Type -> TypeMkBlockStatement : HList sts -> BlockStatement sts.statements : BlockStatement sts -> HList stsAll Statement sts => Statement (BlockStatement sts).statements : BlockStatement sts -> HList stsstatements : BlockStatement sts -> HList stsrecord IfStatement : Type -> Type -> List Type -> Type -> TypeMkIfStatement : Maybe i -> c -> BlockStatement sts -> Maybe e -> IfStatement i c sts e.body : IfStatement i c sts e -> BlockStatement sts.condition : IfStatement i c sts e -> c.elseBranch : IfStatement i c sts e -> Maybe e.init : IfStatement i c sts e -> Maybe iStatement i => Expression c => All Statement sts => Statement (IfStatement i c sts e).init : IfStatement i c sts e -> Maybe iinit : IfStatement i c sts e -> Maybe i.condition : IfStatement i c sts e -> ccondition : IfStatement i c sts e -> c.body : IfStatement i c sts e -> BlockStatement stsbody : IfStatement i c sts e -> BlockStatement sts.elseBranch : IfStatement i c sts e -> Maybe eelseBranch : IfStatement i c sts e -> Maybe erecord CaseClause : List Type -> List Type -> TypeMkCaseClause : HList es -> HList sts -> CaseClause es sts.body : CaseClause es sts -> HList sts.list : CaseClause es sts -> HList esAll Expression es => NonEmpty sts => All Statement sts => Statement (CaseClause es sts).list : CaseClause es sts -> HList eslist : CaseClause es sts -> HList es.body : CaseClause es sts -> HList stsbody : CaseClause es sts -> HList stsdata IsCaseClause : Type -> TypeItIsCaseClause : All Expression es => NonEmpty sts => All Statement sts => IsCaseClause (CaseClause es sts)Statement i => Expression e => All Statement sts => All IsCaseClause sts => Statement (SwitchStatement i e sts)record SwitchStatement : Type -> Type -> List Type -> TypeMkSwitchStatement : Maybe i -> Maybe e -> BlockStatement sts -> SwitchStatement i e sts.body : SwitchStatement i e sts -> BlockStatement sts.init : SwitchStatement i e sts -> Maybe i.tag : SwitchStatement i e sts -> Maybe eStatement i => Expression e => All Statement sts => All IsCaseClause sts => Statement (SwitchStatement i e sts).init : SwitchStatement i e sts -> Maybe iinit : SwitchStatement i e sts -> Maybe i.tag : SwitchStatement i e sts -> Maybe etag : SwitchStatement i e sts -> Maybe e.body : SwitchStatement i e sts -> BlockStatement stsbody : SwitchStatement i e sts -> BlockStatement stsrecord TypeSwitchStatement : Type -> Type -> List Type -> TypeMkTypeSwitchStatement : Maybe i -> a -> BlockStatement sts -> TypeSwitchStatement i a sts.assign : TypeSwitchStatement i a sts -> a.body : TypeSwitchStatement i a sts -> BlockStatement sts.init : TypeSwitchStatement i a sts -> Maybe iStatement i => Statement a => All Statement sts => Statement (TypeSwitchStatement i a sts).init : TypeSwitchStatement i a sts -> Maybe iinit : TypeSwitchStatement i a sts -> Maybe i.assign : TypeSwitchStatement i a sts -> aassign : TypeSwitchStatement i a sts -> a.body : TypeSwitchStatement i a sts -> BlockStatement stsbody : TypeSwitchStatement i a sts -> BlockStatement stsdata IsSendStatement : Type -> TypeItIsSendStatement : Expression c => Expression v => IsSendStatement (SendStatement c v)IsSendStatement s => All Statement sts => Statement (CommClause s sts)record CommClause : Type -> List Type -> TypeMkCommClause : Maybe s -> HList sts -> CommClause s sts.body : CommClause s sts -> HList sts.comm : CommClause s sts -> Maybe sIsSendStatement s => All Statement sts => Statement (CommClause s sts).comm : CommClause s sts -> Maybe scomm : CommClause s sts -> Maybe s.body : CommClause s sts -> HList stsbody : CommClause s sts -> HList stsrecord SelectStatement : List Type -> TypeMkSelectStatement : BlockStatement sts -> SelectStatement sts.body : SelectStatement sts -> BlockStatement stsAll Statement sts => Statement (SelectStatement sts).body : SelectStatement sts -> BlockStatement stsbody : SelectStatement sts -> BlockStatement stsrecord ForStatement : Type -> Type -> Type -> List Type -> TypeMkForStatement : Maybe i -> Maybe c -> Maybe p -> BlockStatement sts -> ForStatement i c p sts.body : ForStatement i c p sts -> BlockStatement sts.condition : ForStatement i c p sts -> Maybe c.init : ForStatement i c p sts -> Maybe i.post : ForStatement i c p sts -> Maybe pStatement i => Expression c => Statement p => All Statement sts => Statement (ForStatement i c p sts).init : ForStatement i c p sts -> Maybe iinit : ForStatement i c p sts -> Maybe i.condition : ForStatement i c p sts -> Maybe ccondition : ForStatement i c p sts -> Maybe c.post : ForStatement i c p sts -> Maybe ppost : ForStatement i c p sts -> Maybe p.body : ForStatement i c p sts -> BlockStatement stsbody : ForStatement i c p sts -> BlockStatement stsdata AssignOrDefine : Operator -> TypeShow (AssignOrDefine MkAssign)Show (AssignOrDefine MkDefine)Expression k => Expression v => AssignOrDefine a => Expression e => All Statement sts => Statement (KeyValueRangeStatement k v a e sts)Expression v => AssignOrDefine a => Expression e => All Statement sts => Statement (ValueRangeStatement v a e sts)record KeyValueRangeStatement : Type -> Type -> Operator -> Type -> List Type -> TypeMkKeyValueRangeStatement : k -> v -> AssignOrDefine a -> e -> BlockStatement sts -> KeyValueRangeStatement k v a e sts.body : KeyValueRangeStatement k v a e sts -> BlockStatement sts.expression : KeyValueRangeStatement k v a e sts -> e.key : KeyValueRangeStatement k v a e sts -> k.token : KeyValueRangeStatement k v a e sts -> AssignOrDefine a.value : KeyValueRangeStatement k v a e sts -> vExpression k => Expression v => AssignOrDefine a => Expression e => All Statement sts => Statement (KeyValueRangeStatement k v a e sts).key : KeyValueRangeStatement k v a e sts -> kkey : KeyValueRangeStatement k v a e sts -> k.value : KeyValueRangeStatement k v a e sts -> vvalue : KeyValueRangeStatement k v a e sts -> v.token : KeyValueRangeStatement k v a e sts -> AssignOrDefine atoken : KeyValueRangeStatement k v a e sts -> AssignOrDefine a.expression : KeyValueRangeStatement k v a e sts -> eexpression : KeyValueRangeStatement k v a e sts -> e.body : KeyValueRangeStatement k v a e sts -> BlockStatement stsbody : KeyValueRangeStatement k v a e sts -> BlockStatement stsrecord ValueRangeStatement : Type -> Operator -> Type -> List Type -> TypeMkValueRangeStatement : v -> AssignOrDefine a -> e -> BlockStatement sts -> ValueRangeStatement v a e sts.body : ValueRangeStatement v a e sts -> BlockStatement sts.expression : ValueRangeStatement v a e sts -> e.token : ValueRangeStatement v a e sts -> AssignOrDefine a.value : ValueRangeStatement v a e sts -> vExpression v => AssignOrDefine a => Expression e => All Statement sts => Statement (ValueRangeStatement v a e sts).value : ValueRangeStatement v a e sts -> vvalue : ValueRangeStatement v a e sts -> v.token : ValueRangeStatement v a e sts -> AssignOrDefine atoken : ValueRangeStatement v a e sts -> AssignOrDefine a.expression : ValueRangeStatement v a e sts -> eexpression : ValueRangeStatement v a e sts -> e.body : ValueRangeStatement v a e sts -> BlockStatement stsbody : ValueRangeStatement v a e sts -> BlockStatement stsrecord RangeStatement : Type -> List Type -> TypeMkRangeStatement : e -> BlockStatement sts -> RangeStatement e sts.body : RangeStatement e sts -> BlockStatement sts.expression : RangeStatement e sts -> eExpression e => All Statement sts => Statement (RangeStatement e sts).expression : RangeStatement e sts -> eexpression : RangeStatement e sts -> e.body : RangeStatement e sts -> BlockStatement stsbody : RangeStatement e sts -> BlockStatement stsdata BadExpression : Typerecord Identifier : TypeMkIdentifier : String -> Identifier.name : Identifier -> String.name : Identifier -> Stringname : Identifier -> Stringrecord BasicLiteral : TypeMkBasicLiteral : Literal -> String -> BasicLiteral.kind : BasicLiteral -> Literal.value : BasicLiteral -> String.kind : BasicLiteral -> Literalkind : BasicLiteral -> Literal.value : BasicLiteral -> Stringvalue : BasicLiteral -> Stringrecord FunctionLiteral : List Type -> List Type -> List Type -> List Type -> TypeMkFunctionLiteral : FunctionType ts ps rs -> BlockStatement sts -> FunctionLiteral ts ps rs sts.body : FunctionLiteral ts ps rs sts -> BlockStatement sts.type : FunctionLiteral ts ps rs sts -> FunctionType ts ps rsAll Statement sts => GoType (FunctionType ts ps rs) => Expression (FunctionLiteral ts ps rs sts).type : FunctionLiteral ts ps rs sts -> FunctionType ts ps rstype : FunctionLiteral ts ps rs sts -> FunctionType ts ps rs.body : FunctionLiteral ts ps rs sts -> BlockStatement stsbody : FunctionLiteral ts ps rs sts -> BlockStatement stsrecord CompositLiteral : Type -> List Type -> TypeMkCompositLiteral : Maybe t -> HList es -> CompositLiteral t es.expressions : CompositLiteral t es -> HList es.type : CompositLiteral t es -> Maybe tGoType t => All Expression es => Expression (CompositLiteral t es).type : CompositLiteral t es -> Maybe ttype : CompositLiteral t es -> Maybe t.expressions : CompositLiteral t es -> HList esexpressions : CompositLiteral t es -> HList esrecord ParenExpression : Type -> TypeMkParenExpression : e -> ParenExpression e.expression : ParenExpression e -> eExpression e => Expression (ParenExpression e).expression : ParenExpression e -> eexpression : ParenExpression e -> erecord SelectorExpression : Type -> TypeMkSelectorExpression : e -> Identifier -> SelectorExpression e.expression : SelectorExpression e -> e.selector : SelectorExpression e -> IdentifierExpression e => Expression (SelectorExpression e).expression : SelectorExpression e -> eexpression : SelectorExpression e -> e.selector : SelectorExpression e -> Identifierselector : SelectorExpression e -> Identifierrecord CastExpression : Type -> Type -> TypeMkCastExpression : t -> e -> CastExpression t e.expression : CastExpression t e -> e.type : CastExpression t e -> tGoType t => Expression e => Expression (CastExpression t e).type : CastExpression t e -> ttype : CastExpression t e -> t.expression : CastExpression t e -> eexpression : CastExpression t e -> erecord MakeExpression : Type -> List Type -> TypeMkMakeExpression : t -> HList es -> MakeExpression t es.expressions : MakeExpression t es -> HList es.type : MakeExpression t es -> tGoType t => All Expression es => Expression (MakeExpression t es).type : MakeExpression t es -> ttype : MakeExpression t es -> t.expressions : MakeExpression t es -> HList esexpressions : MakeExpression t es -> HList esrecord IndexExpression : Type -> Type -> TypeMkIndexExpression : e -> i -> IndexExpression e i.expression : IndexExpression e i -> e.index : IndexExpression e i -> iExpression e => Expression i => Expression (IndexExpression e i).expression : IndexExpression e i -> eexpression : IndexExpression e i -> e.index : IndexExpression e i -> iindex : IndexExpression e i -> irecord IndexListExpression : Type -> List Type -> TypeMkIndexListExpression : e -> HList is -> IndexListExpression e is.expression : IndexListExpression e is -> e.indices : IndexListExpression e is -> HList isExpression e => All Expression is => Expression (IndexListExpression e is).expression : IndexListExpression e is -> eexpression : IndexListExpression e is -> e.indices : IndexListExpression e is -> HList isindices : IndexListExpression e is -> HList isrecord SliceExpression : Type -> Type -> Type -> Type -> TypeMkSliceExpression : e -> Maybe l -> Maybe h -> Maybe m -> SliceExpression e l h m.expression : SliceExpression e l h m -> e.high : SliceExpression e l h m -> Maybe h.low : SliceExpression e l h m -> Maybe l.max : SliceExpression e l h m -> Maybe mExpression e => Expression l => Expression h => Expression m => Expression (SliceExpression e l h m).expression : SliceExpression e l h m -> eexpression : SliceExpression e l h m -> e.low : SliceExpression e l h m -> Maybe llow : SliceExpression e l h m -> Maybe l.high : SliceExpression e l h m -> Maybe hhigh : SliceExpression e l h m -> Maybe h.max : SliceExpression e l h m -> Maybe mmax : SliceExpression e l h m -> Maybe mrecord TypeAssertExpression : Type -> Type -> TypeMkTypeAssertExpression : e -> t -> TypeAssertExpression e t.expression : TypeAssertExpression e t -> e.type : TypeAssertExpression e t -> tExpression e => GoType t => Expression (TypeAssertExpression e t).expression : TypeAssertExpression e t -> eexpression : TypeAssertExpression e t -> e.type : TypeAssertExpression e t -> ttype : TypeAssertExpression e t -> trecord StarExpression : Type -> TypeMkStarExpression : e -> StarExpression e.expression : StarExpression e -> eExpression e => Expression (StarExpression e).expression : StarExpression e -> eexpression : StarExpression e -> erecord UnaryExpression : Type -> TypeMkUnaryExpression : Operator -> e -> UnaryExpression e.expression : UnaryExpression e -> e.operator : UnaryExpression e -> OperatorExpression e => Expression (UnaryExpression e).operator : UnaryExpression e -> Operatoroperator : UnaryExpression e -> Operator.expression : UnaryExpression e -> eexpression : UnaryExpression e -> erecord BinaryExpression : Type -> Type -> TypeMkBinaryExpression : x -> Operator -> y -> BinaryExpression x y.first : BinaryExpression x y -> x.last : BinaryExpression x y -> y.operator : BinaryExpression x y -> OperatorExpression x => Expression y => Expression (BinaryExpression x y).first : BinaryExpression x y -> xfirst : BinaryExpression x y -> x.operator : BinaryExpression x y -> Operatoroperator : BinaryExpression x y -> Operator.last : BinaryExpression x y -> ylast : BinaryExpression x y -> yrecord KeyValueExpression : Type -> Type -> TypeMkKeyValueExpression : k -> v -> KeyValueExpression k v.key : KeyValueExpression k v -> k.value : KeyValueExpression k v -> vExpression k => Expression v => Expression (KeyValueExpression k v).key : KeyValueExpression k v -> kkey : KeyValueExpression k v -> k.value : KeyValueExpression k v -> vvalue : KeyValueExpression k v -> vrecord ImportSpec : TypeMkImportSpec : Maybe CommentGroup -> Maybe Identifier -> BasicLiteral -> Maybe CommentGroup -> ImportSpec.comment : ImportSpec -> Maybe CommentGroup.doc : ImportSpec -> Maybe CommentGroup.name : ImportSpec -> Maybe Identifier.path : ImportSpec -> BasicLiteral.doc : ImportSpec -> Maybe CommentGroupdoc : ImportSpec -> Maybe CommentGroup.name : ImportSpec -> Maybe Identifiername : ImportSpec -> Maybe Identifier.path : ImportSpec -> BasicLiteralpath : ImportSpec -> BasicLiteral.comment : ImportSpec -> Maybe CommentGroupcomment : ImportSpec -> Maybe CommentGrouprecord ValueSpec : Type -> List Type -> TypeMkValueSpec : Maybe CommentGroup -> List1 Identifier -> Maybe t -> HList es -> Maybe CommentGroup -> ValueSpec t es.comment : ValueSpec t es -> Maybe CommentGroup.doc : ValueSpec t es -> Maybe CommentGroup.names : ValueSpec t es -> List1 Identifier.type : ValueSpec t es -> Maybe t.values : ValueSpec t es -> HList esGoType t => All Expression es => Specification (ValueSpec t es).doc : ValueSpec t es -> Maybe CommentGroupdoc : ValueSpec t es -> Maybe CommentGroup.names : ValueSpec t es -> List1 Identifiernames : ValueSpec t es -> List1 Identifier.type : ValueSpec t es -> Maybe ttype : ValueSpec t es -> Maybe t.values : ValueSpec t es -> HList esvalues : ValueSpec t es -> HList es.comment : ValueSpec t es -> Maybe CommentGroupcomment : ValueSpec t es -> Maybe CommentGrouprecord TypeSpec : List Type -> Type -> TypeMkTypeSpec : Maybe CommentGroup -> Identifier -> FieldList ts -> t -> Maybe CommentGroup -> TypeSpec ts t.comment : TypeSpec ts t -> Maybe CommentGroup.doc : TypeSpec ts t -> Maybe CommentGroup.name : TypeSpec ts t -> Identifier.type : TypeSpec ts t -> t.typeParams : TypeSpec ts t -> FieldList tsGoType t => Specification (TypeSpec ts t).doc : TypeSpec ts t -> Maybe CommentGroupdoc : TypeSpec ts t -> Maybe CommentGroup.name : TypeSpec ts t -> Identifiername : TypeSpec ts t -> Identifier.typeParams : TypeSpec ts t -> FieldList tstypeParams : TypeSpec ts t -> FieldList ts.type : TypeSpec ts t -> ttype : TypeSpec ts t -> t.comment : TypeSpec ts t -> Maybe CommentGroupcomment : TypeSpec ts t -> Maybe CommentGroupdata BadDeclaration : Typedata GenericDeclarationToken : Keyword -> TypeImport : GenericDeclarationToken MkImportConst : GenericDeclarationToken MkConstType' : GenericDeclarationToken MkTypeVar : GenericDeclarationToken MkVarShow (GenericDeclarationToken MkImport)Show (GenericDeclarationToken MkConst)Show (GenericDeclarationToken MkType)Show (GenericDeclarationToken MkVar)record GenericDeclaration : Keyword -> List Type -> TypeMkGenericDeclaration : Maybe CommentGroup -> GenericDeclarationToken t -> HList xs -> GenericDeclaration t xs.doc : GenericDeclaration t xs -> Maybe CommentGroup.specs : GenericDeclaration t xs -> HList xs.token : GenericDeclaration t xs -> GenericDeclarationToken tNonEmpty xs => All Specification xs => Declaration (GenericDeclaration t xs).doc : GenericDeclaration t xs -> Maybe CommentGroupdoc : GenericDeclaration t xs -> Maybe CommentGroup.token : GenericDeclaration t xs -> GenericDeclarationToken ttoken : GenericDeclaration t xs -> GenericDeclarationToken t.specs : GenericDeclaration t xs -> HList xsspecs : GenericDeclaration t xs -> HList xsrecord FuncDeclaration : List Type -> List Type -> List Type -> List Type -> List Type -> TypeMkFuncDeclaration : Maybe CommentGroup -> FieldList rcs -> Identifier -> FunctionType ts ps rs -> BlockStatement sts -> FuncDeclaration rcs ts ps rs sts.body : FuncDeclaration rcs ts ps rs sts -> BlockStatement sts.doc : FuncDeclaration rcs ts ps rs sts -> Maybe CommentGroup.name : FuncDeclaration rcs ts ps rs sts -> Identifier.reciever : FuncDeclaration rcs ts ps rs sts -> FieldList rcs.type : FuncDeclaration rcs ts ps rs sts -> FunctionType ts ps rsAll Statement sts => Declaration (FuncDeclaration rcs ts ps rs sts).doc : FuncDeclaration rcs ts ps rs sts -> Maybe CommentGroupdoc : FuncDeclaration rcs ts ps rs sts -> Maybe CommentGroup.reciever : FuncDeclaration rcs ts ps rs sts -> FieldList rcsreciever : FuncDeclaration rcs ts ps rs sts -> FieldList rcs.name : FuncDeclaration rcs ts ps rs sts -> Identifiername : FuncDeclaration rcs ts ps rs sts -> Identifier.type : FuncDeclaration rcs ts ps rs sts -> FunctionType ts ps rstype : FuncDeclaration rcs ts ps rs sts -> FunctionType ts ps rs.body : FuncDeclaration rcs ts ps rs sts -> BlockStatement stsbody : FuncDeclaration rcs ts ps rs sts -> BlockStatement stsrecord File : (ds : List Type) -> {auto 0 _ : All Declaration ds} -> TypeMkFile : Maybe CommentGroup -> String -> Identifier -> HList ds -> List ImportSpec -> List Identifier -> List CommentGroup -> File ds.comments : File ds -> List CommentGroup.decls : File ds -> HList ds.doc : File ds -> Maybe CommentGroup.imports : File ds -> List ImportSpec.name : File ds -> String.packageName : File ds -> Identifier.unresolved : File ds -> List Identifier.doc : File ds -> Maybe CommentGroupdoc : File ds -> Maybe CommentGroup.name : File ds -> Stringname : File ds -> String.packageName : File ds -> IdentifierpackageName : File ds -> Identifier.decls : File ds -> HList dsdecls : File ds -> HList ds.imports : File ds -> List ImportSpecimports : File ds -> List ImportSpec.unresolved : File ds -> List Identifierunresolved : File ds -> List Identifier.comments : File ds -> List CommentGroupcomments : File ds -> List CommentGroupdata BadType : Type