package tf.bug.fancadegraph import tf.bug.fancadescodec.{Metadata, Position} case class Block[T]( position: Position, definition: BlockDefinition[T], argument: T )( implicit ev: Argument[T] ) { def metadata: Vector[Metadata] = ev.encode(argument)(position) } object Block { def apply(position: Position, definition: BlockDefinition[Unit]): Block[Unit] = new Block( position, definition, () ) }