Contains common type classes and interfaces that allow the use of higher kinded types.
Contains data types and function types with 3-16 parameters.
Contains types used for serializing and deserializing data structures.
Help me, for I have undertaken DFU.
I have lost my sanity. I have stared into the black abyss. I have seen interfaces with too many methods. There are too many to count. They laugh, for they are similar and yet so slightly different. They laugh in discordant voices.
This is Mojang's Open Source software. An eldritch abomination: a mad creature unleashed raw upon this world. From the minds of point free, type theory, and monoids heralds a monster unlike any I have ever seen. I have seen it with my own eyes. I have shone light into the darkness that is DFU and that light cannot be put out!
The endless teeth! Grinning like a Cheshire Cat! Snacking on the souls of lesser beings! May Haskell Curry protect me. A mere programmer cannot take this beast. No, this beast cannot be tamed. It requires an exorcist.
I descend. I know not where this road shall take me, but the creature beckons and I must follow. The creature with a thousand teeth and a thousand Mu. Oh, Mojang! Take back your abomination! Renounce the life you have given this horror! This slow and lumbering beast demands the blood of many. Such a sacrifice I cannot fulfill. I am swift, but not enough.
Data Fixer Upper (or DFU for short) is a library for creating transformations between structures, regardless of the specific schemas or storage formats the structures use. Users of DFU will generally use two sets of types: the serialization types and the data fix types. An overview of the relevant packages is given below, but see the documentation of those packages and types for more details.
com.mojang.serializationpackage, and provide a way to define a transformation of objects of some type to and from an arbitrary hierarchical serialized form.
com.mojang.datafixerspackage, and provide a way to map the value or format of part of a structure to another value or format. This is achieved using optics.
Users typically will not need to use the types in the remaining packages, but they are still shown here for convenience (or masochism).
DataFixerUpper is Open Source by Mojang Studios/Microsoft Corporation and is licensed under the MIT license. This documentation is maintained separately by third parties, and is also licensed permissively.