2
Dieser einfache Code nichtArt Familie Parameter zwingt die Art zu haben *
import Data.Kind
type family F (k :: Type) :: (t :: k) -> Type
Die Fehlermeldung ist
• Expected a type, but ‘t’ has kind ‘k’
• In the kind ‘(t :: k) -> Type’
ich in gewissem Sinne bekommen nicht kompiliert, dass dies definiert tatsächlich eine „Familie von schreiben Familien ", aber ich verstehe nicht wirklich, warum diese Einschränkung existieren würde.
type family F (k :: Type) (t :: k) :: Type
funktioniert, aber es hat nicht die gleiche Semantik und kann nicht das gleiche verwendet werden.
Sind nicht Dinge auf der rechten Seite der '' 'für eine Art Familie Arten? Also würde der erste sagen: "kind t hat sort k", während der zweite sagt "typ t hat kind k"? –
Mit TypeInType ist alles gleich. –
Vielleicht 'Typ Familie F (k :: Typ) :: k -> Typ ist näher an was Sie wollen? – chi