package gov.wicourts.json

import argonaut.Cursor

import scalaz.Id.Id

import scala.language.higherKinds

import scalaz.NonEmptyList

package object formlet {
  type IdFieldFormlet[A] = Formlet[Id, Option[Cursor], NonEmptyList[String], A, FieldView]
  type IdObjectFormlet[A] = Formlet[Id, Option[Cursor], ValidationErrors, A, JsonObjectBuilder]

  type FieldFormlet[M[_], A] = Formlet[M, Option[Cursor], NonEmptyList[String], A, FieldView]
  type ObjectFormlet[M[_], A] = Formlet[M, Option[Cursor], ValidationErrors, A, JsonObjectBuilder]

  type JsonFormlet[M[_], E, A, V] = Formlet[M, Option[Cursor], E, A, V]

  object syntax extends ToFieldFormletOps with ToObjectFormletOps
}

package gov.wicourts.json

import argonaut.Cursor

import scalaz.Id.Id

import scala.language.higherKinds

import scalaz.NonEmptyList

package object formlet {

  type JsonFormlet[M[_], E, A, V] = Formlet[M, Option[Cursor], E, A, V]

  type FieldFormlet[M[_], A] = JsonFormlet[M, NonEmptyList[String], A, FieldView]
  type ObjectFormlet[M[_], A] = JsonFormlet[M, ValidationErrors, A, JsonObjectBuilder]

  type IdFieldFormlet[A] = FieldFormlet[Id, A]
  type IdObjectFormlet[A] = ObjectFormlet[Id, A]


  object syntax extends ToFieldFormletOps with ToObjectFormletOps
}

Redefine the Formlet type aliases to make the relation between them clearer
Redefine the Formlet type aliases to make the relation between them clearer
