(Module (Empty) (Statements (GADT (Empty) (Type { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (Statements (TypeVariableIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier)) (Empty)) (Statements (GADTConstructor (Empty) (TypeConstructorIdentifier) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters) (Empty)) (Type { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (TypeParameters (TypeVariableIdentifier) (TypeVariableIdentifier) (TypeVariableIdentifier)) (Empty)))))))) (GADT (Empty) (Type { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (Statements (TypeVariableIdentifier) (TypeVariableIdentifier)) (Empty)) (Statements (GADTConstructor (Empty) { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (FunctionType (Type (Statements (Field (Statements (VariableIdentifier)) (Type (TypeConstructorIdentifier) (TypeParameters (TypeConstructorIdentifier)) (Empty))) (Field (Statements (VariableIdentifier)) (Type (TypeVariableIdentifier) (TypeParameters (TypeVariableIdentifier)) (Empty)))) (TypeParameters) (Empty)) (Type { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (TypeParameters (TypeVariableIdentifier) (TypeVariableIdentifier)) (Empty)))))) (GADT (Empty) (Type { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (Statements (TypeVariableIdentifier)) (KindSignature (KindFunctionType (Kind (KindListType (Star))) (Kind { (Star) ->(KindListType {+(Star)+}) })))) (Statements)) (GADT (Empty) (Type { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (Statements (TypeVariableIdentifier)) (Empty)) (Statements (GADTConstructor (Empty) { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (FunctionType (Type (StrictType (QualifiedTypeConstructorIdentifier (ModuleIdentifier) (TypeConstructorIdentifier)) (TypeParameters)) (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters (QualifiedTypeConstructorIdentifier (ModuleIdentifier) (TypeConstructorIdentifier))) (Empty)))) (GADTConstructor (Empty) { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (FunctionType (Type (StrictType (QualifiedTypeConstructorIdentifier (ModuleIdentifier) (TypeConstructorIdentifier)) (TypeParameters)) (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters (QualifiedTypeConstructorIdentifier (ModuleIdentifier) (TypeConstructorIdentifier))) (Empty)))) (GADTConstructor (Empty) { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (FunctionType (Type (StrictType (TypeConstructorIdentifier) (TypeParameters)) (TypeParameters) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters (TypeConstructorIdentifier)) (Empty)))))) (GADT (Empty) (Type (TypeConstructorIdentifier) (Statements (AnnotatedTypeVariable (TypeVariableIdentifier) (KindListType (KindFunctionType (Kind (Star)) (Kind (Star))))) (AnnotatedTypeVariable (TypeVariableIdentifier) (Star))) (Empty)) (Statements (GADTConstructor (Empty) (TypeConstructorIdentifier) (Context (Pragma) (FunctionType (Type (StrictType { (TypeConstructorIdentifier) ->(TypeConstructorIdentifier) } (TypeParameters)) (TypeParameters) (Empty)) (FunctionType (Type (TypeVariableIdentifier) (TypeParameters (TypeVariableIdentifier)) (Empty)) (Type (TypeConstructorIdentifier) (TypeParameters (TypeVariableIdentifier) (TypeVariableIdentifier)) (Empty))))))))))