// Copyright 2020 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

package main

import "./a"

type R[T any] struct {
	F T
}

// type S = R // disallowed for now

type Sint = R[int]

// type Simp = a.Rimp // disallowed for now

// type SimpString Simp[string] // disallowed for now
type SimpString a.Rimp[string]

func main() {
	// var s S[int] // disallowed for now
	var s R[int]
	if s.F != 0 {
		panic(s.F)
	}
	var s2 Sint
	if s2.F != 0 {
		panic(s2.F)
	}
	// var s3 Simp[string] // disallowed for now
	var s3 a.Rimp[string]
	if s3.F != "" {
		panic(s3.F)
	}
	var s4 SimpString
	if s4.F != "" {
		panic(s4.F)
	}
}
