package main

import "fmt"

// section: types
// Define new types based on existing types
type UserID int
type Email string

// section: types

func main() {
	// section: main
	var id UserID = 42
	var email Email = "user@example.com"

	fmt.Printf("ID: %v (type: %T)\n", id, id)
	fmt.Printf("Email: %v (type: %T)\n", email, email)
	// section: main
}

/*
// section: output
$ go run main.go
ID: 42 (type: main.UserID)
Email: user@example.com (type: main.Email)
// section: output
*/
